之前讲的Jmeter算不上是性能测试,只是用Jmeter做接口测试。现在我们开始进入实际的性能测试。开始前你应该对Jmeter有了一定的了解,把前面Jmeter内容看一遍应该可以入门了。
Jmeter与locust
locust除了可以做接口的性能测试以外,做性能测试工具开发
很有优势,框架扩展、接口封装都很方便。只是locust尚在发展阶段,不像Jmeter这么成熟。虽然Jmeter不如Loadrunner能完全模拟页面性能测试,但就目前来说我也不知道除了Jmeter还有什么免费的好用的性能测试工具。 接下来我们就开始Jmeter性能测试学习吧。
Jmeter性能测试
概念和一些性能指标
一个用户反复登录100次,这不是性能测试,100个用户同时登录一次,这属于性能测试。也就是模拟多用户发起请求,获取性能指标。
常用性能指标
- avgRT:平均响应时间——反应一个大致的情况,不是特别准确,因为最小值或者最大值都会拉低/拉高这个平均值,所以工作中比较认可的是90%的响应时间,在这个平均响应时间之下。
- TPS:服务器每秒处理的事务数
- 衡量服务器处理能力的最主要的指标
- 假设TPS最大能力是100,刚开始吞吐量慢慢增加,当吞吐量小于TPS时,TPS数值随着吞吐量增加而增加;当事务数超过服务器每秒能处理的最大事务数时,多出来的事务就会排队等待处理,日积月累,等待处理的事务数越来越多,占用了CPU、内存等资源,计算的时候效率就会降低,就会出现TPS曲线下降的情况——资源不够用了,出现瓶颈了。
- 吞吐量:网络中每秒传输的事务数
“事务:一个请求行为,一个事务可能是多个接口。是从发起,到网络传输,到收到响应,是一个完整的事务。 ”
- 吞吐率:每秒钟能通过多少kb的数据
- 服务器资源利用率
- CPU、内存、IO的利用率
- 并发用户数:同一时间发起请求的用户数
- 集合点:同一时间,多个人发起相同请求
- 广义并发:同一时间发起相同、不同请求【Jmeter常用】
- 狭义并发:同一时间发起相同请求
- 负载测试:逐步增加用户数/负载,测试系统性能变化,并最终确定系统所能承受的最大负载量区间。判断方法:
- 有没有报错
- tps下降
- 响应时间变长【工作中APDEX(用户满意度)时间一般认定为1.5s】
- 压力测试:在一定的性能压力下,持续运行一个比较长的时间,看系统服务和各资源利用情况稳定性。