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


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

方式|阿里云性能测试工具PTS介绍
文章图片

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

方式|阿里云性能测试工具PTS介绍
文章图片

图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 都是您最佳的性能测试工具 。

方式|阿里云性能测试工具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 文件即可) , 其他协议以此类推 。
作者:SRE团队技术小编-小凌
本文为阿里云原创内容 , 未经允许不得转载

    推荐阅读