Jmeter断言、关联、录制脚本
- Jmeter断言
断言:让程序自动判断预期结果
和实际结果
是否一致
提示:
- Jmeter在请求的返回层面有个
自动判断机制
(响应状态码 2xx:成功,4xx/5xx:失败)- 但是请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性。
Jmeter中
常用断言
- 响应断言:对
任意格式
的响应数据进行断言- json断言:对
json格式
的响应数据进行断言- 持续时间断言:对
响应时间
进行断言
- 响应断言
作用:对HTTP请求的
任意格式
的响应结果进行断言
位置:测试计划–>线程组–>HTTP请求–>(右键添加)断言–>响应断言
参数:
练习:
请求:https://www.baidu.com
检查:让程序检查响应数据中是否包含“百度一下,你就知道“
操作步骤:
1.添加线程组
2.添加HTTP请求
3.在http请求下添加响应断言
4.添加查看结果树
小结
(1)什么时候可以使用响应断言?
任意HTTP请求的响应结果,都可以使用响应断言
(2)使用”响应断言“的操作步骤?
- 添加线程组
- 添加HTTP请求
- 添加响应断言
- 测试字段:要检查的项(实际结果)
- 模式匹配规则:比较的方式
- 测试模式:预期结果
- 添加查看结果树
- JSON断言
作用:对HTTP请求的
JSON格式
的响应结果进行断言位置:测试计划–>线程组–>HTTP请求—>(右键添加)断言—>JSON断言
参数:
练习:
请求:http://www.weather.com.cn/data/sk/101010100.html
检查:让程序检查响应的JSON数据中,city对应的内容是否为”北京“
步骤:
1.添加线程组
2.添加HTTP请求
3.在http请求下添加json断言
4、查看结果树
小结
(1)什么时候可以使用JSON断言?
对HTTP请求的
响应结果为JSON格式
时,可以使用JSON断言
(2)使用"JSON断言"的操作步骤?
- 添加线程组
- 添加HTTP请求
- 添加JSON断言
- 填写Assert JSON Path exists
(实际结果-json路径)
- 勾选Addtionally assert value。
- 填写 Expected Value
(预期结果)。
- 添加查看结果树
- 断言持续时间
作用:
检查HTTP请求的响应时间
是否超出要求范围位置:测试计划–>线程组–>HTTP请求—>(右键添加)断言—>断言持续时间
参数:
练习:
请求:https://www.jd.com
检查:让程序检查响应时间是否大于100毫秒
操作步骤:
- 添加线程组
- 添加HTTP请求
- 添加断言持续时间
- 添加查看结果树
- 关联
关联:当请求之间有依赖关系
,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理。
Jmeter中常用的
关联方法
:
- 正则表达式提取器:提取
任意格式
的响应数据- Xpath提取器:提取
HTML格式
的响应数据- JSON提取器:提取
JSON格式
的响应数据
- 正则表达式介绍
正则表达式:就是
一个公式
,或者说是一套规则
,使用这套规则可以从任意字符串中提取出想要的数据内容。
格式格式:左边界(匹配符号)右边界
:可以提取出想要获取的数据内容
.
:是通配符,可以代表任意字符(除换行回车)*
:代表前面的字符出现0次或者多次.*
匹配规则:找到左边界值后,往右查找有边界,找到最后面的右边界,中间的所有数据
都被记录下来(贪婪匹配)。
?
:代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要有匹配的右边界就停止继续
查找;再次查找左边界和右边界
公式格式:左边界(.*?)右边界百度一下,你就知道 百度一下,你就知道 (.*?)
案例:
原始文本:
021-1234-1234
022-1234-1235
023-1234-1236
024-1234-1237
025-1234-1238
026-1234-1239
027-1234-1230
要求:匹配出 城市号、地区号、个人号码三组
- 正则表达式匹配: (.?)-(.?)-(.*?)\n
- 结论:
- 通过一个正则表达式可以提取出多组数据,每组数据设置对应的左边界和右边界即可
- 每一组数据都可以有一个或者多个值
- 正则表达式提取器
作用:针对
任意格式的响应数据
进行提取位置:测试计划–>线程组–>HTTP请求–>(右键添加)后置处理器—>正则表达式提取器
参数:
练习1:
1.请求:http://www.itcast.cn/获取网页的title2.请求:https://www.baidu.com/ 把获取到title作为请求参数
操作步骤:
- 添加线程组
- 添加HTTP请求- itcast
- 添加正则表达式提取器
- 添加HTTP请求-baidu
- 添加查看结果树
小结
(1)什么时候可以使用正则表达式提取器?
任意格式的响应数据
,都可以使用正则表达式提取器进行提取
(2)使用”正则表达式提取器“的操作步骤?
添加线程组
添加HTTP请求-itcast
添加正则表达式提取器
- 引用名称:存放提取出的值的
参数名称
,如填写title- 正则表达式:
左边界(.*?)右边界
- 模板:
用$ $引用起来
,表示解析出第几个()的值- 匹配数字:
1代表取第一个值,-1代表全部取值
添加HTTP请求-百度
引用正则表达式中的引用名称,如:用
${title}引用
它添加查看结果树
- 练习2:获取黑马首页的地址(https://www.itheima.com),把
第五个校区地址作为参数传递
(span为地址的校区)
-响应中的地址格式显示:<p><span>地址:</span>湖北省武汉市长江新城区青龙路传智教育科创园</p>
方法1:
- 添加线程组
- 添加HTTP请求-heima
- 添加正则表达式提取器-—获取第5个地址
- 添加HTTP请求-baidu
- 查看结果树
方法2:
添加线程组
添加HTTP请求-heima
添加正则表达式——获取所有匹配的地址数据
添加DebugSample
添加HTTP请求-百度,
引用第5个地址信息
,格式:${变量名_索引}
,索引从1开始
添加查看结果树
练习3:获取黑马首页的地址,把第5个校区地址作为参数传递(
span为地址/后面带一、二、三)
地址格式1:<p><span>地址一</span>昌平区建材城西路金燕龙办公楼一层</p>
地址格式2:<p><span>地址</span>上海市浦东新区航头镇航都路18号万香创新港</p>
步骤:
- 添加线程组
- 添加HTTP请求-heima
- 添加正则表达式提取器-地址信息
- 添加HTTP请求-百度
- 查看结果树
- xpath提取器
作用:针对
HTML格式
的响应结果进行提取位置:添加方式:测试计划–>线程组–>HTTP请求–>(右键添加)后置处理器–>xPath提取器
参数:
练习:
1.请求:http://www.itcast.cn/,获取网页的title值
2.请求:https://www.baidu.com/,把获取到的title作为请求参数
操作步骤:
1.添加线程组
2.添加HTTP请求-itcast
3.添加Xpath提取器
4.添加HTTP请求-百度
5.添加查看结果树
小结
小结
(1)什么时候可以使用XPATH提取器?
针对HTML格式的响应数据,可以使用XPATH提取器进行提取
(2)使用"Xpath提取器"的操作步骤?
添加线程组
添加HTTP请求-itcast
添加Xpath提取器
勾选use Tidy
(tolernat parser)- 引用名称:存放提取出的值的
参数名称
。如:填写title- Xpath Query:用于提取值的
Xpath表达式
- 匹配数字:0:表示随机,
-1:表示提取所有,1表示第一个值
添加HTTP请求-baidu
- 引用正则表达式中的引用名称。如:
用${title}引用它。
添加查看结果树
- JSON提取器
作用:针对JSON格式的响应结果进行数据提取
位置:添加方式:测试计划–>线程组–>HTTP请求–>(右键添加)后置处理器–>JSON提取器
参数: