普通测试人员提起接口性能测试工具时候,往往觉得会使用商业化软件loadrunner进行编程开发更显得高大上,事实是这样的吗?

我不这么认为!


从笔者的调研来看,Jmeter才是当前性能测试的主流工具。理由如下:

1)系统支持性

Apache JMeter是Apache组织开发的基于Java的开源压力测试工具。截至当前,jmeter的最新版本是:http://mirrors.shu.edu.cn/apache//jmeter/binaries/

Apache JMeter 5.0 requires Java 8+

/apache/jmeter/binaries/

File NameFile SizeDate
../--
HEADER.html60718-Sep-2018 08:17
apache-jmeter-5.0.tgz5384719218-Sep-2018 08:13
apache-jmeter-5.0.zip5695245518-Sep-2018 08:13

loadrunner是HP推出的一种预测系统行为和性能的商用负载测试工具。目前最新的版本是loadrunner12。https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview


使用体会:

a) 从版本迭代速度来看,对比JMeter每年两个大版本的迭代速度,Loadrunner两年都发不了一个大版本,迭代速度确实堪忧,这点从对JVM的支持性也可见端倪(当前JMeter支持java 8+,Loadrunner12是 java 7,Loadrunner是java 6);

b) 从操作系统支持性来看,JMeter轻便小巧、支持windows/Linux,而Loadrunner动辄3G~4G大小的安装程序,对操作系统的兼容性差(对win10系统很不友好,需要安装各类兼容包,且存在闪退现象。对Linux GUI支持不佳,由于Win系统本身的性能不可靠,这条简直是硬伤)。


2)功能对比

常规的web测试来看,两者在基准/负载/压力/稳定性测试上的功能并无明显差别,需要注意的点是:

Loadrunner的优势:

a) Loadrunner支持很多“古老”的通信协议,例如使用SNMP对设备进行管理。如果您的行业和公司业务恰好用到这些,Loadrunner无疑是优先选择;

b) Loadrunner的GUI无疑是更绚的,展示的图表更加清晰,特定行业认证甚至会指定要求Loadrunner的测试结论。

c) 对于熟练使用编程语言的人群,脚本编写和修改更加方便。但是这点优势不明显,毕竟用C的不多,JAVA才支持jdk1.6,jdk1.7,很多jar包都导入不了。


JMeter的优势:

a) 对比Loadrunner的封闭性,JMeter因Web而生,从基因上就具有互联网灵活的特性。他可以通过扩展插件实现对自定义协议的支持;

b) JMeter的周边生态更加友好。对于当下提倡的CI/CD工具集成更好。功能上的硬伤也容易通过第三方工具得到补充,例如嫌弃录制功能不好用,你可以用BadBoy啊,图表没有显示自己想要的,你可以用InfluxDB+Grafana自定义可视化实时监控啊。当然对比Loadrunner的All Things in  One Tool,JMeter更折腾。


3)社区支持

a) 由于以上种种因素,目前JMeter是互联网公司的主流测试工具,网上JMeter的学习教程挺多的。

b) Loadrunner毕竟是商用软件,官方对人民币用户的支持应该比较到位。另外Loadrunner的培训班和教材挺多的。


4)总结和其他

a) 一言以蔽之,Loadrunner以前挺牛逼的,现在不行了,以后估计更不行。新团队、新项目建议使用JMeter。

b) JMeter和Loadrunner只是实现性能测试的一个工具。性能测试更重要的应该是性能测试策略、测试计划、调优过程。熟练掌握Loadrunner的测试人员可以继续使用,但是学习JMeter的测试理念无疑对个人是有帮助的。

https://mp.weixin.qq.com/s/unqDVTa7Ddf-AyovXDO6og