阿里云PTS-不同性能压测工具对比

/ 后端 / 没有评论 / 278浏览

阿里云PTS

性能测试PTS(Performance Testing Service)是阿里云一款商业化的性能测试工具。支持按需发起压测任务,可支持百万并发、千万TPS流量发起能力,100%兼容JMeter。PTS支持的场景编排、API调试、流量定制、流量录制等功能,可快速创建业务压测脚本,精准模拟不同量级用户访问业务系统,帮助业务快速提升系统性能和稳定性。

阿里云PTS具备如下特性:

  • 免运维、开箱即用

    SaaS化施压、最大支持百万级并发、千万级TPS流量自助发起能力。

  • 支持多协议

    支持HTTP1.1/HTTP2/JDBC/MQTT/Kafka/RocketMQ/Redis/WebSocket/RMTP/HLS/TCP/UDP/Spring Cloud/Dubbo/gRPC等主流协议。

  • 支持流量定制

    支持全球施压地域定制、运营商流量定制、IPv6流量定制。

  • 稳定、安全

    阿里自研引擎、基于信号量模型、单机支持超高并发,历经多年阿里双十一场景验证可轻松模拟亿级别流量,更加稳定和安全。

  • 性能压测一站式解决方案

    无需编码即可构建复杂压测场景。覆盖压测场景构建、压测模型设定、启动压测、分析定位问题、查看压测报告等完整的压测生命周期。

  • 100%兼容开源JMeter
  • 支持安全、无侵入的生产环境全链路压测解决方案。

Apache JMeter

Apache JMeter是Apache组织开发的基于Java的压力测试工具。Apache JMeter具备如下特性:

  • 支持分布式施压。
  • 支持图形化界面,且支持流程编排,同时支持断言、逻辑控制器等高级指令,可满足复杂业务压测需求。
  • 扩展性强,开发、测试人员可通过编写自己的插件,满足各种压测需求。
  • 技术生态好,有强大的开源社区支持,开发者活跃度高。
  • 支持查看资源监控、性能报告,但可查看的监控和报告指标较少。
  • 基于并发模型,受限于JVM,单机无法支持超高并发。且只支持并发施压模型,不支持吞吐量施压模型。
  • 开源支持的分布式能力无法大规模应用到生成环境,部署成本高。
  • 不支持测试用例管理、压测脚本管理等功能。

ApacheBench

ApacheBench(ab)是一款针对HTTP协议做性能压测的命令行工具。ApacheBench具备如下特性:

  • 具有较好的扩展性。
  • 支持协议单一。对HTTP协议支持度较好,不支持主流的HTTPS、WebSocket等协议。
  • 支持请求总数、并发数、压测时长控制。
  • 作为一款命令行压测工具,上手较为简单,
  • 单机压测工具,无分布式施压能力,无可视化界面。
  • 不支持链路编排、场景管理等功能,无法做带业务含义的复杂压测。
  • 单次压测,只能对单个域名或地址发起流量请求。
  • 压测统计指标维度少,缺少压测过程中的统计数据,无法获取系统负载等指标。

wrk

wrk是一款针对HTTP协议的基准测试工具。wrk具备如下特性:

  • 轻量级性能测试工具,安装简单。
  • 学习成本低。
  • 基于异步事件驱动框架,单机支持并发高。
  • 单机压测工具,无分布式施压能力。
  • 只支持HTTP协议。
  • 无可视化界面,不支持流程编排、断言等能力,无法满足复杂压测需求。

总结

对比项阿里云PTSApache JMeterApacheBenchwrk
成本学习成本
部署、运维成本SaaS服务,免部署单机部署成本低、分布式部署成本高
是否收费开源、免费开源、免费开源、免费
分布式能力是否支持分布式施压是,但部署、运维成本高
压测引擎能力单机性能 、稳定性自研引擎,高
是否支持多协议支持支持不支持不支持
施压量级高,最大百万并发、千万TPS
压测场景构造是否支持客户端录制流量支持,支持Chrome/iOS/Android录制器不支持不支持不支持
是否支持服务端录制流量支持,支持Nginx/Ingress录制器不支持不支持不支持
是否支持流程编排支持,无需编码支持不支持不支持
是否支持出参提取、断言、逻辑控制器等支持支持不支持不支持
压测数据构造是否支持文件数据源支持支持不支持不支持
是否支持从DB中读取数据作为压测数据源支持不支持 ,需自己实现不支持不支持
是否支持使用函数生成或者二次加工压测数据支持支持不支持不支持
压测模型构造是否支持并发模型支持支持支持支持
是否支持吞吐量模型支持不支持支持支持
是否支持流量漏斗模型支持不支持不支持不支持
是否支持自动递增、阶梯递增等流量模型支持支持不支持不支持
压测流量构造是否支持多地域流量定制支持不支持,依赖自己部署不支持,依赖自己部署不支持,依赖自己部署
是否支持从指定运营商发起流量支持不支持,依赖自己部署不支持,依赖自己部署不支持,依赖自己部署
是否支持IPv6流量支持不支持,依赖自己部署不支持,依赖自己部署不支持,依赖自己部署
压测流量控制是否支持压测过程中手动调速支持不支持不支持不支持
是否支持施压过程中动态扩展最大压力、施压机引擎支持不支持不支持不支持
压测数据可视化是否支持压测过程中多维度实时指标监控实时秒级数据、多维度分析支持,但分析维度有限不支持不支持
是否支持压测报告支持完整压测报告支持,报告较简单支持,报告较简单支持,报告较简单
是否支持关联被压系统监控数据支持,可关联阿里云云监控数据不支持不支持不支持
是否支持性能基线能力支持不支持不支持不支持
压测问题诊断是否支持请求耗时分析功能支持,支持分析请求各阶段耗时不支持不支持不支持
是否支持请求明细日志分析功能支持,支持查看每个请求详细信息不支持不支持不支持
是否支持跟APM系统结合能力支持,支持使用阿里云ARMS关联分析不支持不支持不支持
生产环境全链路压测是否支持生产环境全链路压测能力支持,且更加安全、无侵入不支持不支持不支持