软件测试实验三 性能测试参考案例
如果大于0,那么如果超过Timeout in milliseconds中设置的最大等待时间后还没达到设置的线程数,Timer将不再等待,释放已到达的线程。:阻塞线程(累积一定的请求),当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起释放,瞬间产生很大的压力。案例三:POST请求,URL为https://www.baidu.com/S,请求体为:wd=test(form表单)案例四:
1.使用JMeter访问Web页,并查看请求和响应信息。
1)启动JMeter。
2)在‘测试计划’下添加‘线程组’。
3)在‘线程组’下添加‘HTTP请求’取样器,填写相关请求数据。
4)添加其他组件,填写相关数据。
5)在‘线程组’下添加‘察看结果树’等监听器。
6)点击‘启动’按钮运行,并查看结果。

2.完成测试计划(名字为: HTTP请求练习.jmx),访问百度或其他网站。
• 模拟10个用户并行执行。 • 模拟10个用户5s内启动完成。
• 模拟2个用户各循环3次。 • 模拟2个用户运行30s。
• 模拟2个用户等待10s后开始执行。
参考案例:访问百度首页
1.启动jmeter(bin-jmeter.bat)
2.在打开的窗口中,右击 “测试计划”, 选择“添加”---“线程(用户)”----“线程组”。



- 在添加的线程组上右击,选择“添加”----“取样器”----“HTTP请求”。

- 在http请求中填写相关的请求数据。

案例一:GET请求,URL为http://www.baidu.com/S?wd=test
要求:使用HTTP请求 - 路径来传递get请求参数
案例二:GET请求,URL为https://www.baidu.com/S?wd=test
要求:使用HTTP请求 -参数列表来传递get请求的参数
案例三:POST请求,URL为https://www.baidu.com/S,请求体为:wd=test(form表单)
要求:使用HTTP请求 - 参数列表来传递POST请求的form格式参数
案例四:POST请求,URL为http://www.baidu.com/S,请求体为:wd=test(form表单)
要求:使用HTTP请求 – 消息体数据来传递POST请求的form格式参数



- 右击 “线程组”,选择 “添加”----“监听器”----“察查结果树”。

- 执行脚本,查看结果树。

3. 完成测试计划(名字为:参数化练习.jmx),访问百度或其他网站。
- 用户定义的变量。
- 用户参数。
- CSV数据文件设置。
参考案例:
1)用户定义的变量。

使用场景: 将测试过程中需要用到的一些常量信息定义到用户自定义的变量当中。例如:URL的域名,系统的端口号
例:将访问百度的域名和端口号、协议通过自定义的变量定义好后,再通过http请求调用。
(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请求的响应时间是否超出要求范围
案例:https://www.baidu.com
检查:让程序检查响应时间是否大于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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)