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

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

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

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

  • 学习目标

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

一、 接口测试流程

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

我们先看一下接口文档,新增学院信息
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第3张图片
参数如下:
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第4张图片

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

测试数据,可以看资料中提供的“新增数据”
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第5张图片
JMeter中创建线程组和HTTP信息头管理器

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

Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第6张图片
添加-配置元件-CSV Data Set Config
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第7张图片
更改设置如下:
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第8张图片
将CSV配置文件中的变量配置到JMeter中
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第9张图片
注意线程组中的循环写成永远,要跑到文末最后一个
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第10张图片
为了防止数据重复,清空数据库中原始数据
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第11张图片
执行JMeter,查看结果如下:会发现有一些HTTP请求变红了
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第12张图片
需要逐条和预期结果对比,比如第三条数据,这里T2001N明明已经插入了,再插入成功就是不对的,说明接口对于重复数据没有校验
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第13张图片
如果我们需要给请求后增加编号以便查看行数
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第14张图片
点击生成,拷贝生成的结果

${__counter(,)}

Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第15张图片
放到HTTP请求之后
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第16张图片
查看结果树效果如下:
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第17张图片
最后对错误数据记录-缺陷
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第18张图片

1.1 搭建自动化脚本

创建SetUp线程组完成新增
创建TearDown线程组完成删除
这样能最大限度保证测试数据最后被清除
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第19张图片
设置线程组即可修改和查询,为了保证线程组按照顺序来执行,独立运行这个√要勾上
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第20张图片
增加HTTP信息头和HTTP请求默认值,全局使用
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第21张图片

1.2 完善自动化脚本

先禁用其它线程组,只操作新增
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第22张图片
执行一次新增,发现新增成功了
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第23张图片
现在我们要对新增的这个HTTP请求
添加-后置处理器-正则表达式提取器,获取到dep_id
在这里插入图片描述
配置如下:
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第24张图片

点击函数助理

配置如下:点击生成获取

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

out:自定义名称
val记住一定要带上${}符号
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第25张图片

对着线程组右键-添加-取样器-BeanShell取样器
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第26张图片
配置如下:把上面生成的代码拷贝即可
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第27张图片

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

${__property(out,,)}

Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第28张图片
把这个变量配置到修改的URL中
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第29张图片

给新增HTTP请求,增加响应断言,如果返回结果包含auto说明添加成功
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第30张图片
给修改的HTTP请求增加断言
断言和HTTP是有层级关系的
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第31张图片
调用后发现修改操作报错
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第32张图片
说明我们的URL写错了更改为,因为之前在结尾没加/

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

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

查看结果树:
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第34张图片
数据库如下:
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第35张图片
查询HTTP配置如下
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第36张图片
添加响应断言:根据响应码200匹配
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第37张图片
删除HTTP配置如下:
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第38张图片

删除配置断言,204的响应码
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第39张图片
查看结果树:都是正常的
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第40张图片

数据库中也没有新增_auto的数据
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第41张图片

二、场景模拟

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

2.1 弱压力测试

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

JMeter测试如下
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第42张图片
查看聚合报告
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第43张图片

2.2 高并发

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

JMeter配置如下
添加-定时器-synchronizing Timer
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第44张图片
同步定时器配置如下:
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第45张图片

线程数100
ramp-up时间不修改,1即可
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第46张图片
查看聚合报告
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第47张图片

2.3 高频率

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

新建常数吞吐量定时器
设置的目标吞吐量 = 20 * 60 = 1200
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第48张图片
配置循环次数 = 20 * 10 = 200
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第49张图片

查看聚合报告
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第50张图片

三、生成图形化测试报告

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

打开JMeter的bin目录
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第51张图片
新建目录testplan,并且把刚才的性能测试计划保存到这里
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第52张图片
在testplan底下新建webreport
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第53张图片

执行如下指令

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

生成的文件如下:
Jmeter自动化测试工具从入门到进阶6小时搞定.黑马跟学(三).实战篇_第54张图片

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

你可能感兴趣的:(java,开发测试工具,jmeter,自动化,测试工具)