前言
通过精心设计的性能测试,我们不仅能够了解服务端的综合效能与承载极限,更能前瞻性地评估现有业务架构在面对当前运营需求及未来业务扩张时的适应性与弹性,从而精准规划服务配置的优化路径。
使用jmeter一般用于以下两种类型的性能测试
- 压力测试
就像在健身房里逐渐增加哑铃的重量,观察你能承受多少。在软件测试中,我们逐渐增加系统的用户量或工作负载,直到它开始表现出性能下降的迹象。这样做是为了确保系统在正常甚至高峰时期仍然能够稳定运行,不会出现延迟增加、响应变慢或是崩溃的情况。通过负载测试,我们可以找到系统的最佳工作范围,同时也能发现并修复可能的设计缺陷,比如内存泄漏、死锁或是效率低下的算法。
- 负载测试
就像是想知道你能举多重的极限,不断加重直到你再也举不动。在软件测试领域,这意味着持续加大负载,直到系统无法再处理更多的请求为止。压力测试的目的在于找出系统的绝对上限,也就是系统崩溃或性能急剧下降的临界点。通过这种方式,我们可以确保系统在极端情况下不会彻底瘫痪,同时也为未来的系统规划和扩容提供依据。
基本过程
下面我们看下使用jmeter做性能测试的基本过程:
简单说说上图的意思吧:
-
加线程组:
就是建个小组,定多少“假用户”一起测试,还有怎么开始测试 -
添JMeter组件:
加入各种预设和测试用的玩意儿,主要是输入要测的静态和动态东西的请求详情 -
加监听器:
放些小工具收集测试时和结束后的数据,好分析系统表现 -
跑测试看结果:
开始测试,仔细瞧瞧数据,找找哪慢了,评评分系统扛不扛用
案例分析
1. 压测目标
- 确定接口在高并发下的响应时间和吞吐量
- 发现可能的性能瓶颈,如数据库连接、缓存效率或服务器资源
- 评估接口在预期最大流量下的承载能力(需结合实际业务分析)
案列使用到的接口由 https://httpbin.org/网站提供,感谢网站支持。
接口信息如下:
使用 JMeter 对指定的 REST API 接口
https://httpbin.org/get
进行性能测试
2. 新增jmeter元祖
1. 启动 JMeter:
打开 JMeter 并准备好创建一个新的测试计划。
2. 切换窗口显示语言
3. 启动 JMeter:
打开 JMeter 并准备好创建一个新的测试计划。
4. 添加 Thread Group:
在 “Test Plan” 下右击,选择 “Add > Threads (Users) > Thread Group”。这将创建一个线程组,用于模拟并发用户。
5. 配置 Thread Group:
在弹出的 Thread Group 配置窗口中,设定线程数量(即并发用户数)、循环次数(测试执行次数)等参数。例如,你可以设置线程数为 50,循环次数为 10。
6. 添加 HTTP Request Sampler:
在刚才创建的 Thread Group 下,右击并选择 “Add > Samplers > HTTP Request”。
7. 配置 HTTP Request Sampler:
在 HTTP Request Sampler 的配置界面中,填写以下信息:
- Server Name or IP: 输入
httpbin.org
- Port Number: 保持默认(空),因为 HTTPS 默认使用 443 端口。
- Protocol: 选择
https
- Path: 输入
get
- Method: 选择
GET
- Content Encoding: 选择
UTF-8
8. 添加断言:
为了验证请求的正确性,可以添加 Response Assertion。右击 HTTP Request Sampler,选择 “Add > Assertions > Json Assertion”。在这里,你可以添加预期的响应代码(例如 200)和/或预期的响应文本。
9. 添加监听器:
为了查看测试结果,需要添加监听器。在 Thread Group 下,右击并选择 “Add > Listeners”,然后选择你希望使用的监听器类型,如 “View Results Tree” 或 “Summary Report”。
10. 配置监听器:
根据所选的监听器类型,进行适当的配置。例如,“View Results Tree” 可以显示详细的响应信息,而 “Summary Report” 则提供总体的测试结果概览。
11. 保存测试计划:
在 “File” 菜单中选择 “Save Test Plan As…”,保存你的测试计划。
12. 运行测试:
在 “Run” 菜单中选择 “Start”,开始执行测试计划。
13. 分析结果:
一旦测试完成,使用之前添加的监听器来分析测试结果。查看响应时间、吞吐量、错误率等关键性能指标,以确定接口的性能状况。
文章原创首发于微信公众号 软件测试微课堂,更多内容欢迎关注微信公众号查看