(1)添加用户自定义的变量:
右击 “测试计划/线程组”--“添加”--"配置元件"--"用户自定义变量"
(2)添加变量:
(3)调用:(在取样器http请求当中调用)
2)用户参数。
使用场景:用来模拟多个(少量多个用户 10)用户登录操作。
模拟三个用户去访问百度,访问百度时带两个参数
(name 和age) (张三、18)(李四、20)(王五、21)
(1)添加用户参数:右击 “线程组”--"前置处理器"--"用户参数"
(2)配置用户参数:
(3)调用用户参数(在取样器http请求中调用用户参数)
3)CSV数据文件设置。
使用场景:可以模拟多个用户(成百上千上万)的登录操作。
CSV文件配置参数化的实现步骤:
(1)定义CSV的文件数据。TXT文件修改扩展名为:CSV。
(2)添加 CSV 数据文件设置。右击 “测试计划/线程组”--“添加”--"配置元件"--"CSV 数据文件设置"。
(3)设置CSV数据文件配置
(4)http请求调用CSV文件中的变量名称
4. 完成测试计划(名字为: 断言练习.jmx),访问百度或其他网站。
断言:让程序自动判断预期结果和实际结果是否一致。
JMeter中常用断言:响应断言。JSON断言。断言持续时间。
提示:
- JMeter在请求的返回层面有个自动判断机制(响应状态码)。
- 但是请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性。
参考案例:
1)响应断言。
作用:对HTTP请求的任意格式的响应结果进行断言
检查:让程序检查响应数据中是否包含“百度一下,你就知道”
位置:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 断言 --> 响应断言
2)JSON断言。
作用:对HTTP请求的JSON格式的响应结果进行断言
案例:http://www.weather.com.cn/data/sk/101010100.html
检查:让程序检查响应的JSON数据中,city对应的内容是否为:“北京”
位置:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 断言 --> JSON断言
3)断言持续时间。
作用:检查HTTP请求的响应时间是否超出要求范围
检查:让程序检查响应时间是否大于100毫秒
位置:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 断言 --> 断言持续时间
参数介绍:
- 持续时间(毫秒):HTTP请求允许的最大响应时间(单位:毫秒)。 超过则认为失败
5. 完成测试计划(名字为: 定时器练习.jmx),访问百度或其他网站。
- 同步定时器。- 聚合报告。
- 常数吞吐量定时器。 - 聚合报告。
参考案例:
- 同步定时器。- 聚合报告。
同步定时器:阻塞线程(累积一定的请求),当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起释放,瞬间产生很大的压力。
位置:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> 同步定时器(ynchronizing Timer)
参数介绍:
- Number of Simulated Users to Group by:模拟用户组的数量,即指定同时释放的线程数数量。 若设置为0,等于设置为线程组中的线程数量
- Timeout in milliseconds:超时时间以毫秒为单位,即超时多少毫秒后同时释放指定的线程数; 如果设置为0,该定时器将会等待线程数达到了设置的线程数才释放,若没有达到设置的线程数会一直死等。如果大于0,那么如果超过Timeout in milliseconds中设置的最大等待时间后还没达到设置的线程数,Timer将不再等待,释放已到达的线程。默认为0
作用:让JMeter按指定的吞吐量执行,以每分钟为单位。
位置:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 -->常数吞吐量定时器(Constant Throughput Timer)
参数介绍:
- Target throughput(in samples per minute):目标吞吐量。注意这里是每个用户每分钟发送的请求数
案例要求:
- 模拟用户真实的业务场景要求:20 QPS
- 如果线程数设置为1,则目标吞吐量设置为 20 * 60 = 1200
- 如果线程数设置为2,则目标吞吐量设置为 20 * 60 / 2 = 600