阿里云性能测试工具PTS介绍-阿里云开发者社区

开发者社区> 阿里云SRE技术社区> 正文

阿里云性能测试工具PTS介绍

简介: 性能测试 PTS(Performance Testing Service)是具备强大的分布式压测能力的 SaaS 压测平台,可模拟海量用户的真实业务场景,全方位验证业务站点的性能、容量和稳定性。

阿里云
阿里云智能GTS-平台技术部-SRE团队

1.简介

(1)概述

性能测试 PTS(Performance Testing Service)是具备强大的分布式压测能力的 SaaS 压测平台,可模拟海量用户的真实业务场景,全方位验证业务站点的性能、容量和稳定性。
PTS 目标是将性能压测本身的工作持续简化,使用户可以将更多的精力回归到关注业务和性能问题本身。在 PTS 平台上,用户可以用较低的人力和资源成本,构造出最接近真实业务场景的复杂交互式流量,快速衡量系统的业务性能状况,为性能问题定位、容量最佳配比、全链路压测的流量构造提供最好的帮助。进而提升用户体验,促进业务发展,最大程度实现企业的商业价值。

(2)压测流程

PTS 提供全面高效的压测流程,具体如下图所示。

1.png
图1:PTS压测流程图

压测流程说明:

  1. 在 PTS 控制台上,准备压测 API 数据,构造压测场景,定义压测模式、量级等;支持随时启停压测,压测过程中可调速。
  2. 压测启动后,PTS 后台的压测控制中心将自动调度压测数据、压测任务和压测引擎。
  3. 通过随机调度全国上百个城市和运营商的内容分发网络 CDN (Content Delivery Network)节点,发起压测流量。保证从虚拟用户并发量、压测流量的分散度等维度都接近真正的用户行为,压测结果更加全面和真实可信。
  4. 通过压测引擎向用户指定的业务站点发起压测。
  5. 压测过程中,通过集成云监控产品,结合 PTS 自有的监控指标,实时采集压测数据。
  6. 在 PTS 控制台,实时展现压测数据,进行过程监控;压测结束后,生成压测报告。基于整个压测场景的性能表现,定位性能问题、发现系统瓶颈。

(3)压测创建方式

PTS 支持以下 4 种方式创建压测场景(或称压测用例),如图所示:

2.png图2:压测场景创建方式

说明:

  • 方式一: PTS 自研零编码可视化编排,使用自研强大引擎压测。
  • 方式二: 使用 PTS 自研云端录制器的使用,零侵入录制业务请求并导入 1 中的自研交互中进行进一步设置。
  • 方式三: 将导入脚本压测 1 中的 PTS 自研交互中,使用 PTS 自研引擎。
  • 方式四: JMeter 原生压测并使用原生 JMeter 引擎进行压测,PTS 提供自定义的压力构造和监控数据汇聚等产品服务。

其中,方式一、二、三由于使用了 PTS 的自研引擎,具备 RPS(Requests per Second)吞吐量压测模式、秒级启动、实时控制、定时压测和流量遍布全国运营商网络的差异化能力,其中方式一是 PTS 最核心的一种压测场景创建方式。

2. 具体功能

PTS 以互联网化的交互为基础,提供丰富的 API 编排功能。支持按需设定压测模式、压测量级、压测时间,快速发起压测,监控压测过程并生成报告。同时也兼容开源工具 JMeter,确保流畅的压测体验。

(1)压测场景构建

要发起一次性能压测,首先需要创建一个压测场景,进行业务 API 的编排。主要功能如下:

  • 支持多个 API 并行或者有序串行。
  • 支持 API 地址中添加参数,实现请求的动态变化。参数主要包括系统函数、文件参数、字符串、出参、其他自定义参数和它们彼此之间的组合。
  • 支持 Cookie 传递,模拟用户登录场景。
    提供丰富的指令功能,如集合点、思考时间等,扩展场景的仿真度。
  • 支持压测前的场景调试,可进行复杂场景的数据流向校验。
  • 提供云端录制器,便于移动端的请求抓取,可一键导入到压测场景中。

(2)压测流量控制

压测流量的控制是性能压测中最重要的一环。主要功能如下:

  • 支持两种压测模式:并发模式(虚拟用户并发)和 RPS 模式(Request per Second,即吞吐量模式)。RPS 压测模式为 PTS 独有,能够更精准地衡量服务端系统的能力。
  • 随机调度遍布全国各地的压测引擎,一分钟内快速启动压测。
  • 支持定时压测,可指定启动压测的日期、时间及循环周期等。结合服务等级定义 SLA(Service Level Agreement)指标监控,触发告警或停止压测,实现智能压测。
  • 支持两种调速模式:自动递增和手动调整。压测流量的调整秒级生效。
  • 支持最高千万级的流量瞬时脉冲,多重机制确保压测流量及时停止。

(3)压测数据监控

PTS 提供压测过程监控,展现实时数据。主要功能如下:

  • PTS 的监控指标包括每个 API 的并发、TPS (Transactions per Second)、响应时间、采样的日志等。同时从不同细分维度,统计了 API 请求的成功、失败情况和响应时间。
  • 支持添加阿里云生态内的云监控产品,可提供包括 ECS、SLB 和 RDS 在内的各产品的性能指标监控。
  • 支持创建服务等级协议 SLA(Service Level Agreement)规则并关联到不同的业务场景,对业务压测场景进行更智能的控制和更全面合理的评价,同时 PTS 也提供了大量 SLA 模板。

