最近由于业务需要,对系统做压力测试,对于常见的工具中我选择了这三项Locust,Jmeter。
◆ Jmeter在做小并发的负载测试时,感觉十分方便,特别是终端命令行模式运行,可以对服务器优化前后、代码缓存优化前后的结果有很好的对比。
但是在这些宏观意义上的对比结束后,精确到细节,大并发的时候,jmeter感觉并不给力。
同样运行在mac终端,启动20000个用户,基本上java的运行机制导致jmeter大部分完成不了。这个并发启动用户数受本地机器配置影响较大,您的机器CPU,RAM,物理内存等因素。压测必然是大量线程,但问题是个人PC性能有限,可能出现服务器还没挂,自己电脑先挂了,所以采用了jmeter GUI分布式以及jmeter NON-GUI分布式。使用普通系统,最多可以使用250-500 用户。如果想1K 10K用户,那么就不得不采取其他的方式或者NeoLoad、Locust了。
◆ Locust:这个工具是基于Python安装的,很轻量,但是对于单机大并发来说,很给力。
实际测试中,2000个用户以最大速率启动2000个用户,持续40秒钟,总request量已达20000+个。
并且RPS(request per second)高达100+左右,相比于jmeter已经很给力了。
因此对于单台机器多并发来讲,我觉得Locust较好,虽然Locust需要自己编写程序,但是对于让你写业务程序来讲,这个程序就简单的多了。
(LoadRunner用过几次,可能是我不会用或者其他原因,使用时这个工具对浏览器版本有要求,对于我来讲体验感不是很好)