这篇文章主要是指常用性能测试工具的比较,包括前端和后端。
前端性能测试的工具分析
业内已经开源的前端性能测试工具:
工具 | 来源 | 可监测指标 | 操作难易度 | 官网 |
perfdog | 腾讯 | FrameTime、FPS、流畅度、Jank(卡顿次数)、Stutter(卡顿率)、CPU、内存、网络等 | 简单 | |
GT | 腾讯 | CPU、内存、流量、电量、帧率/流畅度等 | 中等 | |
Emmagee | 网易 | cpu、内存、流量、帧率、电池,启动时间和状态等 | 中等 | |
Android Studio | 安卓官方 | 布局复杂度、耗电量、内存、网络、程序执行效率、程序稳定性 | 中等 | |
leakcanary | Square | 内存泄露、应用卡顿等 | 中等 | |
iTest | - | cpu、内存、流量、电量等 | 中等 | |
Battery Historian | | 电量 | 中等 |
后端性能测试工具的分析
后端性能测试的工具:Locust、Jmeter和Wrk、loadrunner、ab
公司各个team常用的压测工具主要是Locust、Jmeter和Wrk,之前在压测调试的时候,曾经做了简单对比:
工具 | JMeter | locust | Wrk | 比较 |
环境 | Java + JMeter | Python + Locust | JMeter支持的平台丰富,环境搭建简单 | |
脚本 | 需要在JMeter 的 UI界面上编写 | 不限制,Python IDE即可 | 不限制,简单接口直接用终端命令即可 | Locust需要一点代码基础 |
负载 | 单台负载机可模拟的负载数(线程)有限,需要多台机器设置分布式 | 通过编写代码完成分布式配置,单台负载机可模拟的负载数超过JMeter | 不支持分布式配置,但是单机也可压出高的qps | 从单接口的压测结果看,wrk > Locust > JMeter |
平台 | Windows、linux、Mac | Windows、linux、Mac | linux | wrk支持的平台比较单一 |
界面 | 复杂 | 简洁 | 简洁 | |
报告 | 详细的报表、出参入参信息 | 简单结果和报表 | 简单结果输出,无报表 | JMeter优于Locust |
可移植性 | 通过导出导入JMX脚本的方式 | Python脚本 | 无 | 不相上下吧 |