五大问题,详解阿里云PTS铂金版
阿里云PTS铂金版,具备强大的分布式压测能力,相比业界产品的云主机发起,该产品更快速,来源更广泛,脉冲能力和流量掌控能力更强。日前,阿里云推出了PTS铂金版尝鲜包,旨在为用户提供高性价比的最佳实践。我们就产品的相关问题,采访了阿里云中间件相关产品负责人,听他为我们解析阿里云PTS铂金版。
1、PTS铂金版是什么?
PTS(Performance Testing Service)是web化的卓越的SaaS性能测试平台,具备强大的分布式压测能力,可方便的模拟海量用户的真实业务场景。PTS于2015年正式在阿里云上线,为广大用户提供极具性价比和业界领先的性能压测解决方案。
PTS铂金版是2016年8月正式发布的全新产品,核心能力基于服务阿里全生态多达4年以上的单链路/全链路压测平台,该平台对内除了支持日常的外部流量压测之外,同时支持了大大小小的大促活动,如天猫双11、双12和年货节等等;PTS铂金版的压力发起来源是遍布全国上百个城市和各运营商的CDN节点,相比业界产品的云主机发起,更快速,来源更广泛,脉冲能力和流量掌控能力更强。
PTS铂金版在功能上强调页面可视化编排,目前也在快速迭代中,倡导无需编码的复杂交互式压测;除了上面提及的特性之外,TPS压测模式、实时调控实时生效的调速能力也都是领先于业界的。PTS铂金版会持续的提供高性价比的最佳实践。
2、PTS铂金版有哪些特点?
我们(阿里高可用团队)希望将性能压测本身的工作持续地简化,将更多的精力回归到业务和性能本身,通过性能、体验的提升创造更大的价值,更好的降低成本,更稳定地支持核心的活动。我们选择通过PTS铂金版这款好用不贵的产品输出我们的最佳实践。PTS铂金版就是由阿里巴巴 中间件-高可用团队创造和维护的产品。
那么,在一个压测闭环中,PTS及其他阿里云产品覆盖了重要的三部分的能力:翻译构造流量的能力、模拟掌控真实流量的能力、展现和定位问题的能力。
3、PTS铂金版涉及哪些主要术语和概念?
VUM:VUM(每虚拟用户每分钟)是性能测试PTS的计费单位,VUM=VU(压测任务并发用户数值)M(压测任务执行时长,按分钟粒度,不满一分钟按一分钟计算),举例:100并发用户运行10分钟即1000VUM, 1并发用户运行1000分钟也是1000VUM,以此类推。比较贴心的是PTS铂金版并不是同大部分SaaS压测产品那样基于压测时间预设的最高并发计算VUM,而是按照实际的消耗VUM计费。
链路:在 PTS 中被定义为一种业务行为,可以是一个接口、页面等,是一个最小的单位。以电商为例,登录、查询商品详情、提交订单和付款等都是一个链路。
串联链路:串联链路是一组含有某种业务含义的链路的有序集合(事务),链路只有在同一个串联链路中才能进行入参和出参关联(运行时数据传递)等。
场景:串联链路的一组集合组成场景,场景也就能模拟各种有序集合的组合形态,也就是复杂业务场景。
压测模式:PTS铂金版支持并发模式和TPS模式两种,特别是第二种是独创的一种压测模式,更侧重一步到位地评估被压测端的吞吐能力,因为所谓的并发在服务端最终是被网络解耦为有先后顺序的请求。
指令:为了更加贴合业务逻辑、更加真实地模拟用户行为,PTS铂金版提供了一系列的指令功能,指令是一种可以改变、控制链路执行的行为和流程的功能组件。指令可以穿插在串联链路的各个位置,一般来说只会对单个串联链路起作用,某些特殊的指令也会对多个串联链路同时起作用。
4、PTS铂金版如何做一次压测?
下面介绍一个简单的压测配置过程,更多强大的扩展可以通过购买资源包自行做深度体验。
假设我们的压测场景是一个 首页 -> 搜索 -> 详情 -> 思考时间 -> 下单 的流程,也就是说压测场景中包含一个串联链路,一个串联链路中是4个链路。
那么我们首先录入和设置这4个链路,在左侧导航栏中单击链路管理,在链路列表页面右上角单击新增链路,录入基本信息。
如果需要给每个请求单独构造请求体、请求头、Cookie或者是URL的,那么按照PTS的文档介绍构造完成之后上传即可。
在业务上某些链路需要输出一些值给到后续链路的,比如首页传递userid、name给到后续链路,搜索传递搜索到的itemId给到详情和下单页面的,那么需要在相应的链路中定义出参(支持正则和JSON表达式的解析,详见文档)。
对应的,需要出参的链路定义一个入参,并在场景中关联(后面场景部分再介绍)。入参的定义很简单,主要是一个变量的申明,需要使用的的时候可以直接在文件中直接通过 #{param} 占位符来引用。举例说明,详情链路有一个名为 “itemid” 的入参,那么压测文件中只需要 itemid=#{itemid}&age=12 这么使用即可。
接下来进入场景构建步骤,在控制台左侧导航栏中单击场景管理,在场景列表页面单击新增场景。输入场景名称(可以以业务来命名),设置持续时间(压测的最长时间),选择模式(TPS 或 并发 模式),然后单击确定。
前面有讲到,场景中只有一个串联链路,然后在串联链路中添加前面配置的业务链路,在添加的时候如下图所示关联前后的出/入参,设置单个链路的起步和目标压测值即可。
在指令部分,这个例子中增加了最常见的思考时间,思考时间用于模拟用户在前后两个节点间思考、反应花费的时间,支持多种模式,如固定值、均匀分布和正态分布。
其他还有一系列的指令,如集合点、Cookie的导入导出等等,具体参见文档并视业务情况使用即可。
全部配置完成之后的效果如下:
当然启动前可以使用调试场景的功能方便的进行场景的调试,在不计费的情况下会跑一条数据或者一次轮询并结构化地展示各链路的请求/响应情况,对出入参/断言都会单独展示出来便于问题的排查。
接着保存配置或者直接去压测,实时的客户端视角的监控和报表效果如下图:
当压测完成之后会自动生成报表,分为概览和明细两部分,话不多少直接看图:
5、PTS铂金版资源包有哪些?
PTS铂金版的资源包选择较多,并发最高可达100W或者更高,VUM总量上也有很多选择,一般购买较多的是1000元以上的资源包。为了能让更多的用户体验到优秀的SaaS化压测产品,最近又重磅推出9.9的超值尝鲜包,享有完整的功能,最高500的并发,CDN发起流量,总量1万的VUM,也就是说500并发对应可能是几千的TPS,如此吞吐量的情况下也能进行20分钟的压测哦,好用不贵!
五大问题,详解阿里云PTS铂金版的更多相关文章
- 阿里云96页报告详解《云上转型》(10个案例、10大趋势/完整版PPT)
阿里云96页报告详解<云上转型>(10个案例.10大趋势/完整版PPT) 2017-12-29 14:20阿里云/云计算/技术 ﹃产业前沿超级干货﹄ ﹃数据观○重磅速递﹄ 阿里云研究中心云 ...
- Jmeter使用Websocket插件测试SingalR,外加还有阿里云PTS的Jmeter原生测试爬坑日志。
题外话:距离我的上一篇博客已经过去7年多了,我实在是个不务正业的程序员,遇到测试方面的东西总想分享一下,因为可用的资料实在太少了(包括国外的资料). 本人不喜欢授人以鱼,所以不会直接给出问题和解决方案 ...
- 阿里云PTS分享-用性能测试工具JMeter实现基于供应链业务上对于WebSocket 协议的压测
性能测试PTS(Performance Testing Service)是面向所有技术相关背景人员的云化性能测试工具,孵化自阿里内部平台.有别于传统工具的繁复,PTS以互联网化的交互,面向分布式和云化 ...
- [置顶] Android系统五大布局详解Layout
我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前,视图都是由一个一个的组件构成的.组件就是我们常见的Button.TextEdit等 ...
- Android系统五大布局详解Layout
我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前, 视图都是由一个一个的组件构成的.组件就是我们常见的Button.TextEdit ...
- Linux日志五大命令详解
1.who 命令 who 命令查询 utmp 文件并报告当前登录的每个用户.Who 的缺省输出包括用户名.终端类型.登录日期及远程主机.使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其 ...
- 详解华为云基因容器服务GCS
基因测序,作为“下一个能够改变世界”的技术,已经由实验室研究演变到临床使用,为人类预测罹患多种疾病的可能性,提前预防和治疗疾病提供了一套可靠的方法和手段.而基于基因测序在预防和治疗疾病方面的准确和可靠 ...
- iOS消息体系架构详解-融云即时通讯云
iOS SDK 体系架构 本文档将详细介绍融云的 SDK 产品架构和消息体系,以便于您更深入的了解融云并更快速的开发自己的产品. 融云 SDK 系统架构 IMKit IMKit 的功能主要是封装各种界 ...
- Android五大布局详解——LinearLayout(线性布局)
Android五大布局 本篇开始介绍Android的五大布局的知识,一个丰富的界面显示总是要有众多的控件来组成的,那么怎样才能让这些控件能够按你的想法进行摆放,从而自定义你所想要的用户界面呢?这就牵涉 ...
随机推荐
- git第四节----git commit message
@git commit message 什么是git commit message :git commit -m '每次提交时编辑的内容' git commit message的好处: 1 ...
- Pycharm---新建文件时 自动添加作者时间等信息
可用的变量有: $ {PROJECT_NAME} - 当前项目的名称. $ {NAME} - 在文件创建过程中在“新建文件”对话框中指定的新文件的名称. $ {USER} - 当前用户的登录名. $ ...
- MVC会员注销功能Cookie的应用
我们实现了<MVC应用程序实现会员登录功能>http://www.cnblogs.com/insus/p/3466512.html 有登录就会有注销功能.此次Insus.NET练习一个MV ...
- Spring Security认证配置(二)
学习本章之前,可以先了解下上篇Spring Security基本配置. 本篇想要达到这样几个目的: 1.访问调用者服务时,如果是html请求,则跳转到登录页,否则返回401状态码和错误信息 2.调用方 ...
- C++切割文件
void CFileCutter::DoSplit() { ; //计数 CString strSourceFile = m_strSource; //取得全局变量赋值给局部变量,方便操作 CStri ...
- Java并发编程-闭锁
闭锁是一种同步器 ( Synchronizer ),它可以延迟线程的进度直到线程到达终止状态,CountDownLatch是一个灵活的闭锁实现:1)允许一个或多个线程等待一个事件集的发生,闭锁的状态包 ...
- Redis简介及应用场景
一丶Redis介绍 Redis是一个开源的 key—value型 单线程 数据库,支持string.list.set.zset和hash类型数据. 默认端口:6379 默认数据库数量:16 二.优点: ...
- windows 下 MyEclipse 逆向工程生成hiberate 对应配置文件以及 javaBean。
步骤1: 右边工具栏 -> 右击你的项目 -> 选中 MyEclipse -> Project Facets -> install Hibernate Facet -> ...
- 【Java基础】8、java中的native方法
native是与C++联合开发的时候用的!java自己开发不用的! 使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,由java去调用.这些函 ...
- SSM 后台封装的有值, 到前台打印的时候没有值
原因: 实体类中的getting setting 方法没有配置,导致封装json 数据的时候没有封装进去