【练习】
基础题:
1、Jmeter常用的三种断言是什么?各自的作用是什么?
2、什么情况下要使用关联?jmeter常见的关联有哪几种?应用场景有什么区别?
3、练习课上讲解的所有案例
【答案】
1、Jmeter常用的三种断言是什么?各自的作用是什么?
Jmeter断言
(1)响应断言
请求:http://www.baidu.com ,检查:让程序检查响应数据中是否包含“百度一下,你就知道”,响应码为200
(2)JSON断言
请求:http://www.weather.com.cn/data/sk/101010100.html ,检查:让程序检查响应的JSON数据中,city对应的内容是否为“北京”,响应码为200
(3) 断言持续时间
请求:https://www.jd.com 检查:让程序检查响应时间是否大于500毫秒
2、什么情况下要使用关联?jmeter常见的关联有哪几种?应用场景有什么区别?
(1)线程组内的关联(通过后置处理器实现):
A、正则表达式提取器
使用范围:适用于任何格式的响应数据
参数配置:
- 参数名:提取出来的数据要保存的变量名
- 正则表达式:左边界(.*?)右边界
- 模板:$1$(代表提取正则表达式中第1个括号的内容)
- 值:-1(返回全部的值),n(返回列表中第n个匹配上的值)
引用:
- 在后续请求中引用提取器中定义的参数名:${参数名}
B、xpath提取器
使用范围:适用于HTML格式的响应数据
参数配置:
- 参数名:提取出的数据要保存的变量名
- xpath路径:定位某个页面元素的路径
- 值:-1(返回全部的值),n(返回列表中第n个匹配上的值)
引用:
- 在后续请求中引用提取器中定义的参数名:${参数名}
C、JSON提取器
使用范围:适用于JSON格式的响应数据
参数配置:
- 参数名:提取出的数据要保存的变量名
- JSON路径:定义到JSON字符串中某个值的路径
引用:
- 在后续请求中引用提取器中定义的参数名:${参数名}
(2)线程组间的关联
两个请求在不同的线程组中
关联
(1)正则表达式提取器
案例1:
请求:传智教育官网-好口碑IT培训机构,一样的教育,不一样的品质 ,获取网页的title值
请求:百度一下,你就知道 ,把获取到的title作为请求参数
案例2:
请求:传智教育官网-好口碑IT培训机构,一样的教育,不一样的品质 ,获取网页的地址信息(第2个地址)
请求:百度一下,你就知道 ,把获取到的地址信息作为请求参数
(2)XPath提取器
请求:传智教育官网-好口碑IT培训机构,一样的教育,不一样的品质 ,获取网页的title值
请求:百度一下,你就知道 ,把获取到的title作为请求参数
(3)JSON提取器
两个请求在同一个线程组中:
请求获取天气的接口,http://www.weather.com.cn/data/sk/101010100.html ,获取返回结果中的城市名称
请求:百度安全验证北京 ,把获取到的城市名称作为请求参数
(4)跨线程组关联
两个请求在不同的线程组中:
请求获取天气的接口,http://www.weather.com.cn/data/sk/101010100.html ,获取返回结果中的城市名称
请求:百度安全验证北京 ,把获取到的城市名称作为请求参数
3、练习课上讲解的案例
录制脚本
(1)配置Jmeter,录制脚本:打开tpshop首页,搜索商品,运行观察结果
(2)配置Jmeter录制过滤(过滤下图片等链接、只录制tpshop的请求),打开tpshop首页,搜索商品,,运行观察结果
(3)配置Jmeter录制,录制脚本:登录tpshop商城,进入我的订单,运行观察结果