摘要: PTS(Performance Testing Service)是 web 化的卓越的 SaaS 性能测试平台, 具备强大的分布式压测能力, 可方便的模拟海量用户的真实业务场景 PTS 铂金版在功能上强调页面可视化编排, 目前也在快速迭代中, 倡导无需编码的复杂交互式压测; 除了上面提及的特性之外, TPS 压测模式实时调控实时生效的调速能力也都是领先于业界的
PTS(Performance Testing Service)是 web 化的卓越的 SaaS 性能测试平台, 具备强大的分布式压测能力, 可方便的模拟海量用户的真实业务场景 PTS 于 2015 年正式在阿里云上线, 为广大用户提供极具性价比和业界领先的性能压测解决方案
PTS 铂金版是 2016 年 8 月正式发布的全新产品, 核心能力基于服务阿里全生态多达 4 年以上的单链路 / 全链路压测平台, 该平台对内除了支持日常的外部流量压测之外, 同时支持了大大小小的大促活动, 如天猫双 11 双 12 和年货节等等; PTS 铂金版的压力发起来源是遍布全国上百个城市和各运营商的 CDN 节点, 相比业界产品的云主机发起, 更快速, 来源更广泛, 脉冲能力和流量掌控能力更强
PTS 铂金版在功能上强调页面可视化编排, 目前也在快速迭代中, 倡导无需编码的复杂交互式压测; 除了上面提及的特性之外, TPS 压测模式实时调控实时生效的调速能力也都是领先于业界的 PTS 铂金版会持续的提供高性价比的最佳实践
PTS 铂金版有哪些特点, 涉及哪些术语和概念?
我们 (阿里高可用团队) 希望将性能压测本身的工作持续地简化, 将更多的精力回归到业务和性能本身, 通过性能体验的提升创造更大的价值, 更好的降低成本, 更稳定地支持核心的活动我们选择通过 PTS 铂金版这款好用不贵的产品输出我们的最佳实践 PTS 铂金版就是由阿里巴巴 中间件 - 高可用团队创造和维护的产品
那么, 在一个压测闭环中, PTS 及其他阿里云产品覆盖了重要的三部分的能力: 翻译构造流量的能力模拟掌控真实流量的能力展现和定位问题的能力
PTS 铂金版涉及的几个主要的术语和概念如下:
VUM:VUM(每虚拟用户每分钟)是性能测试 PTS 的计费单位, VUM=VU(压测任务并发用户数值)* M(压测任务执行时长, 按分钟粒度, 不满一分钟按一分钟计算), 举例: 100 并发用户运行 10 分钟即 1000VUM, 1 并发用户运行 1000 分钟也是 1000VUM, 以此类推比较贴心的是 PTS 铂金版并不是同大部分 SaaS 压测产品那样基于压测时间预设的最高并发计算 VUM, 而是按照实际的消耗 VUM 计费
链路: 在 PTS 中被定义为一种业务行为, 可以是一个接口页面等, 是一个最小的单位以电商为例, 登录查询商品详情提交订单和付款等都是一个链路
串联链路: 串联链路是一组含有某种业务含义的链路的有序集合 (事务), 链路只有在同一个串联链路中才能进行入参和出参关联(运行时数据传递) 等
场景: 串联链路的一组集合组成场景, 场景也就能模拟各种有序集合的组合形态, 也就是复杂业务场景
压测模式: PTS 铂金版支持并发模式和 TPS 模式两种, 特别是第二种是独创的一种压测模式, 更侧重一步到位地评估被压测端的吞吐能力, 因为所谓的并发在服务端最终是被网络解耦为有先后顺序的请求
指令: 为了更加贴合业务逻辑更加真实地模拟用户行为, PTS 铂金版提供了一系列的指令功能, 指令是一种可以改变控制链路执行的行为和流程的功能组件指令可以穿插在串联链路的各个位置, 一般来说只会对单个串联链路起作用, 某些特殊的指令也会对多个串联链路同时起作用
PTS 铂金版如何做一次压测?
由于篇幅原因, 下面介绍一个简单的压测配置过程, 更多强大的扩展可以通过购买资源包自行做深度体验
假设我们的压测场景是一个 首页 -> 搜索 -> 详情 -> 思考时间 -> 下单 的流程, 也就是说压测场景中包含一个串联链路, 一个串联链路中是 4 个链路
那么我们首先录入和设置这 4 个链路, 在左侧导航栏中单击链路管理, 在链路列表页面右上角单击新增链路, 录入基本信息
如果需要给每个请求单独构造请求体请求头 Cookie 或者是 URL 的, 那么按照 PTS 的文档介绍构造完成之后上传即可
在业务上某些链路需要输出一些值给到后续链路的, 比如首页传递 useridname 给到后续链路, 搜索传递搜索到的 itemId 给到详情和下单页面的, 那么需要在相应的链路中定义出参(支持正则和 JSON 表达式的解析, 详见文档)
对应的, 需要出参的链路定义一个入参, 并在场景中关联 (后面场景部分再介绍) 入参的定义很简单, 主要是一个变量的申明, 需要使用的的时候可以直接在文件中直接通过 #{param} 占位符来引用举例说明, 详情链路有一个名为 itemid 的入参, 那么压测文件中只需要 itemid=#{itemid}&age=12 这么使用即可
接下来进入场景构建步骤, 在控制台左侧导航栏中单击场景管理, 在场景列表页面单击新增场景输入场景名称(可以以业务来命名), 设置持续时间(压测的最长时间), 选择模式(TPS 或 并发 模式), 然后单击确定
前面有讲到, 场景中只有一个串联链路, 然后在串联链路中添加前面配置的业务链路, 在添加的时候如下图所示关联前后的出 / 入参, 设置单个链路的起步和目标压测值即可
在指令部分, 这个例子中增加了最常见的思考时间, 思考时间用于模拟用户在前后两个节点间思考反应花费的时间, 支持多种模式, 如固定值均匀分布和正态分布
其他还有一系列的指令, 如集合点 Cookie 的导入导出等等, 具体参见文档并视业务情况使用即可
全部配置完成之后的效果如下:
当然启动前可以使用调试场景的功能方便的进行场景的调试, 在不计费的情况下会跑一条数据或者一次轮询并结构化地展示各链路的请求 / 响应情况, 对出入参 / 断言都会单独展示出来便于问题的排查
接着保存配置或者直接去压测, 实时的客户端视角的监控和报表效果如下图:
当压测完成之后会自动生成报表, 分为概览和明细两部分, 话不多少直接看图:
怎么样, 是不是已经跃跃欲试了, PTS 铂金版现重磅推出 9.9 的超值尝鲜包, 享有完整的功能, 最高 500 的并发, CDN 发起流量, 总量 1 万的 VUM, 也就是说 500 并发对应可能是几千的 TPS, 如此吞吐量的情况下也能进行 20 分钟的压测哦, 好用不贵! 同时还有最高 1W 并发的超值包以及持续往上的大量资源包可选详情点击传送门
来源: http://geek.csdn.net/news/detail/256251