性能测试工具名称
| 优点
| 缺点
|
Jmeter
| 1、 开源免费,支持对几乎所有的软件系统做性能测试,而且支持插件和扩展,可以扩展其功能和性能以满足特定的性能测试需求。
2、 支持性能测试流程编排,并且也支持断言、逻辑控制器等高级性能测试逻辑,可满足复杂的性能压测需求。
3、 支持分布式的部署,可以模拟大量的高并发请求。
4、 学习成本低,相关的技术资料非常齐全,社区非常强大。
| 1、 使用Java 语言开发,软件界面功能比较简单,体验性较差。
2、 可查看的监控和报告指标较少。
3、 分布式部署时较复杂,维护和管理分布式集群成本较大。
|
LoadRunner
| 1、 商业付费软件,拥有可靠的售后支持,在国内的知名度很高。
2、 提供非常强大的负载测试能力,支持分布式部署, 能生成详细的性能测试结果和报告。
3、 成熟、稳定的企业级性能测试,适用于超大规模性能并发测试,并且提供丰富的测试场景和性能结果分析功能。
4、 支持Web协议的性能测试脚本录制,可以减少部分编写性能测试脚本的难度。
| 1、 付费软件,购买价格较高,软件安装包较大,并且安装程序繁杂。
2、 操作难度较大,需要一定的学习和培训成本。
3、 底层是基于C语言开发,编写性能测试脚本时,需要对C语言脚本有一定的了解。
4、 只能运行在 Windows 系统上,不能兼容其他的操作系统来运行。
|
WebLoad
| 1、 支持超高并发的性能压测,并且兼容支持包括Windows、Solaris和Linux在内的众多操作系统。
2、 性能测试报告提供了详细和深入的性能分析数据,帮助性能测试工程师更好地理解系统的性能表现。
| 1、 脚本语言是非常见的标准语言,学习起来较为困难,学习成本较高。
2、 商业付费软件,购买价格较高,虽然也提供社区版,但是社区版只支持单机模式。
|
NeoLoad
| 1、 提供包括负载测试、压力测试、稳定性测试、容量规划等多种功能以满足不同测试需要。
2、 支持包括HTTP、HTTPS、SOAP、REST、JDBC、JMS、FTP 等在内的多种应用协议。
3、 提供了丰富的报告功能,可以直观地展示测试结果和性能指标,方便分析和优化性能问题。
| 1、 商业付费软件,购买价格较高。
2、 对于初学者来说,需要一定的学习成本才能熟练掌握其测试功能和操作方式。
|
Gatling
| 1、 支持复杂的场景编排,能够模拟各种用户行为和业务场景。
2、 采用了异步非阻塞的 IO 模型(Akka架构),可以支持高并发的性能测试,性能表现非常出色。
3、 开源,可以免费使用。
| 1、 需要一定的编程基础,对于没有任何编程经验的用户来说,可能需要较高的学习成本。
2、 性能测试报告较弱,但是可以通过扩展组件来获取更多的性能监控信息。
3、 主要支持Web应用程序的性能测试,对于其他类型的应用程序支持不友好。
|
Ngrinder
| 1、 采用Web 界面来管理性能测试脚本和进行性能测试以及查看测试报告,使用较为简单。
2、 支持分布式性能压测,分布式压测时,由一个 controller 和连接它的多个 agent 组成,controller 会把测试分发到多个 agent 上去执行。用户可以设置使用多个进程和线程来并发的执行性能测试脚本,而且在同一线程中,通过重复不断的执行对应的性能测试脚本,来模拟多个并发用户执行。
| 1、 性能测试脚本是基于Python语言来编写,对于一些复杂场景的性能测试,需要测试人员对 python 有一定认识。
2、 测试报告和监控界面较为简单,无法获取到更多较为详细的监控数据。
|
从对比的情况看,Jmeter 是一个适合中小型软件公司使用的最佳性能测试工具,因为Jmeter 是一款完全开源和免费的性能测试工具,并且在强大的社区支持下一直保持着活跃的版本更新,也是非常适合于普通性能测试工程师进行学习的一款优秀的性能测试工具,因为Jmeter在互联网和社区中可以搜索到非常多的技术资料,在遇到问题时很容易找到相关资料来查阅以快速的解决问题。