目录
一、使用JMeter演示取样器、监听器、配置元件、断言的使用;
[① 用户定义的变量](#① 用户定义的变量)
二、使用JMeter演示前置处理器、后置处理器、逻辑控制器、定时器的使用。
[②for each控制器](#②for each控制器)
实验目的
上机练习主要针对本章中需要重点掌握的知识点,以及在性能测试中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对JMeter工具的使用的熟练程度。
上机:( 考察知识点为取样器、监听器、配置元件、断言、前置处理器、后置处理器、逻辑控制器、定时器 )
形式:单独完成
题目:
通过不同的小案例演示取样器、监听器、配置元件、断言、前置处理器、后置处理器、逻辑控制器、定时器的使用,要求如下:
一、 使用J M eter演示 取样器、监听器、配置元件、断言的使用 ;
1、取样器
①使用路径传递GET请求参数
②使用参数列表传递GET请求参数
③使用消息体数据传递POST请求参数
2、监听器
①测试计划结果树
②线程组结果树
HTTP请求配置
线程组配置
聚合报告结果
3、配置元件的使用
① 用户定义的变量
②HTTP信息头管理器
③HTTP请求默认值
④CSV数据文件设置
结果如下
⑤计数器
查看结果
4、断言
①响应断言
案例:要求使用JMeter发送一个GET请求,请求地址为http://www.baidu.com,检查响应数据中是否包含"百度一下,你就知道"字符串
百度一下,你就知道,改为英文逗号,出错
②JSON断言
要求使用JMeter发送一个GET请求,
请求地址为http://www.weather.com.cn/data/sk/101010100.html,检查响应的JSON数据中,city对应的内容是否为"北京"
③断言持续时间
案例:
要求使用JMeter发送一个GET请求,请求地址为https://www.jd.com,检查响应时间是否超过100毫秒
二、 使用J M eter演示 前置处理器、后置处理器、逻辑控制器、定时器的使用。
1、前置处理器
要求使用JMeter发送一个GET请求,请求地址为https://www.baidu.com/S,第一个用户携带参数为:name=张三\&age=28; 第二个用户携带参数为:name=李四&age=30
2、后置处理
①正则表达式提取器
本案例要求使用JMeter发送两个请求,具体要求如下
请求一:请求地址为https://www.itcast.cn,获取网页的<title>标签的值。
请求二:请求地址为https://www.baidu.com/S,把请求一的\<title>标签的值作为请求参数。
百度请求itcast的title并匹配第一个字符串
②Xpath提取器
以前面正则表达式提取器中的案例为例,同样发送两个请求,要求使用XPath提取器提取请求一中的title值。将正则表达式提取器替换为XPath提取器。
另两个过程与上图一致
③JSON提取器
下面通过一个案例演示JSON提取器的使用。本案例要求使用JMeter发送两个请求,具体如下。
请求一:请求地址为http://www.weather.com.cn/data/sk/101010100.html,获取返回结果中的城市名称"北京"。
请求二:请求地址为https://www.baidu.com/S?wd=北京,把请求一返回的城市名称"北京"作为请求参数
3、逻辑控制器
①if逻辑控制器
本案例要求使用用户定义的变量定义一个变量name,name有两个可选值:baidu和itcast。如果name的值为baidu,则请求https://www.baidu.com;如果name的值为itcast,则请求https://www.itcast.cn。
分析上述要求,根据 name 的值判断发送哪个请求,需要使用如果(If) 控制器实现。确定了核心元件之后,构建测试计划目录树,如下图所示。
用户变量
百度
Itcast
结果如下:
②for each控制器
本案例要求使用用户定义的变量定义一组关键字:hello、pyhton、测试。依次取出这一组关键字,将其作为请求参数请求百度网站(https://www.baidu.com/S?wd=hello)。
分析上述要求,要想逐个读取用户定义的变量并定义一组关键字作为请求参数,可以使用 ForEach 控制器。
结果如下
1
2
3
4、定时器
①同步定时器
例题:
使用JMeter模拟100个用户同时访问百度首页(https://www.baidu.com),统计各种高并发情况下的运行情况。
②常数吞吐量定时器
例题:
本案例要求使用JMeter发送请求访问百度首页(https://www.baidu.com),QPS为20,持续运行一段时间,观察、统计运行时的性能指标变化。
QPS=20代表每秒处理20个请求
③固定定时器
例题:
要求使用JMeter模拟登录iHRM人力资源管理系统
请求地址:http://ihrm2-test.itheima.net/api/sys/login。
请求方式:POST。
请求头:Content-Type:application/json;charset=UTF-8。
请求体:{"mobile":"13800000002","password":"888itcast.CN764% ... "}。
当模拟用户登录时,登录出现3次输入错误后,锁定 300ms ,等待 300ms 后重新输入正确的用户名和密码,登录成功。
建议:进入网站直接复制密码
密码123456有时正确,有时错误
步骤如下:
1、请求头信息
2、用户名正确,密码错误
3、用户名错误,密码错误
4、用名错误、密码正确
5、用名正确、密码正确
6、固定定时器300ms
结果如下
前3个错误,最后一个正确