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

发布时间:2024年01月20日

在这里插入图片描述

  • 学习目标

在这里插入图片描述

一、 接口测试流程

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\

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

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

文章来源:https://blog.csdn.net/sinat_38316216/article/details/135710822
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。