Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇

本文主要是介绍Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学 三.实战篇

  • 一、 接口测试流程
    • 1.1 搭建自动化脚本
    • 1.2 完善自动化脚本
  • 二、场景模拟
    • 2.1 弱压力测试
    • 2.2 高并发
    • 2.3 高频率
  • 三、生成图形化测试报告

在这里插入图片描述

  • 学习目标

在这里插入图片描述

一、 接口测试流程

1、制定测试计划,分配任务
2、从 API 文档中提取接口清单:对 API 文档简化,提高测试效率,接口清单就是对 API 文档简化压缩,主要提取三要素(请求地址、请求方式、请求数据)
3、设计测试用例并参数化覆盖测试用例
4、编写脚本实现,并导入设计的测试数据;自动化接口脚本的设计:每次更新都要保证之前的代码没有受到影响,所以要把最基本的增删改查功能设计一套自动化执行的脚本,每次更新后执行这个脚本文件,查看是否老接口有影响(此时程序已经在执行了,测试的数据不能对现有的数据进行污染)
5、测试结果汇总,BUG提交

我们先看一下接口文档,新增学院信息
在这里插入图片描述
参数如下:
在这里插入图片描述

1、有效、无效等价类配合边界值
2、特殊情况:中文、英文、空格、空、符号
3、组合情况: 有效:所有值都填写正确的值
有效:除了slogan不填写,其它都写正确值 无效:dep_id不填写 无效:dep_name不填写
无效:master_name不填写 无效:dep_id 重复

测试数据,可以看资料中提供的“新增数据”
在这里插入图片描述
JMeter中创建线程组和HTTP信息头管理器

Content-Type application/json;character=utf-8

在这里插入图片描述
添加-配置元件-CSV Data Set Config
在这里插入图片描述
更改设置如下:
在这里插入图片描述
将CSV配置文件中的变量配置到JMeter中
在这里插入图片描述
注意线程组中的循环写成永远,要跑到文末最后一个
在这里插入图片描述
为了防止数据重复,清空数据库中原始数据
在这里插入图片描述
执行JMeter,查看结果如下:会发现有一些HTTP请求变红了
在这里插入图片描述
需要逐条和预期结果对比,比如第三条数据,这里T2001N明明已经插入了,再插入成功就是不对的,说明接口对于重复数据没有校验
在这里插入图片描述
如果我们需要给请求后增加编号以便查看行数
在这里插入图片描述
点击生成,拷贝生成的结果

${__counter(,)}

在这里插入图片描述
放到HTTP请求之后
在这里插入图片描述
查看结果树效果如下:
在这里插入图片描述
最后对错误数据记录-缺陷
在这里插入图片描述

1.1 搭建自动化脚本

创建SetUp线程组完成新增
创建TearDown线程组完成删除
这样能最大限度保证测试数据最后被清除
在这里插入图片描述
设置线程组即可修改和查询,为了保证线程组按照顺序来执行,独立运行这个√要勾上
在这里插入图片描述
增加HTTP信息头和HTTP请求默认值,全局使用
在这里插入图片描述

1.2 完善自动化脚本

先禁用其它线程组,只操作新增
在这里插入图片描述
执行一次新增,发现新增成功了
在这里插入图片描述
现在我们要对新增的这个HTTP请求
添加-后置处理器-正则表达式提取器,获取到dep_id
在这里插入图片描述
配置如下:
在这里插入图片描述

点击函数助理

配置如下:点击生成获取

${__setProperty(out,${val},)}

out:自定义名称
val记住一定要带上${}符号
在这里插入图片描述

对着线程组右键-添加-取样器-BeanShell取样器
在这里插入图片描述
配置如下:把上面生成的代码拷贝即可
在这里插入图片描述

然后再打开函数助手,我们要获取property

${__property(out,,)}

在这里插入图片描述
把这个变量配置到修改的URL中
在这里插入图片描述

给新增HTTP请求,增加响应断言,如果返回结果包含auto说明添加成功
在这里插入图片描述
给修改的HTTP请求增加断言
断言和HTTP是有层级关系的
在这里插入图片描述
调用后发现修改操作报错
在这里插入图片描述
说明我们的URL写错了更改为,因为之前在结尾没加/

/api/departments/${__property(out,,)}/

在这里插入图片描述

查看结果树:
在这里插入图片描述
数据库如下:
在这里插入图片描述
查询HTTP配置如下
在这里插入图片描述
添加响应断言:根据响应码200匹配
在这里插入图片描述
删除HTTP配置如下:
在这里插入图片描述

删除配置断言,204的响应码
在这里插入图片描述
查看结果树:都是正常的
在这里插入图片描述

数据库中也没有新增_auto的数据
在这里插入图片描述

二、场景模拟

根据实际需求是否进行性能测试:

2.1 弱压力测试

场景1:模拟半小时之内 1000 个用户访问服务器资源,要求平均响应时间在3000ms内,且错误率为0

JMeter测试如下
在这里插入图片描述
查看聚合报告
在这里插入图片描述

2.2 高并发

场景2:模拟 100 个用户同时访问服务器资源,要求平均响应时间在3000ms内,且错误率为0

JMeter配置如下
添加-定时器-synchronizing Timer
在这里插入图片描述
同步定时器配置如下:
在这里插入图片描述

线程数100
ramp-up时间不修改,1即可
在这里插入图片描述
查看聚合报告
在这里插入图片描述

2.3 高频率

场景3:模拟2个用户以20QPS的频率访问服务器资源持续11秒,要求平均响应时间在3000ms内,错误率为0

新建常数吞吐量定时器
设置的目标吞吐量 = 20 * 60 = 1200
在这里插入图片描述
配置循环次数 = 20 * 10 = 200
在这里插入图片描述

查看聚合报告
在这里插入图片描述

三、生成图形化测试报告

在 JMeter 中可以以图形化(饼状图、柱状图…)的方式显示脚本运行结果,较之于聚合报告或查看结果
树组件实
现更直观,用户体验更友好
生成图形化测试报告
命令: jmeter -n -t 脚本文件 -l 日志文件 -e -o 目录
-n 无图形化运行
-t 被运行的脚本
-l 将运行信息写入日志文件
-e 生成测试报告
-o 指定报告输出目录

打开JMeter的bin目录
在这里插入图片描述
新建目录testplan,并且把刚才的性能测试计划保存到这里
在这里插入图片描述
在testplan底下新建webreport
在这里插入图片描述

执行如下指令

.\jmeter -n -t .\16.性能测试.jmx -l .\testplan\result.txt -e -o .\testplan\webreport\

生成的文件如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这篇关于Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626704

相关文章

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联