(4)压测报告导出

在压测停止之后,系统会自动收集压测过程中的监控数据(包括云监控的数据),形成压测报告,供用户查看和导出。

(5)开源工具(JMeter)集成

除了强大的原生功能,同样支持开源压测工具 JMeter 引擎发起的压测。用户只需要在本地完成 JMeter 脚本调试,即可在 PTS 上快速进行自定义并发的压测。同时,可在控制台上进行Timer、Controller相关指令的分布式适配设置。

3.优势

PTS 对比一般的压测工具,具有平台稳定可靠、功能强大、流量真实和配套完善等优势。

(1)平台稳定可靠

  • 阿里巴巴中间件技术部高可用团队倾心打造,经过内部五年以上的全生态沉淀,平台及技术稳定性高。
  • PTS 是基于支持阿里巴巴全生态多达五年的单链路/全链路压测平台的再加强版本。
  • PTS 支持了多个行业,涉及电商、多媒体、金融保险、物流快递、广告营销、社交等等。

(2)功能强大

  • 全 SaaS 化形态,无需额外安装和部署。
  • 0 安装的云端录制器,更适合移动端APP场景。
  • 数据工厂功能,0 编码实现压测的 API/URL 的请求参数格式化。
  • 复杂场景的全可视化编排,支持登录态共享、参数传递、业务断言,同时可扩展的指令功能支持多形态的思考时间、流量蓄洪等。
  • 独创的 RPS /并发多压测模式。
  • 流量支持动态秒级调整,百万 QPS 亦可瞬时脉冲。
  • 强大的报表功能,将压测客户端的实时数据做多维度细分展示和统计,同时自动生成报告供查阅和导出。
  • 压测 API/场景均可调试,压测过程提供日志明细查询。

(3)流量真实

  • 流量来源于全国上百城市覆盖各运营商(可拓展至海外),真实模拟最终用户的流量来源,相应的报表、数据更接近用户真实体感。
  • 施压能力无上限,最高支持千万 RPS 的压测流量。

(4)配套完善

  • 除了压测平台之外,可付费增值提供全链路压测解决方案输出,全方位保障站点平稳应对业务峰值。

4.应用场景

性能测试 PTS(Performance Testing Service)具备强大的分布式压测能力,应用十分广泛。

(1)适用于多业务场景

不论您处于哪个行业,在以下业务场景(但不限于),PTS 都是您最佳的性能测试工具。

3.png
图3:PTS业务场景展示

  • 新系统上线:通过 PTS,准确探知站点能力,防止系统一上线即被用户流量打垮;
  • 技术升级验证:大的技术架构升级后进行性能评估,验证新技术场景的站点性能状态;
  • 业务峰值稳定性:大促活动等峰值业务稳定性考验,保障峰值业务不受损;
  • 站点容量规划:对站点进行精细化的容量规划,分布式系统机器资源分配;
  • 性能瓶颈探测:探测系统中的性能瓶颈点,进行针对性优化。

(2)适用行业广泛

PTS 应用行业广泛,涉及电商、多媒体、金融保险、物流快递、广告营销、社交等等。
PTS 服务阿里巴巴全生态多年,支持了天猫双 11、双 12、年货节等大促活动。植根于电商行业的 PTS,对电商的典型业务模型支持得更友好,压测来源更广泛,脉冲能力和流量掌控能力更强。
PTS 自商业版发布以来,吸引了来自多媒体、金融保险、政务等众多行业的用户,以其强大的压测场景编排能力和报表能力,帮助用户快速发现问题,进行针对性地调优,提升了系统承压能力。

(3)适用于多种网络环境

不论您的业务位于公有云、专有云、混合云、或者自建 IDC 中,只要能够通过公网访问,PTS 都能够通过遍布全国上百个城市和各运营商的 CDN 节点发起压测流量,最大程度地模拟真实业务场景。

(4)适用于使用 HTTP/HTTPS/WebSocket 等协议的客户端

PTS 本身的 GUI 模式支持 HTTP/HTTPS 协议的压测,无论您的客户端是自研的 APP、移动端网页、PC 端网页、微信小程序还是 C/S 结构的软件,都可以使用 PTS 进行压测。 PTS 同时集成了开源 JMeter,支持更多的协议和场景,例如您可以通过 “JMeter + WebSocket 插件” 的方式,对使用 WebSocket 协议的客户端进行压测(在 PTS 上传相应的插件 JAR 文件即可),其他协议以此类推。

更多有关PTS的介绍、使用指引、操作指南、最佳实践等内容可点击链接,查看详情:
https://help.aliyun.com/document_detail/145501.html

我们是阿里云智能全球技术服务-SRE团队,我们致力成为一个以技术为基础、面向服务、保障业务系统高可用的工程师团队;提供专业、体系化的SRE服务,帮助广大客户更好地使用云、基于云构建更加稳定可靠的业务系统,提升业务稳定性。我们期望能够分享更多帮助企业客户上云、用好云,让客户云上业务运行更加稳定可靠的技术,您可用钉钉扫描下方二维码,加入阿里云SRE技术学院钉钉圈子,和更多云上人交流关于云平台的那些事。

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云智能全球技术服务部SRE团队,是阿里集团高可用基础技术核心缔造团队,也是阿里为确保客户平台稳定、业务连续而打造的核心支撑团队

官方博客
官网链接