引言
一谈到性能测试,很多人都会想到Loadrunner和Jmeter这两款工具,其实Python也有一套性能测试工具——Locust。
Locust是一款支持分布式开源的性能测试框架,基于Web界面实时监控性能数据。
那么这些性能测试工具到底有什么区别,如何选择呢?
工具对比
LoadRunner | Jmeter | Locust | Wrk | Hyload | |
分布式压力 | 支持 | 支持 | 支持 | 不支持 | 支持 |
单机并发能力 | 低 | 低 | 高 | 低 | 高 |
并发机制 | 进程/线程 | 线程 | 协程 | 线程 | 协程 |
开发语言 | C/JAVA | JAVA | Python | C | Python |
报告与分析 | 完善 | 简单图表 | 简单结果 | 简单图表 | 简单图表 |
授权方式 | 商业收费(10WRMB+) | 开源免费 | 开源免费 | 开源免费 | 开源免费 |
测试脚本形式 | C/JAVA | GUI | Python | C | Python |
资源监控 | 支持 | 不支持 | 不支持 | 不支持 | 支持 |
单机最大并发数 |
LR11超级license最高支持6.5w个并发 LR12支持50个 |
1000个 | 100W+ | 未知 | 未知 |
优点 |
1、支持分布式部署 2、支持复杂业务测试 3、七层协议全部支持 4、支持多种语言 |
1、支持分布式部署 2、支持复杂业务测试 3、支持二次开发 |
1、支持分布式压测 2、支持复杂业务测试 3、单机并发高 4、Python脚本,web界面展示 |
1、操作简单 | 未知 |
缺点 |
1、商业工具贵 2、学习成本高 3、C/S架构使用不方便 4、Load不适用后端接口 |
1、硬件利用率较低 2、C/S架构使用不方便 |
1、测试报告过于简陋 2、测试过程中的监控无法看到 |
1、不支持windows 2、只支持http协议 3、只支持单机并发 4、结果简单 |
未知 |
总结
我们在接到性能测试需求的时候,应该以实际需求为基准来选择测试工具,任何工具都是辅助的,没有好坏之分,只有适合不适合的。比如你需要测试单机并发高的场景,可以选择Locust,也可以选择Jmeter和Loadrunner,只不过Locust更加适合测这种场景下的并发数。
当然只要达到目的,在使用上也可以根据个人习惯来,比如有些人使用工具可以完成任务,有些人写脚本也可以完成任务。我们最终的目标是完成一次性能测试需求,而不是纠结工具的好坏与选择。