第五章|第五章 性能-工具介绍

常见性能测试工具: ApacheBench (免费) 是一个轻量级工具。主要用于 HTTP 协议的性能测试。非常简单快捷。不支持场景化测试。
ab -n 1 -c 1 https://testxxxx.com/
-n:总请求次数
-c:并发次数(并发请求不能大于总请求次数)
JMeter (免费)
Apache 开源基金会提供的完全开源的性能测试工具。
Apache JMeter也可用于测试静态和动态资源,Web动态应用程序的性能。用于模拟服务器,服务器组,网络或对象上的繁重负载,以测试其强度或分析不同负载类型下的总体性能。支持分布式运行,JMeter 使用 Java 语言开发的,使用前需要安装 Java 运行环境。某些私有协议可以二次开发插件来支持相应的协议。
LoadRunner(商用)
性能测试工具,它最初是Mercury公司的产品,2006年Mercury公司被HP收购。
LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner 企业能最大限度地缩短测试时间优化性能和加速应用系统的发布。因为是闭源收费的软件,且授权费用高昂。使用也较为复杂,而且该工具体积比较大。
LR 强调的是对整个企业应用架构进行测试,它通过模拟实际用户的操作行为和实行实时性能监控来帮助客户更快的确认和查找问题。LR能支持广泛的协议,可以为客户的特殊环境,提供特殊的解决方案。
Locust (免费)
使用的分布式用户负载测试工具。它旨在对网站进行负载测试,并确定系统可以处理多少个并发用户。非常易用。很方便地基于Python进行脚本扩展和业务请求实现。完全基于事件驱动,所以不受进程和线程的限制,可以支持发起更高的并发数请求。可以分布式发起并发请求。


工具选择: 1.根据压测场景来选择
根据压测场景是什么来选择。如果说是一次性单接口的场景就可以使用 AB。如果说是复杂事物多接口需要业务场景的话,就会选择 JMeter 这类工具可以构造丰富的场景能满足需求。
2.我需要提供多大压力
我要提供多大的压力?是1000 QPS还是万级以上的。压力很大的话就要考虑压力测试工具是否支持分布式,能否快速扩展 agent。对于 JMeter 来讲就很好的支持了。
3.周期性需求
业务可能频繁上线,服务随时变动。可能会有一个周期性需求,按月巡检。需要一个场景文件,我可以去做数据驱动,实时跟进数据改变。最后希望结果落库。
4.二次开发的需求
JMeter 开源插件化思想,支持 Thrift,Dubbo 等多种协议。可以快速平台化。


【第五章|第五章 性能-工具介绍】总结:建议使用Jmeter进行压测试行为,JMeter有开放社区,有问题的时候能够快速获得答案。

    推荐阅读