简介: 性能测试 PTS(Performance Testing Service)是具备强大的分布式压测能力的 SaaS 压测平台,可模拟海量用户的真实业务场景,全方位验证业务站点的性能、容量和稳定性。
阿里云
阿里云智能GTS-平台技术部-SRE团队
1.简介
(1)概述
性能测试 PTS(Performance Testing Service)是具备强大的分布式压测能力的 SaaS 压测平台,可模拟海量用户的真实业务场景,全方位验证业务站点的性能、容量和稳定性。
PTS 目标是将性能压测本身的工作持续简化,使用户可以将更多的精力回归到关注业务和性能问题本身。在 PTS 平台上,用户可以用较低的人力和资源成本,构造出最接近真实业务场景的复杂交互式流量,快速衡量系统的业务性能状况,为性能问题定位、容量最佳配比、全链路压测的流量构造提供最好的帮助。进而提升用户体验,促进业务发展,最大程度实现企业的商业价值。
(2)压测流程
PTS 提供全面高效的压测流程,具体如下图所示。
图1:PTS压测流程图
压测流程说明:
- 在 PTS 控制台上,准备压测 API 数据,构造压测场景,定义压测模式、量级等;支持随时启停压测,压测过程中可调速。
- 压测启动后,PTS 后台的压测控制中心将自动调度压测数据、压测任务和压测引擎。
- 通过随机调度全国上百个城市和运营商的内容分发网络 CDN (Content Delivery Network)节点,发起压测流量。保证从虚拟用户并发量、压测流量的分散度等维度都接近真正的用户行为,压测结果更加全面和真实可信。
- 通过压测引擎向用户指定的业务站点发起压测。
- 压测过程中,通过集成云监控产品,结合 PTS 自有的监控指标,实时采集压测数据。
- 在 PTS 控制台,实时展现压测数据,进行过程监控;压测结束后,生成压测报告。基于整个压测场景的性能表现,定位性能问题、发现系统瓶颈。
(3)压测创建方式
PTS 支持以下 4 种方式创建压测场景(或称压测用例),如图所示:
图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: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 文件即可),其他协议以此类推。
原文链接
本文为阿里云原创内容,未经允许不得转载。
来源:oschina
链接:https://my.oschina.net/u/4413809/blog/4756629