PTS性能测试
一、什么是性能测试
性能测试PTS(Performance Testing Service)是一款简单易用,具备强大的分布式压测能力的SaaS压测平台。 PTS可以模拟复杂的业务场景,并快速精准地调度不同规模的流量,同时提供压测过程中多维度的监控指标和日志记录。您无需准备资源,即可按需发起压测任务,监控压测指标,获取压测报告,进而能够高效率、全方位地验证业务站点的性能、容量和稳定性。
PTS目标是将性能压测本身的工作持续简化,使您可以将更多的精力回归到关注业务和性能问题本身。在PTS平台上,您可以用较低的人力和资源成本,构造出最接近真实业务场景的复杂交互式流量,快速衡量系统的业务性能状况,为性能问题定位、容量配比、全链路压测的流量构造提供更好的帮助。进而提升用户体验,促进业务发展,最大程度实现企业的商业价值。
压测流程
PTS提供全面高效的压测流程:
压测流程说明:
- 在PTS控制台上,准备压测API数据,构造压测场景,定义压测模式、量级等;支持随时启停压测,压测过程中可调速。
- 压测启动后,PTS后台的压测控制中心将自动调度压测数据、压测任务和压测引擎。
- 通过随机调度全国上百个城市和运营商的内容分发网络CDN (Content Delivery Network)节点,发起压测流量。保证从虚拟用户并发量、压测流量的分散度等维度都接近真正的用户行为,压测结果更加全面和真实可信。
- 通过压测引擎向您指定的业务站点发起压测。
- 压测过程中,通过集成云监控、ARMS(应用实时监控服务)产品,结合PTS自有的监控指标,实时采集压测数据。
- 在PTS控制台,实时展现压测数据,进行过程监控;压测结束后,生成压测报告。基于整个压测场景的性能表现,定位性能问题、发现系统瓶颈。
压测创建方式
PTS支持以下4种方式创建压测场景(或称压测用例),如下图所示:
说明:
- 方式一:PTS自研零编码可视化编排,使用自研强大引擎压测。
- 方式二: 使用PTS自研云端录制器,零侵入录制业务请求并导入1中的自研交互中进行进一步设置。更多信息,请参见使用PTS Chrome插件录制场景。
- 方式三: 通过脚本导入场景导入PTS自研交互中,使用PTS自研引擎。具体操作,请参见导入场景。
- 方式四:使用原生JMeter引擎进行压测,PTS提供自定义的压力构造和监控数据汇聚等产品服务。更新信息,请参见JMeter压测。
其中,方式一、二、三由于使用了PTS的自研引擎,具备RPS(Requests Per Second)吞吐量压测模式、秒级启动、实时控制、定时压测和流量遍布全国运营商网络的差异化能力。
方式一是PTS最核心的一种压测场景创建方式,所有资源包均可使用。其他几种创建方式面向不同规格资源包开放,详见产品价格说明,并购买相应资源包。
二、应用场景
性能测试PTS(Performance Testing Service)具备强大的分布式压测能力,应用十分广泛。
适用于多业务场景
不论您处于哪个行业,在以下业务场景(但不限于),PTS都是您值得信赖的性能测试工具。
- 新系统上线:通过PTS,准确探知站点能力,防止系统一上线即被用户流量打垮。
- 技术升级验证:大的技术架构升级后进行性能评估,验证新技术场景的站点性能状态。
- 业务峰值稳定性:大促活动等峰值业务稳定性考验,保障峰值业务不受损。
- 站点容量规划:对站点进行精细化的容量规划,分布式系统机器资源分配。
- 性能瓶颈探测:探测系统中的性能瓶颈点,进行针对性优化。
适用行业广泛
PTS应用行业广泛,涉及电商、多媒体、金融保险、物流快递、广告营销、社交等等。
PTS服务阿里巴巴全生态多年,支持了天猫双11、双12、年货节等大促活动。植根于电商行业的PTS,对电商的典型业务模型支持得更友好,压测来源更广泛,脉冲能力和流量掌控能力更强。
PTS自商业版发布以来,吸引了来自多媒体、金融保险、政务等众多行业的用户,以其强大的压测场景编排能力和报表能力,帮助用户快速发现问题,进行针对性地调优,提升了系统承压能力。
PTS更多应用行业的具体操作,您可以参考以下文档:
- 电商压测场景示例
- 在线教育压测示例
- 微信小程序压测示例
适用于多种网络环境
不论您的业务位于公有云、专有云、混合云或者自建IDC中,只要能够通过公网访问,PTS都能够通过遍布全国上百个城市和各运营商的CDN节点发起压测流量,最大程度地模拟真实业务场景。
适用于使用HTTP/HTTPS/WebSocket等协议的客户端
PTS本身的GUI模式支持HTTP/HTTPS协议的压测,无论您的客户端是自研的App、移动端网页、PC端网页、微信小程序还是C/S结构的软件,都可以使用PTS进行压测。PTS同时集成了开源JMeter,支持更多的协议和场景,例如您可以通过“JMeter + WebSocket插件”的方式,对使用WebSocket协议的客户端进行压测(在PTS上传相应的插件JAR文件即可),其他协议以此类推。
三、基本概念
术语
在使用性能测试PTS(Performance Testing Service)之前,您需要了解PTS的相关名词术语。
术语 | 说明 |
---|---|
3xx | 表示客户端需要采取进一步的操作才能完成请求。通常这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。 |
4xx | 表示客户端发生了错误,妨碍了服务器的处理。 |
5xx | 表示服务器无法完成明显有效的请求。一般代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。 |
串联链路 | 指一组压测API的有序集合(类似于事务),具有业务含义。压测API之间只有在同一个串联链路中才能进行入参和出参关联(运行时数据传递)。两个不同的串联链路之间相互独立,通常不会存在参数的传递依赖(使用数据导出指令的情况除外)。 |
压测API | 指由用户行为触发的一条端上请求。压测API是场景压测中的必需元素,用来定义串联链路中每个阶段URL的具体信息。例如,电商网站的登录、查询商品详情、提交订单等,分别对应一次用户行为中的多个请求API。 |
VU | 虚拟并发数,表示压测能力。例如100 VU,即表示有100个独立的线程分别连续发送请求。 |
VUM | 计量单位,VUM = VU * Min。 |
并发用户数 | 同时发送压测请求的用户数量。一个用户在压测过程中可能是一个进程或者一个线程。 |
并发模式 | 虚拟用户模式,如果想要摸底业务系统能同时承载的在线用户数,可以通过该模式。 |
压测场景 | 压测场景是若干个基于HTTP/HTTPS的URL/API的组合。URL/API可能关联了数据文件表示不同用户。不同的URL/API表示不同的业务含义(例如登录、加入购物车),最终组合成一个接近用户各种真实行为同时具备一定用户量级的压测模型。 |
出参 | 从一个压测API的应答中截取需要的内容作为出参,供后续的压测API作为参数使用。 |
检查点(断言) | 一般用于标记业务成功与否,从而验证压测请求的响应是否符合预期。有时候响应码是200并不代表业务处理成功,有可能需要判断响应体内的内容。在PTS的串联链路中如果断言失败,当前请求就不会继续传递到下一个压测API。另外,在压测实时报表和压测报告中都会相应展现业务成功或者失败的信息。 |
集合点 | 使虚拟用户在集合点处等待,满足条件后一次性释放所有等待的用户,继续后续业务,例如整点秒杀场景。 |
条件跳转 | 根据出参,改变串联链路请求的执行路径,支持跳转、继续和结束等。 |
RPS模式 | 吞吐量模式,指每秒固定发出设置的请求数量(RPS)。 |
SLA | 服务等级协议(Service-Level Agreement),是判定压测是否异常的重要依据。压测过程中,通过监控核心服务状态的SLA指标数据,您可以更直观地了解压测业务或架构的状态。 |
SLA指标 | 是指从哪些指标监控压测过程数据。目前,SLA指标主要包含业务质量相关指标RT (Response Time)、RPS (Requests per Second)和成功率。PTS将逐步增加性能(云监控基础数据)、队列、SQL连接等方面的SLA指标。 |
SLA规则 | 是在SLA指标的基础上,添加了判断条件,以触发告警或停止压测。 |
SLA模板 | 是SLA规则的集合,可包含一个或多个SLA规则。SLA模板与行业类型绑定。 |
思考时间 | 模拟用户在前后两个节点间思考、反应花费的时间,支持多种模式。 |
数据导出 | PTS提供的指令之一。用于导出某个串联链路中的数据(如Cookie、出参或通过数据指令定义的参数),供其他串联链路使用,在全局共享导出数据。 |
数据指令 | PTS提供的指令之一。通过对前置压测API的出参、字符串或函数做二次处理,定义新的参数,提供给串联链路中的后续压测API使用。 |
文件参数 | 将存在关联的参数放在一个文件的不同列中,通过上传该文件将其参数值导入PTS。这些参数称为文件参数,可在压测API中使用。 |
TPS | Transaction Per Second,系统每秒处理的事务数量。 |
响应时间RT | 从客户端发送一个请求开始,到客户端接收到服务端返回的响应所经历的时间。响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。 |
75%响应时间 | 在整个压测周期内(压测启动到停止的时间内),某个串联链路或者压测API的所有采样到的响应时间(固定采样周期)中75%的时间在这个值以内。 |
指令 | 是一种可以改变、控制串联链路中行为和流程的功能组件,可以更真实地模拟业务压测流量。 |
请求成功率 | 压测中此API的请求成功率。 |
Timing瀑布流 | 展示该请求在核心生命周期的耗时情况。 |
SLB监控 | 负载均衡SLB(Sever Load Balancer),在SLB监控详情页,可查看整个压测过程中各SLB的端口新建连接数、端口丢弃连接数、端口流出带宽、端口流入带宽和QPS等数据。 |
ECS监控详情 | 云服务器ECS(Elastic Compute Service),在ECS监控详情页,可查看整个压测过程中各ECS的CPU使用率、内存利用率、各网卡网络流入速率、磁盘读写速度和Load5。 |
RDS监控详情 | 云数据库RDS(Relational Database Service),在RDS监控详情页可查看整个压测时间内各RDS的连接数使用率、CPU使用率、磁盘使用率、IOPS和内存使用率。 |
并发虚拟用户、RPS、TPS的解读
本文介绍并发虚拟用户、RPS、TPS的基本概念和三者之间的基本关系。
背景
在做性能测试的时候,传统方式都是用并发虚拟用户数来衡量系统的性能(站在客户端视角),一般适用于一些网页站点例如首页、H5的压测;而RPS(Requests per second)模式主要是为了方便直接衡量系统的吞吐能力TPS(Transaction Per Second,每秒事务数)而设计的(站在服务端视角),按照被压测端需要达到TPS等量设置相应的RPS,应用场景主要是一些动态的接口API,例如登录、提交订单等等。
VU(虚拟用户)和TPS之间也有其逻辑关系,具体请参见本文下方的说明。
术语定义
- 并发用户数:简称VU,指的是现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virtual User),注意并发用户数跟注册用户数、在线用户数有很大差别的,并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数一般指的是数据库中存在的用户数。
- 处理能力:简称TPS,每秒事务数,是衡量系统性能的一个非常重要的指标。
- 响应时间:简称RT,指的是业务从客户端发起到客户端接受的时间。
VU和TPS换算
-
简单例子:在术语中解释了TPS是每秒事务数,但是事务是要靠虚拟用户做出来的,假如1个虚拟用户在1秒内完成1笔事务,那么TPS明显就是1;如果某笔业务响应时间是1 ms,那么1个用户在1s内能完成1000笔事务,TPS就是1000了;如果某笔业务响应时间是1s,那么1个用户在1s内只能完成1笔事务,要想达到1000 TPS,至少需要1000个用户;因此可以说1个用户可以产生1000 TPS,1000个用户也可以产生1000 TPS,无非是看响应时间快慢。
-
复杂公式: 试想一下复杂场景,多个脚本,每个脚本里面定义了多个事务(例如一个脚本里面有100个请求,我们把这100个连续请求叫做Action,只有第10个请求,第20个请求分别定义了事务10和事务20)具体公式如下。
符号代表意义:
- Vui表示的是第i个脚本使用的并发用户数。
- Rtj表示的是第i个脚本第j个事务花费的时间,此时间会影响整个Action时间。
- Rti表示的是第i个脚本一次完成所有操作的时间,即Action时间。
- n表示的是第n个脚本。
- m表示的是每个脚本中m个事务。
- 那么第j个事务的TPS = Vui/Rti。
总的TPS=。
如何获取VU和TPS
-
VU获取方式:
已有系统:可选取高峰时刻,在一定时间内使用系统的人数,这些人数可认为是在线用户数,并发用户数可以取10%,例如在半个小时内,使用系统的用户数为10万,那么取10%(即1万)作为并发用户数基本就够了。
新系统:没有历史数据作参考,建议通过业务部门进行评估。
-
TPS获取方式:
已有系统:可选取高峰时刻,在一定时间内(如3分钟10分钟),获取系统总业务量,计算单位时间(秒)内完成的笔数,乘以25倍作为峰值的TPS,例如峰值3分钟内处理订单18万笔,平均TPS是1000,峰值TPS可以是2000~5000。
新系统:没有历史数据作参考,建议通过业务部门进行评估。
如何评价系统的性能
针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到串联链路中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。同样的,如果系统间的吞吐能力差别很大,那么同样的并发下TPS差距也会很大。
性能测试策略
做性能测试需要一套标准化流程及测试策略。在做负载测试的时候,传统方式一般都是按照梯度施压的方式去加用户数,避免在没有预估的情况下,一次加几万个用户,导致交易失败率非常高,响应时间非常长,已经超过了使用者忍受范围内;较为适合互联网分布式架构的方式,也是阿里巴巴的最佳实践是用TPS模式(吞吐量模式)+设置起始和目标最大量级,然后根据系统表现灵活的手工实时调速,效率更高,服务端吞吐能力的衡量一步到位。更多信息,请参见如何设置目标并发或目标RPS。
总结
综上所述,可以得出以下结论:
- 系统的性能由TPS决定,跟并发用户数没有多大关系。
- 系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。
- 建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。
- 一般情况下,大型系统(业务量大、机器多)做压力测试,10000~50000个用户并发,中小型系统做压力测试,5000个用户并发比较常见。
四、压测
PTS测试
阿里云提供的业务高可用架构体系,为企业提供营销活动、成本控制(压测、容量规划、流量控制)、应急(开关)、容灾逃逸(架构感知、故障演练、异地多活)的解决方案。其中PTS压测作为容量规划阶段重要的环节可模拟海量用户的真实业务场景,全方位验证业务站点的性能、容量和稳定性。本文介绍阿里云的高可用架构和PTS的压测流程。
高可用架构
为了更全面系统的提升业务高可用性,阿里云从规划、线上管控、演练和容灾等各个阶段,提供了一系列的应用服务来保障业务的高可用性。
- 规划阶段:在规划准备阶段,您需要对系统进行架构设计和容量评估,阿里云提供了架构感知和PTS平台帮助您规划系统。更多信息,请参见什么是性能测试PTS和什么是架构感知。
- 线上管控阶段:在线上管控执行阶段,您需要管控系统的流量,控制各种业务逻辑,阿里云提供流量防护和功能开关平台帮助您管控线上业务。更多信息,请参见什么是应用防护和什么是功能开关。
- 演练阶段:在演练排查阶段,您需要对系统进行故障演练,进而发现并验证系统问题,锻炼系统及相关人员的应急能力,阿里云提供了故障演练平台帮助您演练预案。更多信息,请参见什么是故障演练。
- 容灾阶段:在容灾防护阶段, 您需要构建系统的容灾解决方案。阿里云提供了多活容灾平台助力您建设系统容灾稳定性。更多信息,请参见为什么需要多活容灾?。
PTS压测流程
PTS是具备强大分布式压测能力的SaaS压测平台,只需通过简单四步,您就可以完成一次性能测试。
创建压测场景
更新时间:2022-06-10 11:32
产品详情
相关技术圈
我的收藏
创建压测场景是使用PTS压测的第一步,本文介绍压测场景的基本知识,以及如何创建一个压测场景。
背景信息
PTS孵化于阿里巴巴全链路压测平台,是一款全自研的压测工具。PTS压测支持HTTP、HTTPS协议压测,广泛适用于Web应用和小程序压测,涉及电商、车联网、多媒体、金融保险、物流快递、广告营销、社交等众多行业。PTS压测可模拟海量用户的真实业务场景,全方位验证业务站点的性能、容量和稳定性。
使用PTS压测的优势
-
功能强大
- 全SaaS化形态,无需额外安装和部署。
- 简单安装的云端录制器,一键构建压测场景。更多信息,请参见使用PTS Chrome插件录制场景。
- 数据工厂功能,零编码实现压测的API、URL的请求参数格式化。
- 复杂场景的全可视化编排,支持登录态共享、参数传递、业务断言,同时可扩展的指令功能支持多形态的思考时间、流量蓄洪等。
- 支持RPS并发多压测模式。
- 流量支持动态秒级调整,百万QPS亦可瞬时脉冲。
- 强大的报表功能,将压测客户端的实时数据做多维度细分展示和统计,同时自动生成报告供查阅和导出。
- 支持压测问题诊断,快速定位问题链路,压测过程提供日志明细查询,方便问题排查。更多信息,请参见基于PTS压测轻松玩转问题诊断。
- 支持压测中的监控导出,定制压测监控大盘。更多信息,请参见如何将PTS压测的指标数据输出到Prometheus。
-
流量真实
- 流量来源于全国上百城市覆盖各运营商(可拓展至海外),真实模拟最终用户的流量来源,相应的报表、数据更接近用户真实体感。
- 施压能力较强,支持千万RPS的压测流量。
-
配套完善
除了压测平台之外,可付费增值提供全链路压测解决方案输出,全方位保障站点平稳应对业务峰值。
什么是压测场景?
要发起一次性能压测,首先需要创建一个压测场景。一个压测场景包含一个或多个并行的业务(即串联链路),每个业务包含一个或多个串行的请求(即API)。
- API是场景压测中的必需元素,用来定义串联链路中每个阶段URL的具体信息。API是由用户行为触发的一条端上请求。例如,电商网站的登录、查询商品详情、提交订单等,分别对应一次用户行为中的多个请求API。
- 串联链路是一组压测API的有序集合(类似于事务),具有业务含义。
以下示例说明了串联链路和API之间的关系。
淘宝网需要压测两个业务,要求两个业务同时进行,这两个业务即为两个串联链路:
- 业务A:浏览产品A。
- 业务B:购买产品B。
业务B中包含四个请求,要求四个请求按照先后顺序发起,这4个请求即为4个API:
- 请求1:登录。
- 请求2:浏览产品B。
- 请求3:加入购物车。
- 请求4:提交订单。
压测场景中的设置如下图所示。
操作步骤
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
-
在场景配置页签中,单击添加压测节点右侧的图标,为某串联链路添加多个API。启动压测后,多个API会按照顺序发起请求。具体操作,请参见概述。
说明 直接单击添加压测节点,系统会默认选择添加HTTP压测节点。
-
可选:
单击**+添加串联链路**,为压测场景添加多个串联链路。启动压测后,多个串联链路会同时发起请求。
-
配置其他页签下的参数:
- 配置施压环境的具体操作,请参见如何进行施压配置。
- 设置通用参数和绑定域名的具体操作,请参见高级设置。
- 添加监控的具体操作,请参见云资源监控。
- 设置SLA的具体操作,请参见配置场景SLA。
-
在创建PTS场景过程中,您还可以进行以下操作:
- 若需进行场景调试,单击场景配置页签左下角的调试场景,进行场景调试。具体操作,请参见调试场景。
- 完成所有编辑后,单击场景配置页签左下角的保存去压测,启动压测。具体操作,请参见调速。
场景示例
您仅需在PTS控制台执行简单操作,即可通过PTS发起压测。这里为您提供以下几种PTS压测的具体使用场景示例。
- 电商压测场景示例
- 在线教育压测示例
- 如何进行微信小程序压测
后续操作
场景创建完成后,在场景列表中选择PTS查看已创建的PTS场景。
在场景对应的操作列:
- 单击启动,发起压测。具体操作,请参见调速。
- 单击编辑,进入编辑场景页面,可以编辑场景配置信息。PTS提供了多种提升编排效率的功能,包括场景复制、串联链路的生效和失效、API复制等。具体操作,请参见管理场景。
- 单击删除,可删除该压测场景,之前生成的压测报告仍可查看。具体操作,请参见查看并对比压测报告。
- 单击复制,可复制出一个新的场景。具体操作,请参见管理场景。
http节点
HTTP节点概述
HTTP节点配置中包含基本请求信息、请求Header、请求Body、设置出参和检查点(断言)等。广泛用于指定HTTP协议的测试请求场景,以及您需要结合出参从响应中提取内容,或者您需要结合检查点从业务维度判断响应是否符合预期的场景。
使用限制
HTTP协议版本
PTS支持HTTP1.1、HTTP2协议,在您实际调试或启动压测时,PTS压测引擎会自动与服务端协商协议版本。若您的服务端支持HTTP2协议,PTS会默认优先使用HTTP2协议与服务端交互,否则PTS会使用HTTP1.1协议与服务端交互,因此您在配置场景时无需关注使用的HTTP协议版本。
HTTP请求Header限制
根据HTTP2 RFC协议标准,您在使用HTTP2协议的请求Header时,可能会存在部分请求Header请求异常的情况。若您在API调试后出现提示ProtocolException:*** is illegal for HTTP/2 messages
,此时您需要在请求Header配置中删除***
对应的Header。
如下所示,为您列举出无效的HTTP2 Header,不区分大小写。
- Connection
- Keep-Alive
- Proxy-Connection
- Transfer-Encoding
- Host
- Upgrade
请求超时时间
请求超时时间对应实际请求发送过程中以下两个阶段的超时时间,其中任一阶段超时都将会导致该请求超时。
-
发送请求后到第一次接收到响应数据包的时间
-
任意两个连续响应数据包之间的时间
任意两个连续响应数据包之间的时间超时,即socketTimeOut。指客户端和服务端进行数据交互的时间,若两个连续数据包之间的时间大于该时间则认为超时,并非指交互的整体时间。例如,设置10秒超时(客户端和服务端进行数据交互的时间),若每隔8秒传输一次数据(两个连续数据包之间的时间),传输10次,那么交互的整体时间为80秒,这样是不超时的。若每隔12秒传输一次数据(即任意两个连续数据包之间的时间超过了10秒),则为超时。
基本请求信息
压测API的基本请求信息一般包含API名称、压测URL、请求方式等信息。本文介绍如何配置压测API基本请求及相关示例。
操作步骤
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
-
在场景配置页签的串联链路模块右侧单击图标,并在展开区域配置压测API的基本信息。
参数 说明 示例 API名称 一般用于标识该API的业务含义,最长支持20个字符。 获取商品列表 压测URL 请求的URL,即要访问的URL。这里必须是以 http://
或https://
开头的完整URL。可包含参数,如 http://<域名>/<路径?key1=value1&key2=value2> 。使用参数的具体操作,请参见接口出参。说明 URL输入框中最大支持2000个字符。http://www.example.com 请求方式 HTTP请求方式,可以选择GET、POST、PATCH、PUT或DELETE。 GET 超时时间 需要结合待压测接口的情况配置单接口的响应超时时间。 5000 允许302跳转 配置是否允许访问压测URL跳转,默认是允许的,目前最多支持跳转10次。 无 基本信息配置完成后,您可以单击调试API,验证接口配置是否符合预期。
示例
若仅需对压测API做简单的批量请求(例如打开 http://www.example.com)压测,则需在基本请求信息页签中配置参数如下图所示:
Header
使用PTS压测时,若需指定特殊请求来进行压测,可以通过定义Header来实现。本文介绍如何在场景配置中定义Header。
前提条件
完成API基本信息配置,具体操作,请参见基本请求信息。
背景信息
在实际压测场景中,经常需要特定请求来进行压测,例如在压测某网页登录场景时,需要指定鉴权通过的请求来进行压测。使用PTS发起的压测均为HTTP协议的请求,在进行场景配置时,通过定义Header的Key和Value来指定特殊的访问请求。若需更精确地指定请求,可以通过定义Body来实现,具体操作,请参见Body。
对API Header的定义,可以通过以下三种方式,使定义在不同范围内生效:
- 设置单个API Header:该Header仅对当前API生效。
- 设置串联链路Header:压测时,该Header将自动添加到当前串联链路所有API中。
- 设置全局Herder:压测时,该Header将自动添加到压测全场景所有API中。
说明
- 若通过以上方式设置的Header的Key相同,则范围小的Header定义生效。
- 若通过以上方式设置的Header的Key均不相同,则三种Header定义均生效。
设置单个API Header
若为单个压测请求定义Header信息,需在每个API的Header定义页签下编辑Key和Value。
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
-
在场景配置页签中,单击API右侧的图标。然后在展开区域单击Header定义页签,设置Header定义的相关参数。
参数 说明 Value 可以填写参数化的表达式。函数、字符串的组合嵌套等更高级的参数编写方法,请参见系统函数及字符串如何组合嵌套使用。 Key PTS会根据填入的信息模糊匹配通用的HTTP Request Header,帮助您快速选择目标Header。 -
可选:单击Header定义页签右上角文本编辑,可切换为文本形式,查看已输入的Key和Value。您也可以在文本编辑形式下,批量写入多个Header。示例如下:
token : 123abc Cookie : session=12345
说明 Content-type需要在Body定义页签进行设置。
设置串联链路Header
若某串联链路中的多个压测API需要同一个Header,可以通过设置串联链路Header的方式实现Header批量添加。
例如:在线选课业务中需要区分一年级学生、二年级学生。若需压测该选课业务,则需为一年级、二年级学生分别创建串联链路并设置串联链路Header,以区分选课学生类型。
设置串联链路Header操作步骤如下:
-
在场景配置页签添加指令右侧的下拉框中选择链路Header。
-
单击串联链路Header行右侧的
图标,然后在展开区域设置Header的name和Value。
参数 说明 Value 可以填写参数化的表达式。函数、字符串的组合嵌套等更高级的参数编写方法,请参见系统函数及字符串如何组合嵌套使用。 name PTS会根据填入的信息模糊匹配通用的HTTP Request Header,帮助您快速选择目标Header。 -
可选:单击Header页签右上角文本编辑,可切换为文本形式,查看已输入name和Value。也可以在文本编辑形式下,批量写入多个Header。示例如下:
Grade : 1 Cookie : abc
Body
若需进一步指定特殊请求来进行压测,或定义Header不能满足您的压测需求时,可以通过定义Body来实现。本文介绍如何定义Body及相关示例。
操作步骤
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
-
在场景配置页签中串联链路模块右侧单击图标,并在展开区域配置基本信息。具体操作,请参见基本请求信息](https://help.aliyun.com/document_detail/143561.htm#concept-2086992)。说明** 压测API的请求方式为POST、PUT或PATCH时才可以定义Body。
-
单击Body定义页签。在Body定义页签中定义Body的内容。定义Body的内容取决于请求参数类型(Content-Type),参数类型分为x-www-form-urlencoded、raw或自定义三种。
参数 描述 x-www-form-urlencoded 即数据被编码为名称/值对。说明 选择x-www-form-urlencoded类型时,如果定义的Body已编码(例如 “%25” 即为 “%” 编码后的值),那么压测前需要先对Body解码,以避免PTS对已编码的请求再次编码引起错误。单击编辑框右上角的对Body进行decode并选择解码格式UTF-8或者GBK完成解码操作。 raw Text(text/plain):纯文本格式的编码形式(TEXT/XML/HTML)。JSON(application/json):JSON字符串。JavaScript(application/javascript):JavaScript字符串。XML(application/xml):Application/XML类型的XML字符串。XML(text/xml):TEXT/XML类型的XML字符串。HTML(text/html):HTML字符串。 自定义 不支持multipart、video、image三种类型。
示例
某图书系统刚上线时,仅初始账号(name=test,password=123456)可以访问。若需对该系统进行压测,则需使用定义Body来指定压测请求。定义Body示例如下所示:
x-www-form-urlencoded
以键值对形式输入:
单击Body定义****文本编辑
name=test&passwd=123456&itemid=2
**** JSON(Application/JSON)类型
{"code":200,"data":{"items":[{"id":"123","name":"yaozhuang"},{"id":"456","name":"fuzhuang"}]},"requestId":"Cf2HJKEf-197B-JK47-79E9-FA*****4KA40","successResponse":false}
文本TEXT(TEXT/Plain)类型
<?xml version="1.0"?><resource><id>123</id><params><name><value>test</value></name></params></resource>
通用设置
在使用PTS压测过程中,您可以在高级设置的通用设置区域实现全场景维度的个性化配置。
采样日志采样率
默认采样率为1%。 您可以根据业务需要配置采样率,采样率可以取默认值1或者取[1,100]区间范围内10的整数倍值,例如10、20。
说明 提升采样率时,会额外收取rate%的费用。例如采样率为20%会额外收取20%*VUM的费用。
建连超时时间
用于控制PTS压测引擎与服务端建立HTTP连接时的超时时间,默认为5000ms(即5s)。
建连超时时间以500ms为一个单位,您在输入框中只需填写500ms的倍数,取值范围区间为[1,120],即超时配置区间为[500ms,60000ms]。例如若超时时间为5000ms,则只需填写10。
请求超时时间
与基本请求信息中的超时时间配置一样,用于表示引擎等待服务端响应的超时时间,默认是5000ms(即5s)。
请求超时时间以500ms为一个单位,您在输入框中只需填写500ms的倍数,取值范围区间为[1,120],即超时配置区间为[500ms,60000ms]。例如若超时时间为5000ms,则只需填写10。
注意 若您在HTTP节点的基本请求信息区域与高级设置中均配置了请求超时时间,那么在实际压测时,HTTP节点维度的请求超时时间配置会覆盖高级设置中的配置。基本请求信息设置的具体操作,请参见基本请求信息。
新增成功状态码
您可以根据自身业务特性,配置非2XX以外的状态码为成功状态码,配置多个状态码需用半角逗号(,)分隔,例如302,404。完成配置后新增的状态码和2xx码都视为请求成功。
URL Encode
系统默认勾选此项,表示在实际发送请求时,系统会对您输入的URL先执行Decode,再执行Encode后发送请求。
主要适用于您直接从浏览器地址栏复制URL至PTS压测的HTTP节点配置中,此时的URL是经过Encode后的。一般情况下您无需关注该配置,但是如果您的URL本身是未Encode过的,且URL内容包含+
字符 ,此时您需要取消勾选该项,避免因Decode而导致URL失效。
域名绑定
PTS支持域名绑定,即您可以指定某个域名对应的IP地址,压测时,压测流量将直接访问绑定的IP地址,实现对目标服务的压测。
使用场景
域名绑定适用于在多次压测时快速切换压测地址的场景。例如您需要在压测测试环境使用测试环境IP,在压测生产环境使用生产环境IP,具体使用场景如下。
公网环境中的压测
当压测业务请求需要通过公网访问,为了不影响线上业务,您可以使用测试环境的IP地址与公网域名绑定,实现压测流量和线上流量的隔离。
阿里云VPC内网环境中的压测
阿里云VPC内网压测是指压测用户位于阿里云VPC内网中的服务。为了压测时不用修改压测接口的域名,您可以在场景中为任意一个域名绑定阿里云VPC内网IP地址,实现在阿里云内网压测的目的。更多信息,请参见阿里云VPC内网压测。
完成场景配置后,系统已自动识别出场景配置中所有的域名。您可以在高级配置页签的域名绑定区域配置域名信息:
-
选中目标域名右侧的启动,并在IP列表栏填写相应的IP地址。多IP地址间用半角逗号(,)分隔。
-
单击右上角
保存配置
,即可完成域名绑定。
绑定域名后,压测时将直接压测您已配置的IP地址。
HTTPS设置
在使用PTS压测过程中,您可以在高级设置的HTTPS设置区域配置循环重置SSL状态和SSL协议。
循环重置SSL状态
对于HTTPS压测,在串联链路每次循环时,需要选择是否重置SSL连接状态,帮助您控制同一API多次请求之间是否重置SSL上下文内容,默认不重置。如果您选择重置,在串联链路每一次循环执行时,会重新初始化SSL状态,即每次串联链路的执行都会重新完成SSL上下文配置,这样可以更准确模拟每次循环代表不同用户的压测场景,但同时需要您注意开启循环重置SSL状态后会导致施压机额外的性能开销。
使用场景
-
场景一:HTTPS压测,希望模拟100个用户登录,同时保持这100个用户不断重复访问系统。
此时串联链路每次循环执行,模拟的是同一个虚拟用户的行为。
应将此开关置为“否”,然后设置并发数为100。
-
场景二:HTTPS压测,希望模拟5分钟内,每个时刻都有100个不同用户对系统访问。
此时串联链路每次循环执行,模拟的是不同虚拟用户的行为。
为了保证压力模拟真实性,应将此开关置为“是”,然后设置并发数为100。同时因为打开此开关后,施压机有额外的性能开销,建议扩展施压机IP数。扩展施压机IP数的具体操作,请参见扩展施压机。
SSL协议
HTTPS压测是客户端(施压机)和服务端进行SSL握手的第一步,客户端会告知给服务端自己支持的最高SSL协议版本,然后服务端会从自己和客户端支持版本的交集中,取最高的版本作为实际使用的SSL版本。这里配置的SSL版本,就是客户端支持的最高SSL版本。PTS目前支持TLSv1.2与TLSv1.3协议版本,默认为TLSv1.3。
说明
SSL协议是在压测时由压测引擎与服务端协商而来,高级设置中的SSL协议选项不一定是最终使用的协议,仅用于表明客户端更倾向于使用的协议。
这里列出一些常用浏览器对SSL版本的支持情况供您参考:
浏览器 | 支持TLSv1.3的浏览器版本 | 支持TLSv1.2的浏览器版本 |
---|---|---|
Chrome | 70及以上 | 29及以上 |
Safari | 14及以上 | 7及以上 |
Edge | 79及以上 | 12及以上 |
Firefox | 63及以上 | 27及以上 |
IE | 不支持 | 11 |
如果您的压测场景模拟的客户端版本较新,建议您选择TLSv1.3作为SSL版本;相反,如果您的压测场景需要模拟旧版本的浏览器客户端,建议您选择TLSv1.2作为SSL版本。
JDBC节点
JDBC节点概述
JDBC节点配置中包含基本请求信息、占位符、设置出参、检查点(断言)和连接池配置等。广泛用于指定JDBC协议的测试请求场景,以及您需要结合出参从响应中提取内容,或者您需要结合检查点从业务维度判断响应是否符合预期的场景。
基本请求信息
JDBC压测节点的基本请求信息包含数据库类型、压测URL、SQL等信息。本文介绍如何配置压测JDBC基本请求及相关示例。
操作步骤
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
-
在场景配置页签单击添加压测节点右侧的下拉框,并在下拉列表单击JDBC压测节点,然后在目标串联链路右侧单击图标,并在展开区域配置压测API的基本信息。
参数 说明 示例 API名称 一般用于标识该API的业务含义,最长支持20个字符。 获取商品列表 数据库类型 支持的数据库类型。 MySQL 数据库URL 需要以 jdbc:
开头。jdbc:mysql://<host>:<port>/<database_name>
用户名 数据库用户名。 username 密码 数据库密码。 password SQL 待执行的SQL语句,必须以 Select
、Update
、Insert
或Delete
开头(可忽略大小写)。SELECT * FROM test WHERE id = 1
超时时间 需要结合待压测接口的情况配置单接口的响应超时时间。 5000 limit 结果集最大读取行数(仅针对Select开头的SQL),最大为1,000,000。 1000
占位符
若要创建每次使用不同值的查询,您可以在查询中使用参数。参数是在运行查询时所提供值的占位符。
操作步骤
若您为JDBC压测请求定义占位符信息后,则需在每个JDBC节点的占位符页签下编辑Key和Value。
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
-
在场景配置页签中,单击API右侧的图标。然后在展开区域单击占位符页签,设置相关参数。
参数 说明 Type 列的数据类型。 Value 实际注入占位符 ?
的值。
使用示例
某JDBC压测节点的SQL如下:
占位符设置如下:
那么实际执行的SQL为SELECT * FROM test WHERE id = 123 AND name = xiaomi
。
连接池配置
PTS基于阿里巴巴开源的Druid连接池,实现了JDBC连接的资源复用。若您为JDBC压测请求定义了连接池配置,则需在每个JDBC节点的连接池配置页签下编辑相关参数。本文介绍如何配置连接池信息。
操作步骤
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
-
在场景配置页签中,单击API右侧的图标。然后在展开区域单击连接池配置页签,设置相关参数。
参数 说明 示例 初始化连接数 初始化时建立物理连接的个数。 1 最大连接数 最大活跃连接数量。 500 最小连接数 池中最小空闲连接数量。 1 获取连接最大等待时间 从连接池中获取空闲连接的等待时间,单位毫秒。 4000
多协议压测
WebSocket压测
创建压测场景
您可以使用WebSocket压测功能在PTS控制台快速构建压测场景,实现压测。本文介绍如何对WebSocket进行压测。
背景信息
WebSocket实现了客户端与服务端之间的双向数据传输,在消息推送、在线聊天等实时通信场景下均有广泛应用。目前常用的WebSocket压测方法是通过在压测工具(如JMeter压测工具)中安装相应的WebSocket压测插件实现压测。但搭建JMeter压测环境需要一定的时间成本和代码基础。PTS的WebSocket压测功能可以帮您解决这些问题。您可以通过PTS控制台快速构建WebSocket压测场景。在完成压测后,还能通过生成的压测报告查看压测具体详情,并结合压测数据优化系统。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击WebSocket压测。
- 在创建WebSocket场景页面,填写场景名。
- 在场景配置页签下,单击**+添加测试节点**右侧的图标,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
-
建立连接
:在施压端与被压测端之间建立WebSocket连接。WebSocket压测所含的其余测试节点(如心跳、只读、只写和请求响应等)均依赖于连接的建立。
相关基本配置 说明 示例 压测URL 需要进行压测的WebSocket链接。 wss://echo.websocket.org 连接超时时间 施压端与被压测端建立连接的时间限制,单位为毫秒。 20000 响应超时时间 施压端等待被压测端响应的时间限制,单位为毫秒。 6000 -
心跳
:检测施压端和被压测端的连接状态。
相关基本配置 说明 示例 请求类型 发送ping期望pong:施压端发送信息告知被压测端自己处于存活状态,期望被压测端返回信息以确定被压测端处于存活状态。仅发送pong:仅施压端发送信息告知被压测端自己处于存活状态。 发送ping期望pong 响应超时时间 施压端等待被压测端响应的时间限制,单位为毫秒。说明 仅在当配置场景为发送ping期望pong时设置。 6000 -
只读
:施压端仅接收被压测端发送的信息。
相关基本配置 说明 示例 数据类型 可读的数据类型,包括Text(文本类型)、Binary(二进制类型)和Any(任意类型)。 Text 响应超时时间 施压端接收信息的时间限制,单位为毫秒。 6000 -
只写
:施压端仅向被压测端发送信息。
相关基本配置 说明 示例 数据类型 可读的数据类型,包括Text(文本类型)、Binary(二进制类型)和Any(任意类型)。 Text 请求数据 施压端发送信息的内容。可根据不同数据类型输入相应内容。 WebSocket Single Write Test -
请求响应
:施压端向被压测端发送请求并接收响应。
相关基本配置 说明 示例 数据类型 可读的数据类型,包括Text(文本类型)、Binary(二进制类型)和Any(任意类型)。 Text 请求数据 施压端发送信息的内容。可根据不同数据类型输入相应内容。 WebSocket Request and Response Test 响应超时时间 被压测端在接收信息后响应的时间限制,单位为毫秒。 6000 -
关闭连接
:关闭施压端与被压测端建立的连接。
相关基本配置 说明 示例 状态码 表明关闭连接对应的状态码,可自定义。 1000 响应超时时间 施压端接收到关闭连接状态码的时间限制,单位为毫秒。 6000
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在
场景配置
页签下,单击
+添加控制器
选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。
选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含
生成父样本
和
是否包含样品中定时器和前后程序的持续时间
两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在
场景配置
页签下,单击
+添加定时器
选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
MQTT压测
创建压测场景
PTS的MQTT压测功能支持对自建MQTT服务和阿里云微消息队列MQTT版进行压测。本文介绍如何使用MQTT压测功能。
背景信息
MQTT是专为移动互联网(Mobile Internet)、物联网(IoT)设计的超轻量级消息协议,用于连接移动端与云服务双向通信,广泛应用于各种应用领域,如端向云汇报状态、云向端推送消息、端向端发送消息(即时聊天)等场景。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击MQTT压测。
- 在创建MQTT场景页面,填写场景名。
- 在场景配置页签下,单击**+添加测试节点**右侧的图标,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
-
建立连接
:建立MQTT连接。
相关基本配置 说明 服务地址 MQTT服务器公网地址。客户端设备通常使用公网访问MQTT服务。以阿里云微消息队列MQTT版为例,若需对创建的MQTT实例进行压测,服务地址为该实例的公网接入点地址,可在微消息队列MQTT版控制台获取。 服务端口 MQTT服务器端口,例如 1883
,即使用标准TCP端口。MQTT版本 MQTT版本,例如 3.1.1
。目前主流MQTT服务器都支持3.1.1版本。连接超时时间 客户端建立连接、发送消息等相关操作的超时时间,单位为秒。 协议 连接协议,支持选择TCP或者SSL。 签名鉴权 默认关闭。打开签名鉴权,需要输入AccessKey ID、AccessKey Secret和实例ID。AccessKey ID:用于标识用户,获取方式请参见获取AccessKey。AccessKey Secret:用于验证用户的密钥。AccessKey Secret必须保密。获取方式请参见获取AccessKey。实例ID:MQTT产品中的实例ID。 用户名 MQTT客户端设置的用户名。当打开签名鉴权时,无需设置此项。 密码 MQTT客户端设置的密码。当打开签名鉴权时,无需设置此项。 客户端ID前缀 MQTT客户端ID。 连接保活时长 活动心跳间隔秒数。例如 300
,即连接空闲时,每5分钟发送一次活动心跳。客户端添加随机后缀 是否为客户端ID添加随机后缀。 清空会话 若选择打开开关,则创建的会话会在客户端断开连接时被清空;若选择关闭开关,则创建的会话在客户端断开连接时仍会保留。 -
发布消息
:配置需要发布的消息。
相关基本配置 说明 主题名 消息的主题。MQTT主题支持层次结构,使用正斜线(/)分割,类似文件路径,如pts_test/mqtt等。 QOS级别 客户端向服务器发布消息的服务质量,可选最多发送一次、最少发送一次和只发送一次。 消息类型 发送消息的类型。支持普通字符串、十六进制字符串和固定长度的随机字符串。 添加时间戳 是否在消息头中添加发送时间戳。若开启开关,可在测试时检查消息延迟。 保留消息 是否保留此次消息。若选择保留,则当出现新的订阅者时,此消息会被发送给新的订阅者。 消息内容 根据设置的消息类型填写需发送的消息内容。 -
订阅消息
:订阅发送的消息。
相关基本配置 说明 主题名 消息的主题,应与发布消息的主题匹配。 QOS级别 服务器向客户端推送消息的服务质量,可选最多接收一次、最少接收一次和只接收一次。 添加时间戳 是否在接收消息后从消息头解析发送时间。若开启开关,可计算出消息延迟,即从发布端途经服务器最后到达订阅端花费的总时间。 调试响应 此选项用于记录接收到的消息内容,以便调试排查问题。正式执行性能测试时可选择关闭该开关,以优化性能和减少内存占用。 -
关闭连接:关闭MQTT连接。
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在
场景配置
页签下,单击
+添加控制器
选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。
选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含
生成父样本
和
是否包含样品中定时器和前后程序的持续时间
两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在
场景配置
页签下,单击
+添加定时器
选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
-
单击施压配置页签,设置压测模式。
压测配置 描述 压力来源 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 并发数 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 单并发连接数 单个用户能够发起的连接请求数。 总连接数 虚拟用户同时发起的总并发连接数。例如,并发数为100,单并发连接数为2,则总连接数即为200。 压测时长 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 流量模型 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 递增时长 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 递增阶梯数 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 指定IP数 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 流量地域定制 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 -
配置场景中所有链路的最大并发权重。
参数 说明 最大并发权重 该串联链路占全场景的权重。如串联链路1置为1,串联链路2置为3,则表示各自在场景最大并发总占25%和75%。 批量设置 批量设计链路的最大并发权重。选中需要设置的所有串联链路。单击批量设置,在对话框中输入数值。单击确认,完成设置。
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
查看MQTT压测报告
在MQTT压测过程中,您可以查看实时性能数据。完成压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍MQTT压测报告中各部分详情。
压测报告入口
-
登录PTS控制台,在左侧导航栏选择压测中心 > 报告列表。
-
单击目标报告操作列的查看报告。
说明 在报告详情页面,单击右上角的报告导出,然后根据需要选择有水印版本或无水印版本,可以导出目标MQTT压测报告的PDF版本。
查看采样日志
在报告详情页,单击右上角的查看采样日志,然后在查看日志页面,单击操作列的点击查看详情,可以查看详细采样日志。在压测执行时或者压测报告中,通过查看压测采样日志,可以快速定位问题。
日志详情包括以下信息:
- General页签展示了采样日志的日志字段和字段值。
- Timing瀑布流页签展示了各接口的耗时信息。
查看压测场景信息
压测报告的第一部分显示了整个压测场景的相关业务指标。
您可以在数据信息区域(图示中①)查看以下参数信息:
参数 | 说明 |
---|---|
请求成功率(%) | 统计周期内全场景请求成功率。 |
平均RT(成功/失败) | 统计周期内成功和失败请求的平均RT。 |
TPS | 统计周期内的总请求数除以压测时间所得。 |
并发 | 该压测场景下设置的施压并发数。 |
异常数 | 压测过程中产生的异常。单击数字区域可以查看异常的日志详情。 |
总请求数 | 整个场景在压测过程中发送的总请求数。 |
您可以在图示中②的区域查看该压测场景的施压信息、配置信息和计费信息。
参数 | 说明 |
---|---|
施压信息 | |
开始时间 | 该场景下压测开始的时间。 |
结束时间 | 该场景下压测结束的时间。 |
压测时长 | 压测实际耗费的总时长。 |
总流量(请求/响应) | 压测过程中请求和响应分别产生的总流量。 |
平均流量(请求/响应) | 压测过程中请求和响应分别产生的平均流量(总流量除以总时长)。 |
配置信息 | |
压力来源 | 在场景施压配置中所选的发起压测的压力来源。 |
配置时长 | 在场景施压配置中所设置的压测时长。 |
流量模型 | 在场景施压配置中所选的压测流量模型。 |
指定IP数 | 在场景施压配置中所设置的施压引擎数。 |
计费信息 | |
消耗VUM | 本次压测消耗的资源总数。 |
图示中③的区域展示了该压测场景的请求成功率、平均RT和TPS的时序曲线图。您可以将光标移动到图表上,查看具体时间点所对应的状态。
查看业务指标
压测报告的概览页签展示了该压测场景下各测试节点的压测情况。
参数 | 说明 |
---|---|
Sampler名称 | 全场景以及所有测试节点的名称。 |
总请求数 | 该场景下,在压测过程中发出的总请求数。 |
平均TPS | 压测周期内,该场景的平均TPS值。TPS=该测试节点在压测期间的全部请求数/压测时长。 |
成功率 | 压测过程中,此测试节点的成功率(绿色数字表示成功,红色数字表示失败)。单击成功或失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX或其他异常导致的请求失败的个数。单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、错误数和占比。 |
平均响应时间 | 压测中此测试节点的平均响应时间。单击详情,可查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
查看场景详情
压测报告的明细 > 场景详情页签显示了全场景视图和各测试节点的业务详情,包括请求详情视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
请求详情视图
该视图包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情。更多详细指标说明,请参见测试指标。
性能对比视图
- 线程数与响应耗时(RT)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 线程数与吞吐率关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(RT)和请求数占比的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
查看压测日志
在压测报告的明细 > 压测日志页签下,可以查看并检索日志相关信息。
查看施压机性能
压测报告的明细 > 施压机性能页签展示了压测过程中所有施压机的GC瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线图。您还可以筛选查看特定施压机的性能信息。
说明 施压机信息最多保留30天。
JDBC压测
创建压测场景
PTS的JDBC压测功能支持对MySQL(MySQL 5.x、MySQL 8)、SQL Server、PostgreSQL、MariaDB数据库进行压测。本文介绍如何使用JDBC压测功能。
背景信息
JDBC(Java Database Connectivity,Java数据库连接)通过Java API访问关系型数据库,并可对其进行增删改查等操作。特点包括:访问数据库便捷、跨平台性强、支持SQL语句,使底层更自由。
为什么要做JDBC6压测
-
验证新数据库在高负载下的性能。
通常对数据库的操作都是基于HTTP、FTP或其他协议执行的,但在某些特定情况下,需要绕过这些中间协议直接测试数据库,比如您希望只测试特定High-Value查询的性能而不触发所有相关查询。
-
验证某些数据库连接池参数。例如,最大连接数。
使用PTS平台执行JDBC压测的优势
- 全球分布施压机,即压即用,可支持百万并发,千万QPS压测。
- 支持吞吐量模式,可以设置全局目标QPS,更直观衡量服务端性能。
- 支持压测中调速,可以灵活调整并发或QPS,不断逼近性能极限点。
- 针对分布式压测,支持自动切分文件,支持全局生效Timer、Controller组件,一键开启分布式压测。
- 发布JMeter PTS插件,使用JMeter GUI客户端即可发起云端分布式压测,无缝衔接脚本调试和执行阶段。
- 支持VPC内网压测,可以在压测时快速打通施压机与用户VPC网络,保证内网压测的网络畅通。在压测结束后,也会即时关闭网路通道,保证网络安全。
- 降低时间成本和资源消耗。当您想要优化SQL时,直接修改代码中的SQL语句或者执行其他数据库操作将会非常复杂且耗时。而通过JDBC压测,无需您直接侵入代码操作,能够集中精力调优SQL。
功能入口
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击JDBC压测。
-
在创建JDBC场景页面,填写场景名,然后配置JDBC连接。
设置 说明 压测云数据库来源 选择压测云数据库来源,然后依次选择地域、实例和数据库。 数据库类型 支持数据库类型包括: MySQL
、SQL Server
、PostgreSQL
、MariaDB
。JDBC URL 格式为 [ip]:[port]/数据库名
,例如[XX].mysql.zhangbei.rds.aliyuncs.com:3306/db。说明 如果您在数据库类型中选择SQL Server,那么JDBC URL格式为[ip]:[port];databaseName=数据库名
。用户名 数据库登录用户名,例如user。 密码 数据库登录密码,例如password。 隔离级别 数据库隔离级别,您可根据MySQL数据库对应设置选择相应级别,支持的类型包括:DEFAULT:默认TRANSACTION_NONE:未开启事务TRANSACTION_READ_UNCOMMITTED:读未提交TRANSACTION_READ_COMMITTED:读已提交TRANSACTION_SERIALIZABLE:可串行化TRANSACTION_REPEATABLE_READ:可重复读 自动提交SQL 打开开关:自动提交事务,即结束当前事务开始下一个事务。说明 事务通常是指用SQL脚本对数据库表进行一系列操作。关闭开关:修改数据库时,将用户操作一直处于某个事务中,直到执行一条commit提交或rollback回滚语句才会结束当前事务重新开始一个新的事务。 -
在场景配置页签下,单击**+添加JDBC请求节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
相关基本配置 | 说明 |
---|---|
查询 | 填写需要被压测的SQL语句。说明 如果要在一个JDBC请求节点中执行多条SQL语句,查询类型必须选择Callable Statement,每条语句用半角分号(;)隔开,JDBC URL后还要添加?allowMultiQueries=true。 |
查询类型 | JDBC中被压测SQL语句类型,包括:Select Statement:适用于JDBC请求内容为一条查询语句的情况。Update Statement:适用于JDBC请求内容为一条更新语句的情况。Callable Statement:是为DBMS(Database Management System,数据库管理系统)提供调用MySQL数据库中存储过程的接口。Prepared Select Statement:适用于JDBC只执行一次的查询语句的情况。Prepared Update Statement:适用JDBC只执行一次的更新语句的情况。Commit:适用于JDBC将未执行的SQL语句写入库表的情况。Rollback:适用于JDBC回滚与撤销SQL脚本执行的情况。AutoCommit(false):适用于JDBC自动提交模式为假的情况。说明 使用占位参数时,选择对应查询的Prepared类型。 |
查询超时时间 | 施压端等待被压测端响应的时间限制,单位为秒。例如5。 |
占位参数
在JDBC中使用占位参数能防止SQL注入、提高SQL执行效率。您可以在串联链路的占位参数页签设置相关参数值。
设置 | 说明 |
---|---|
参数类型 | 输入占位参数的类型。说明 支持MySQL数据库的数据类型。 |
参数值 | 输入占位参数值。 |
示例:
以被压测SQL语句select * from mydb where id = ?
为例,在占位参数的参数类型处输入Integer,在参数值处输入1,则最后生效的SQL为select * from mydb where id = 1
。该SQL会在数据库中生效,并显示在数据库中。
说明 参数类型与参数值要和SQL语句中的半角问号(?)严格对应。
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在场景配置页签下,单击+添加控制器选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含生成父样本和是否包含样品中定时器和前后程序的持续时间两个设置项。
- 生成父样本
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
- 是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
- 生成父样本
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在场景配置页签下,单击+添加定时器选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
场景示例
此处以阿里云RDS数据库为例,若您需要验证所用的RDS数据库实例规格是否能承受住大量读写请求,以此来决定您是否要对该实例进行扩容,您仅需在PTS控制台执行简单操作,即可通过PTS发起压测。以下为此场景下发起数据库压测时的具体操作步骤。
-
配置RDS数据安全性。
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
- 在左侧导航栏单击数据安全性,然后在白名单设置页签中添加对应的VPC网段。具体操作,请参见设置IP白名单。
- 单击安全组页签,添加对应的安全组。具体操作,请参见设置安全组。
-
创建JDBC压测场景。
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击JDBC压测。
-
在创建JDBC场景页面,填写场景名,选择压测云数据库来源为RDS,然后依次选择地域、实例和数据库。系统会默认生成对应的数据库类型、JDBC URL和用户名。然后您只需要自行设置密码。
-
在场景配置页签下,单击**+添加JDBC请求节点**,为目标串联链路添加所需测试节点。具体操作,请参见场景配置。
-
单击施压配置页面,选择压力来源为阿里云VPC内网,然后选择步骤1中添加的VPC和安全组,并配置其他项。
说明
-
脉冲模型会模拟流量在瞬间突然增大,常用于秒杀、抢购的业务场景。
-
递增模型可以模拟在一定时间段内,用户量不断增大,常用于模拟有预热的业务场景。
-
-
单击保存去压测,在弹出的对话框中单击确定。
压测开始后,您可以观察以下指标情况:
压测中的核心指标有:请求成功率、请求响应时间(RT)和系统吞吐量(QPS)。
- 请求成功率:您不仅需要查看全局的请求成功率,还需要关注一些核心API的成功率,避免整体成功率达标,但核心API成功率不足的情况。
- 请求响应时间:您需要关注99、95、90、80等一些关键分位的指标是否符合预期,相对来说平均响应时间对您没有太大的参考意义,因为压测需要保证绝大部分用户的体验,在不清楚离散程度的情况下,平均值容易导致误判。
- 系统吞吐量:是衡量系统能承受多大访问量的指标,是压测不可缺少的标准。
-
查看JDBC压测报告
在JDBC压测过程中,您可以查看实时性能数据。完成压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍JDBC压测报告中各部分详情。
压测报告入口
-
登录PTS控制台,在左侧导航栏选择压测中心 > 报告列表。
-
单击目标报告操作列的查看报告。
说明 在报告详情页面,单击右上角的报告导出,然后根据需要选择有水印版本或无水印版本,可以导出目标JDBC压测报告的PDF版本。
查看采样日志
在报告详情页,单击右上角的查看采样日志,然后在查看日志页面,单击操作列的点击查看详情,可以查看详细采样日志。在压测执行时或者压测报告中,通过查看压测采样日志,可以快速定位问题。
日志详情包括以下信息:
- General页签展示了采样日志的日志字段和字段值。
- Timing瀑布流页签展示了各接口的耗时信息。
查看压测场景信息
压测报告的第一部分显示了整个压测场景的相关业务指标。
您可以在数据信息区域(图示中①)查看以下参数信息:
参数 | 说明 |
---|---|
请求成功率(%) | 统计周期内全场景请求成功率。 |
平均RT(成功/失败) | 统计周期内成功和失败请求的平均RT。 |
TPS | 统计周期内的总请求数除以压测时间所得。 |
并发 | 该压测场景下设置的施压并发数。 |
异常数 | 压测过程中产生的异常。单击数字区域可以查看异常的日志详情。 |
总请求数 | 整个场景在压测过程中发送的总请求数。 |
您可以在图示中②的区域查看该压测场景的施压信息、配置信息和计费信息。
参数 | 说明 |
---|---|
施压信息 | |
开始时间 | 该场景下压测开始的时间。 |
结束时间 | 该场景下压测结束的时间。 |
压测时长 | 压测实际耗费的总时长。 |
配置信息 | |
压力来源 | 在场景施压配置中所选的发起压测的压力来源。 |
配置时长 | 在场景施压配置中所设置的压测时长。 |
流量模型 | 在场景施压配置中所选的压测流量模型。 |
指定IP数 | 在场景施压配置中所设置的施压引擎数。 |
计费信息 | |
消耗VUM | 本次压测消耗的资源总数。 |
图示中③的区域展示了该压测场景的请求成功率、平均RT和TPS的时序曲线图。您可以将光标移动到图表上,查看具体时间点所对应的状态。
查看业务指标
压测报告的概览页签展示了该压测场景下各测试节点的压测情况。
参数 | 说明 |
---|---|
Sampler名称 | 全场景以及所有测试节点的名称。 |
总请求数 | 该场景下,在压测过程中发出的总请求数。 |
平均TPS | 压测周期内,该场景的平均TPS值。TPS=该测试节点在压测期间的全部请求数/压测时长。 |
成功率 | 压测过程中,此测试节点的成功率(绿色数字表示成功,红色数字表示失败)。单击成功或失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX或其他异常导致的请求失败的个数。单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、错误数和占比(%)。 |
平均响应时间(ms) | 压测中此测试节点的平均响应时间。单击详情,可查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
查看场景详情
压测报告的明细 > 场景详情页签显示了全场景视图和各测试节点的业务详情,包括请求详情视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
请求详情视图
该视图包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情。更多详细指标说明,请参见测试指标。
性能对比视图
- 活跃线程数与响应耗时(ms)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 活跃线程数与吞吐率(/S)关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(ms)和请求数占比(%)的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
查看压测日志
在压测报告的明细 > 压测日志页签下,可以查看并检索日志相关信息。
查看施压机性能
压测报告的明细 > 施压机性能页签展示了压测过程中所有施压机的GC瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线图。您还可以筛选查看特定施压机的性能信息。
说明 施压机信息最多保留30天。
微服务压测
压测Dubbo微服务
微服务压测功能支持对构建于专有网络VPC(Virtual Private Cloud)内的微服务应用进行压测。通过PTS界面的配置,可以快速实现微服务压测。本文介绍如何对Dubbo微服务进行压测。
前提条件
本地泛化调用已通过,具体操作,请参见Dubbo的泛化调用。
背景信息
经典微服务架构是通过网关暴露每一个服务,且通过网络隔离来保障每个服务的安全性,因此云上微服务通常构建于安全性较高的VPC网络内。但压测VPC内的微服务应用会面临着网络隔离的难题,传统的解决方案是基于VPC网络搭建压测工具进行压测,例如JMeter压测工具。但搭建JMeter需要一定的时间成本和代码基础,且对微服务压测的支持不友好。
PTS自研的微服务压测功能可以解决这些难题,通过PTS控制台的简单配置,快速实现微服务的压测。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击Dubbo压测。
- 在创建微服务场景页面,填写场景名,选择压测应用来源,然后选择地域和微服务空间。
- 在场景配置页签下,单击**+添加Dubbo节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
参数 | 描述 | 示例 |
---|---|---|
应用 | 应用名称。 | testapp |
接口名 | 暴露服务的接口。 | com.alibaba.pts.dubbo.api.DemoService |
注册中心类型 | 包括ZooKeeper、Nacos、Redis和直连类型。 | Nacos |
节点 | 微服务注册中心的IP地址。格式为[ip]:[port] 或[域名]:[port] ,多个注册中心之间用半角逗号(,)分隔,格式为[ip1]:[port1],[ip2]:[port2] 或[域名1]:[port1],[域名2]:[port2] 。注意 对于微服务引擎MSE用户,注册中心地址填写方式取决于是否配置命名空间。若未配置命名空间,即选择默认命名空间DEFAULT_GROUP时,此处填写对应的注册中心地址,如XXX.nacos-ans.mse.aliyuncs.com:8848。若已配置命名空间,则注册中心地址的格式为注册中心地址加上命名空间的名称。例如,若命名空间名称为TEST,则此处应填写XXX.nacos-ans.mse.aliyuncs.com:8848?namespace=TEST。 |
192.168.0.0:8080 |
组别 | Dubbo微服务组别Group。 | testgroup |
版本 | Dubbo微服务版本Version,默认版本1.0。 | 1.0 |
方法名 | 暴露服务的方法。 | sayHello |
连接超时 | Dubbo接口建立连接的超时时间。 | 5000 |
响应超时 | Dubbo接口获取响应的超时时间。 | 20000 |
服务参数
参数 | 描述 | 示例 |
---|---|---|
普通参数 | 需要压测服务的函数包含的普通参数。 | 参数名称:java.lang.String参数值:${date} |
隐式参数 | 需要压测服务的函数包含的隐式传递参数。 | 参数名称:setAttachment参数值:(“index”,“1”) |
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在
场景配置
页签下,单击
+添加控制器
选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。
选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含
生成父样本
和
是否包含样品中定时器和前后程序的持续时间
两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在
场景配置
页签下,单击
+添加定时器
选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
压测SpringCloud微服务
微服务压测功能可以用于压测构建于VPC内的微服务应用,通过PTS界面的配置,可以快速实现微服务压测。本文介绍如何对SpringCloud微服务进行压测。
背景信息
经典微服务架构是通过网关暴露每一个服务,且通过网络隔离来保障每个服务的安全性,因此云上微服务通常构建于安全性较高的VPC网络内。但压测VPC内的微服务应用会面临着网络隔离的难题,传统的解决方案是基于VPC网络搭建压测工具进行压测,例如JMeter压测工具。但搭建JMeter需要一定的时间成本和代码基础,且对微服务压测的支持不友好。
PTS自研的微服务压测功能可以解决这些难题,通过PTS控制台的简单配置,快速实现微服务的压测。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击SpringCloud压测。
- 在创建微服务场景页面,填写场景名,选择压测应用来源,然后选择地域和微服务空间。
- 在场景配置页签下,单击**+添加SpringCloud节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
参数 | 描述 | 示例 |
---|---|---|
应用名 | 暴露服务的应用application ,SpringBoot应用一般为spring.application.name 。 |
demo-pts-service-provider |
服务名 | 服务名称 | demo-service |
注册中心类型 | 包括Eureka、直连和Nacos类型。 | 直连 |
节点 | 微服务注册中心的IP地址。格式为http://[ip]:[port] 或[ip]:[port] 。注意 对于微服务引擎MSE用户,注册中心地址填写方式取决于是否配置命名空间。若未配置命名空间,即选择默认命名空间DEFAULT_GROUP时,此处填写对应的注册中心地址,如XXX.nacos-ans.mse.aliyuncs.com:8848。若已配置命名空间,则注册中心地址的格式为注册中心地址加上命名空间的ID。例如,若命名空间ID为abc,则此处应填写XXX.nacos-ans.mse.aliyuncs.com:8848?namespaceId=abc。 |
http://172.16.0.0:8080 |
访问路径 | 请求路径URL。 | /demo |
请求方式 | 包括GET、POST、PUT、DELETE,并需要在Header定义页签定义Header。若选择POST和PUT请求,还需要填写请求参数Body。 | GET |
超时时间(毫秒) | 请求发送之后该虚拟用户等待应答的最长时间,单位为毫秒。默认值1000,即1秒。对于在线业务,建议超时时间小于5000毫秒。 | 1000 |
Header定义
在串联链路的Header定义页签设置Key和Value值。具体操作,请参见Header定义。
Body定义
在串联链路的Body定义页签设置Key和Value值。具体操作,请参见Body定义。
说明** 若选择POST和PUT请求方式,还需要填写请求参数Body。
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在场景配置页签下,单击添加控制器选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含生成父样本和是否包含样品中定时器和前后程序的持续时间两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在
场景配置
页签下,单击
+添加定时器
选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
压测gRPC微服务
微服务压测功能可以用于压测构建于VPC内的微服务应用,通过PTS界面的配置,可以快速实现微服务压测。本文介绍如何对gRPC微服务进行压测。
背景信息
经典微服务架构是通过网关暴露每一个服务,且通过网络隔离来保障每个服务的安全性,因此云上微服务通常构建于安全性较高的VPC网络内。但压测VPC内的微服务应用会面临着网络隔离的难题,传统的解决方案是基于VPC网络搭建压测工具进行压测,例如JMeter压测工具。但搭建JMeter需要一定的时间成本和代码基础,且对微服务压测的支持不友好。PTS自研的微服务压测功能可以帮助您解决这些难题,通过PTS控制台的简单配置,快速实现微服务的压测。
功能入口
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击gRPC压测。
-
在创建GRPC场景页面,填写场景名,然后单击上传proto文件,上传相关proto文件。
说明 若上传同名文件,则会覆盖之前上传的文件;若需对比文件,可在该文件的操作列,获取MD5值,与本地文件的MD5值进行对比,确认文件是否变更。
-
在场景配置页签下,单击**+添加gRPC请求节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
参数 | 描述 | 示例 |
---|---|---|
服务地址 | gRPC服务的IP地址。 | 127.0.0.1 |
服务端口 | gRPC服务的端口号。 | 50051 |
请求超时时间 | 施压端等待被压测端响应的时间限制,单位为毫秒。 | 5000 |
SSL/TLS | 是否建立安全连接。 | 关 |
方法名 | gRPC方法的全名。说明 格式为包名.接口名/方法名 。 |
package.service/method |
元数据 | 类似HTTP Header,格式为key:value 。 |
a:1,b:2说明 多个元数据以半角逗号(,)分隔。 |
JSON格式请求 | 以JSON格式描述proto文件中的message。 | { "shelf": { "id": 1, "theme": "hello" } } |
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在
场景配置
页签下,单击
+添加控制器
选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。
选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含
生成父样本
和
是否包含样品中定时器和前后程序的持续时间
两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在
场景配置
页签下,单击
+添加定时器
选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
场景示例
此处以具体的proto文件为例,介绍如何创建正确的gRPC压测场景。
-
上传定义gRPC服务和方法的proto文件。假设需压测的方法为CreateShelf,则定义该方法的proto文件如下。
syntax = "proto3"; package bookstore; service Bookstore { rpc ListShelves (google.protobuf.Empty) returns (ListShelvesResponse) {} rpc CreateShelf (CreateShelfRequest) returns (Shelf) {} } message ListShelvesResponse { repeated Shelf shelves = 1; } message CreateShelfRequest { Shelf shelf = 1; }
-
在创建GRPC场景页面,单击上传proto文件,上传相应的proto文件。
-
在PTS控制台中完成其它gRPC场景配置操作后,单击保存去压测。具体操作,请参见场景配置。
-
方法名:bookstore.Bookstore/CreateShelf。
说明 根据proto文件代码得到:包名为bookstore,接口名为Bookstore,方法名为CreateShelf,所以在基本配置的方法名一栏应填写:bookstore.Bookstore/CreateShelf。
-
JSON格式请求:
{ "shelf": { "id": 1, "theme": "hello" } }
说明
syntax = "proto3"; package bookstore; message Shelf { int64 id = 1; string theme = 2; }
-
查看微服务压测报告
在微服务压测过程中,您可以查看实时性能数据。完成微服务压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍微服务的压测报告各部分详情。
压测报告入口
- 登录PTS控制台,在左侧导航栏单击压测中心 > 报告列表。
- 选择场景类型为Dubbo或SpringCloud,单击目标报告操作列的查看报告。
查看压测场景信息
压测报告第一部分显示整个压测场景的相关业务指标。
参数 | 描述 |
---|---|
VUM | 本次压测消耗的资源总数,单位是VUM (每虚拟用户每分钟)。更多信息,请参见常见问题。 |
场景并发 | 当前施压的并发值。 |
场景TPS(/s) | 统计周期内的总请求数除以压测时间所得。 |
总请求数 | 整个场景在压测过程中发出去的总请求数。 |
成功RT Avg(ms) | 所有成功请求的平均RT。 |
失败RT Avg(ms) | 所有失败请求的平均RT。 |
成功率 | 统计周期内全场景请求成功率。 |
压力来源 | 发起压测的压力来源为阿里云VPC内网。 |
VPC ID | 显示压力来源的可用区。 |
安全组名称 | 显示压力来源的安全组。 |
虚拟交换机 | 显示压力来源的虚拟交换机信息。 |
并发数 | 指同时发送压测请求的用户数量。 |
指定IP数 | 场景施压配置中配置的来源IP个数。 |
压测时长 | 指压测总时长。 |
流量模型 | 指设置的压测流量模型。 |
递增时长 | 若是均匀递增或阶梯递增的流量模型,会显示递增时长。 |
查看业务指标
压测报告的概览页签,显示整个场景下所有的全场景和所有Sampler的压测情况。
业务指标说明:
参数 | 描述 |
---|---|
Sampler名称 | 包括全场景和所有Sampler的名称。 |
总请求数 | 整个场景在压测过程中发出去的总请求数。 |
平均TPS | 压测周期内,当前场景的平均TPS值。TPS=Sampler压测期间的全部请求数/压测时长。 |
成功率 | 压测中此Sampler的成功率。单击成功/失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX和其他异常导致的请求失败的个数。其中单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、占比等情况。 |
平均响应时间 | 压测中此Sampler的平均响应时间。单击详情,查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
查看场景详情
在压测报告的明细 > 场景详情页签下,显示了全场景视图和各Sampler的业务详情,包括请求详情视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
-
请求详情视图
包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情等。更多详细指标说明,请参见测试指标。
-
性能对比视图
- 线程数与响应耗时(RT)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 线程数与吞吐率关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(RT)和请求数占比的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
查看压测日志
在压测报告的明细 > 压测日志页签下,可以查看并检索日志的相关信息。
查看施压机性能
压测报告的明细 > 施压机性能页签,显示了压测过程中所有施压机的GC每分钟的瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线等信息。您还可以筛选查看特定施压机的性能信息。
说明 施压机信息最多保留30天。
查看采样日志
在报告详情页面,单击查看采样日志,根据压测Sampler、响应状态等筛选日志,然后单击对应的日志操作列的点击查看详情,可以查看采样日志。在压测执行时或者压测报告中,通过查看压测采样日志,可以快速定位问题。
日志详情包括以下:
- 在General页签中展示了采样日志的日志字段和字段值。
- 在Timing瀑布流页签中展示了各接口的耗时信息。
流媒体压测
压测流媒体HLS协议
您可通过PTS控制台快速实现流媒体HLS协议压测。本文介绍如何对流媒体HLS协议进行压测。
背景信息
流媒体是一种新型的媒体传输技术,是指将一连串的视频、声音、文本、图像等流数据压缩后,经过网上分段发送数据的方式即时传输影音的过程;如果不使用此技术,就必须在使用前下载整个媒体文件。目前随着4G、5G网络的快速发展,流媒体技术在多个领域内得到大量应用,如视频直播、视频点播等。HLS(HTTP Live Streaming)是常见的流媒体协议类型之一,是基于HTTP协议的应用层协议。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击流媒体压测。
- 在创建流媒体场景页面,填写场景名,选择流媒体类型为HLS。
- 在场景配置页签下,单击**+添加流媒体节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
相关基本配置 | 说明 |
---|---|
媒体地址 | 输入流媒体地址。 |
协议 | 可选择HLS类型或MPEG-DASH类型。说明 MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)是按需播放的流媒体协议,能够在播放时基于网络带宽情况动态调整拉流的源,从而调整流的分辨率。 |
不同迭代时间持续播放 | 压测时本次迭代从上次断开的地方续播。 |
播放时长 | 每次迭代的播放时长,0表示播放整个视频。说明如果针对一个直播场景,设置播放时长为0,那么压测过程中每个并发会阻塞在这里持续播放视频,直到停止压测或直播结束。如果您设置了播放时长为5秒,并勾选了不同迭代时间持续播放,第一次迭代会播放前5秒的流,第二次迭代会从第6秒开始,播放到第10秒,后续迭代类似,直至流媒体结束或所有迭代结束。如果不勾选不同迭代时间持续播放,每次迭代都会播放前5秒流。 |
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在
场景配置
页签下,单击
+添加控制器
选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。
选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含
生成父样本
和
是否包含样品中定时器和前后程序的持续时间
两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在
场景配置
页签下,单击
+添加定时器
选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
压测流媒体RTMP协议
https://help.aliyun.com/my_favorites.html)
您可以通过PTS控制台快速实现流媒体RTMP协议压测。本文介绍如何对流媒体RTMP协议进行压测。
背景信息
流媒体是一种新型的媒体传输技术,是指将一连串的视频、声音、文本、图像等流数据压缩后,经过网上分段发送数据的方式即时传输影音的过程;如果不使用此技术,就必须在使用前下载整个媒体文件。目前随着4G、5G网络的快速发展,流媒体技术在多个领域内得到大量应用,如视频直播、视频点播等。RTMP(Real Time Media Protocol)是常见的流媒体协议类型之一,是基于TCP或UDP的传输层协议。整个应用过程可以简单地划分为推流、拉流两个过程。PTS提供的RTMP压测功能主要针对推流与拉流来验证整个服务的稳定性。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击流媒体压测。
- 在创建流媒体场景页面,填写场景名,选择流媒体类型为RTMP。
- 在场景配置页签下,单击**+添加测试节点**右侧的图标,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
-
RTMP推流
:例如您在直播时,将拍摄的内容实时上传,对应推流的过程。
相关基本配置 说明 ip 输入关联推流的域名。 port 默认服务端端口,例如1935。 app 输入App名称,例如live。 stream 输入流名称加Token。 video 输入视频对应可公网访问的OSS链接。 -
RTMP拉流
:例如您观看直播,对应拉流的过程。
相关基本配置 说明 ip 输入关联拉流的域名。 port 默认服务端端口,例如1935。 app 输入App名称,例如live。 stream 输入流名称加Token。 说明 拉流时您仅需要配置app和stream参数就可以确定流的地址。
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在
场景配置
页签下,单击
+添加控制器
选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含生成父样本和是否包含样品中定时器和前后程序的持续时间
两个设置项。
- 生成父样本
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
- 是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
- 生成父样本
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在场景配置页签下,单击+添加定时器选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
场景示例
RTMP协议支持推流、拉流两种方式,这里以阿里云直播产品为例,说明如何使用RTMP压测功能。
-
在阿里云视频直播产品中开通直播服务。具体操作,请参见开通直播服务。
-
在阿里云视频直播产品中进行直播配置。具体操作,请参见添加域名、解析CNAME、关联推流域名与播流域名、配置URL鉴权。
-
在阿里云视频直播产品的地址生成器中填写对应的流名、应用名,生成对应的对流参数。具体操作,请参见
生成推流地址与播流地址
。
您可以获取生成后的参数。
-
在PTS控制台的
创建流媒体场景页面配置推流节点,并完成压测。具体操作,请参见场景配置。
说明 流媒体压测场景配置中拉流部分填写参数类似,在有推流的情况下,您可以测试拉流能力。
压测流媒体RTMP协议
您可以通过PTS控制台快速实现流媒体RTMP协议压测。本文介绍如何对流媒体RTMP协议进行压测。
背景信息
流媒体是一种新型的媒体传输技术,是指将一连串的视频、声音、文本、图像等流数据压缩后,经过网上分段发送数据的方式即时传输影音的过程;如果不使用此技术,就必须在使用前下载整个媒体文件。目前随着4G、5G网络的快速发展,流媒体技术在多个领域内得到大量应用,如视频直播、视频点播等。RTMP(Real Time Media Protocol)是常见的流媒体协议类型之一,是基于TCP或UDP的传输层协议。整个应用过程可以简单地划分为推流、拉流两个过程。PTS提供的RTMP压测功能主要针对推流与拉流来验证整个服务的稳定性。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击流媒体压测。
- 在创建流媒体场景页面,填写场景名,选择流媒体类型为RTMP。
- 在场景配置页签下,单击**+添加测试节点**右侧的图标,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
-
RTMP推流
:例如您在直播时,将拍摄的内容实时上传,对应推流的过程。
相关基本配置 说明 ip 输入关联推流的域名。 port 默认服务端端口,例如1935。 app 输入App名称,例如live。 stream 输入流名称加Token。 video 输入视频对应可公网访问的OSS链接。 -
RTMP拉流
:例如您观看直播,对应拉流的过程。
相关基本配置 说明 ip 输入关联拉流的域名。 port 默认服务端端口,例如1935。 app 输入App名称,例如live。 stream 输入流名称加Token。 说明 拉流时您仅需要配置app和stream参数就可以确定流的地址。
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在场景配置页签下,单击+添加控制器选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含生成父样本和是否包含样品中定时器和前后程序的持续时间
两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在场景配置页签下,单击+添加定时器选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
场景示例
RTMP协议支持推流、拉流两种方式,这里以阿里云直播产品为例,说明如何使用RTMP压测功能。
-
在阿里云视频直播产品中开通直播服务。具体操作,请参见开通直播服务。
-
在阿里云视频直播产品中进行直播配置。具体操作,请参见添加域名、解析CNAME、关联推流域名与播流域名、配置URL鉴权。
-
在阿里云视频直播产品的地址生成器中填写对应的流名、应用名,生成对应的对流参数。具体操作,请参见生成推流地址与播流地址。
您可以获取生成后的参数。
-
在PTS控制台的创建流媒体场景页面配置推流节点,并完成压测。具体操作,请参见场景配置。
说明 流媒体压测场景配置中拉流部分填写参数类似,在有推流的情况下,您可以测试拉流能力。
TCP/UDP压测
压测TCP协议
您可通过PTS控制台快速实现TCP协议压测。本文介绍如何对TCP协议进行压测。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击TCP/UDP压测。
- 在创建TCP/UDP场景页面,填写场景名,选择协议类型为TCP。
- 在场景配置页签下,单击**+添加TCP请求节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
参数 | 描述 | 示例 |
---|---|---|
IP地址 | TCP服务的IP地址。 | 192.168.1.1 |
端口号 | TCP服务的端口号。 | 5001 |
连接超时 | 发起连接,服务端无响应的超时时间。 | 5000 |
响应超时 | 连接建立成功,等待响应返回的超时时间。 | 5000 |
重复使用连接 | 请求响应完成后,不断开连接,复用连接发送接收下一次请求响应。 | 无 |
关闭连接 | 每次完成请求响应完成后,断开连接,下一次重新建立连接。 | 无 |
使用Nagle算法 | TCP是否开启Nagle算法,需要跟实际的业务情况决定。 | 打开 |
结束符 | 判断行结束的Byte值,比如服务器端返回的字符串都是以换行符结尾,那么可以将该选项设置成10。注意 结束符是与读数据相关的,就是设定来自于服务器数据流的一个结束标识字节。如果没有设置结束符将会一直读到输入流结束为止。需要注意的是此处是十进制的值,不能写成Hex;比如您可以查询ASCII表,来确认一个表示结束字符的十进制值。 | 10 |
内容格式 | 支持字符串和16进制码流。 | 字符串 |
请求内容 | 需要发送的内容。 | Hi |
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在
场景配置
页签下,单击
+添加控制器
选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含生成父样本和是否包含样品中定时器和前后程序的持续时间两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在场景配置页签下,单击+添加定时器选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
压测UDP协议
您可通过PTS控制台快速实现UDP协议压测。本文介绍如何对UDP协议进行压测。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击TCP/UDP压测。
- 在创建TCP/UDP场景页面,填写场景名,选择协议类型为UDP。
- 在场景配置页签下,单击**+添加UDP请求节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
参数 | 描述 | 示例 |
---|---|---|
IP地址 | TCP服务的IP地址。 | 192.168.1.1 |
端口号 | TCP服务的端口号。 | 5002 |
响应超时 | 连接建立成功,等待响应返回的超时时间。 | 5000 |
等待响应 | 是否等待响应。 | 开 |
关闭连接 | 每次完成请求响应完成后,断开连接,下一次重新建立连接。 | 开 |
内容格式 | 支持字符串和16进制码流。 | 字符串 |
请求内容 | 需要发送的内容。 | Hi |
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在
场景配置
页签下,单击
+添加控制器
选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含生成父样本和是否包含样品中定时器和前后程序的持续时间
两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在场景配置页签下,单击+添加定时器选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
查看TCP压测报告
在TCP压测过程中,您可以查看实时性能数据。完成压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍TCP压测报告中各部分详情。
压测报告入口
-
登录PTS控制台,在左侧导航栏选择压测中心 > 报告列表。
-
单击目标报告操作列的查看报告。
说明 在报告详情页面,单击右上角的报告导出,然后根据需要选择有水印版本或无水印版本,可以导出目标TCP压测报告的PDF版本。
查看采样日志
在报告详情页,单击右上角的查看采样日志,然后在查看日志页面,单击操作列的点击查看详情,可以查看详细采样日志。在压测执行时或者压测报告中,通过查看压测采样日志,可以快速定位问题。
日志详情包括以下信息:
- General页签展示了采样日志的日志字段和字段值。
- Timing瀑布流页签展示了各接口的耗时信息。
查看压测场景信息
压测报告的第一部分显示了整个压测场景的相关业务指标。
您可以在数据信息区域(图示中①)查看以下参数信息:
参数 | 说明 |
---|---|
请求成功率(%) | 统计周期内全场景请求成功率。 |
请求成功率(%) | 统计周期内成功和失败请求的平均RT。 |
TPS | 统计周期内的总请求数除以压测时间所得。 |
并发 | 该压测场景下设置的施压并发数。 |
异常数 | 压测过程中产生的异常。单击数字区域可以查看异常的日志详情。 |
总请求数 | 整个场景在压测过程中发送的总请求数。 |
您可以在图示中②的区域查看该压测场景的施压信息、配置信息和计费信息。
参数 | 说明 |
---|---|
施压信息 | |
开始时间 | 该场景下压测开始的时间。 |
结束时间 | 该场景下压测结束的时间。 |
压测时长 | 压测实际耗费的总时长。 |
配置信息 | |
压力来源 | 在场景施压配置中所选的发起压测的压力来源。 |
配置时长 | 在场景施压配置中所设置的压测时长。 |
流量模型 | 在场景施压配置中所选的压测流量模型。 |
指定IP数 | 在场景施压配置中所设置的施压引擎数。 |
计费信息 | |
消耗VUM | 本次压测消耗的资源总数。 |
图示中③的区域展示了该压测场景的请求成功率、平均RT和TPS的时序曲线图。您可以将光标移动到图表上,查看具体时间点所对应的状态。
查看业务指标
压测报告的概览页签展示了该压测场景下各测试节点的压测情况。
参数 | 说明 |
---|---|
Sampler名称 | 全场景以及所有测试节点的名称。 |
总请求数 | 该场景下,在压测过程中发出的总请求数。 |
平均TPS | 压测周期内,该场景的平均TPS值。TPS=该测试节点在压测期间的全部请求数/压测时长。 |
成功率 | 压测过程中,此测试节点的成功率(绿色数字表示成功,红色数字表示失败)。单击成功或失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX或其他异常导致的请求失败的个数。单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、错误数和占比(%)。 |
平均响应时间(ms) | 压测中此测试节点的平均响应时间。单击详情,可查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
查看场景详情
压测报告的明细 > 场景详情页签显示了全场景视图和各测试节点的业务详情,包括请求详情视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
请求详情视图
该视图包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情。更多详细指标说明,请参见测试指标。
性能对比视图
- 活跃线程数与响应耗时(ms)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 活跃线程数与吞吐率(/S)关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(ms)和请求数占比(%)的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
查看压测日志
在压测报告的明细 > 压测日志页签下,可以查看并检索日志相关信息。
查看施压机性能
压测报告的明细 > 施压机性能页签展示了压测过程中所有施压机的GC瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线图。您还可以筛选查看特定施压机的性能信息。
查看TCP压测报告
在TCP压测过程中,您可以查看实时性能数据。完成压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍TCP压测报告中各部分详情。
压测报告入口
-
登录PTS控制台,在左侧导航栏选择压测中心 > 报告列表。
-
单击目标报告操作列的查看报告。
说明 在报告详情页面,单击右上角的报告导出,然后根据需要选择有水印版本或无水印版本,可以导出目标TCP压测报告的PDF版本。
查看采样日志
在报告详情页,单击右上角的查看采样日志,然后在查看日志页面,单击操作列的点击查看详情,可以查看详细采样日志。在压测执行时或者压测报告中,通过查看压测采样日志,可以快速定位问题。
日志详情包括以下信息:
- General页签展示了采样日志的日志字段和字段值。
- Timing瀑布流页签展示了各接口的耗时信息。
查看压测场景信息
压测报告的第一部分显示了整个压测场景的相关业务指标。
您可以在数据信息区域(图示中①)查看以下参数信息:
参数 | 说明 |
---|---|
请求成功率(%) | 统计周期内全场景请求成功率。 |
请求成功率(%) | 统计周期内成功和失败请求的平均RT。 |
TPS | 统计周期内的总请求数除以压测时间所得。 |
并发 | 该压测场景下设置的施压并发数。 |
异常数 | 压测过程中产生的异常。单击数字区域可以查看异常的日志详情。 |
总请求数 | 整个场景在压测过程中发送的总请求数。 |
您可以在图示中②的区域查看该压测场景的施压信息、配置信息和计费信息。
参数 | 说明 |
---|---|
施压信息 | |
开始时间 | 该场景下压测开始的时间。 |
结束时间 | 该场景下压测结束的时间。 |
压测时长 | 压测实际耗费的总时长。 |
配置信息 | |
压力来源 | 在场景施压配置中所选的发起压测的压力来源。 |
配置时长 | 在场景施压配置中所设置的压测时长。 |
流量模型 | 在场景施压配置中所选的压测流量模型。 |
指定IP数 | 在场景施压配置中所设置的施压引擎数。 |
计费信息 | |
消耗VUM | 本次压测消耗的资源总数。 |
图示中③的区域展示了该压测场景的请求成功率、平均RT和TPS的时序曲线图。您可以将光标移动到图表上,查看具体时间点所对应的状态。
查看业务指标
压测报告的概览页签展示了该压测场景下各测试节点的压测情况。
参数 | 说明 |
---|---|
Sampler名称 | 全场景以及所有测试节点的名称。 |
总请求数 | 该场景下,在压测过程中发出的总请求数。 |
平均TPS | 压测周期内,该场景的平均TPS值。TPS=该测试节点在压测期间的全部请求数/压测时长。 |
成功率 | 压测过程中,此测试节点的成功率(绿色数字表示成功,红色数字表示失败)。单击成功或失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX或其他异常导致的请求失败的个数。单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、错误数和占比(%)。 |
平均响应时间(ms) | 压测中此测试节点的平均响应时间。单击详情,可查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
查看场景详情
压测报告的明细 > 场景详情页签显示了全场景视图和各测试节点的业务详情,包括请求详情视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
请求详情视图
该视图包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情。更多详细指标说明,请参见测试指标。
性能对比视图
- 活跃线程数与响应耗时(ms)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 活跃线程数与吞吐率(/S)关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(ms)和请求数占比(%)的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
查看压测日志
在压测报告的明细 > 压测日志页签下,可以查看并检索日志相关信息。
查看施压机性能
压测报告的明细 > 施压机性能页签展示了压测过程中所有施压机的GC瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线图。您还可以筛选查看特定施压机的性能信息。
Redis压测
创建压测场景
您可通过PTS控制台快速实现Redis压测。本文介绍如何对Redis进行压测。
功能入口
-
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击Redis压测。
-
在创建Redis场景页面,填写场景名,然后配置Redis连接。
相关配置 说明 阿里云Redis 选择压测云RDS的地域和实例信息。 地址 IP地址。 端口号 Redis服务器端口号。 密码 Redis密码。 高级设置 最大连接数 资源池中的最大连接数,默认值8。 最大空闲连接数 资源池允许的最大空闲连接数,默认值8。 最小空闲连接数 资源池确保的最少空闲连接数,默认值0。 最大等待时间 当资源池连接用尽后,调用者的最大等待时间(单位为毫秒),默认值10000。 testOnBorrow 向资源池借用连接时是否做连接有效性检测(Ping)。打开开关按钮,则检测到的无效连接将会被移除。 testOnReturn 向资源池归还连接时是否做连接有效性检测(Ping)。打开开关按钮,则检测到的无效连接将会被移除。 -
在场景配置页签下,单击**+添加Redis节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
相关基本配置 | 说明 |
---|---|
数据库编号 | 连接指定编号的数据库。 |
数据类型 | Key的数据类型,包括:StringListHashSet |
方法 | 对于不同数据类型,选择具体的使用方法。 |
key | 键。 |
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在
场景配置
页签下,单击
+添加控制器
选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。
选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含
生成父样本
和
是否包含样品中定时器和前后程序的持续时间
两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在
场景配置
页签下,单击
+添加定时器
选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
查看Redis压测报告
在Redis压测过程中,您可以查看实时性能数据。完成压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍Redis压测报告中各部分详情。
压测报告入口
-
登录PTS控制台。
-
在左侧导航栏选择压测中心 > 报告列表。
-
单击目标报告操作列的查看报告。
说明 在报告详情页面,单击右上角的报告导出,然后根据需要选择有水印版本或无水印版本,可以导出目标Redis压测报告的PDF版本。
查看采样日志
在报告详情页,单击右上角的查看采样日志,然后在查看日志页面,单击操作列的点击查看详情,可以查看详细采样日志。在压测执行时或者压测报告中,通过查看压测采样日志和调用链路信息,可以快速定位问题。
日志详情包括以下信息:
- General页签展示了采样日志的日志字段和字段值。
- Timing瀑布流页签展示了各接口的耗时信息。
- 调用链视图页面,展示了被压测接口上下游的调用链路详情,调用链更多详情信息,请参见查看调用链路详情。
查看压测场景信息
压测报告的第一部分显示了整个压测场景的相关业务指标。
您可以在数据信息区域(图示中①)查看以下参数信息:
参数 | 说明 |
---|---|
请求成功率(%) | 统计周期内全场景请求成功率。 |
平均RT(成功/失败) | 统计周期内成功和失败请求的平均RT。 |
TPS | 统计周期内的总请求数除以压测时间所得。 |
并发 | 该压测场景下设置的施压并发数。 |
异常数 | 压测过程中产生的异常。单击数字区域可以查看异常的日志详情。 |
总请求数 | 整个场景在压测过程中发送的总请求数。 |
您可以在图示中②的区域查看该压测场景的施压信息、配置信息和计费信息。
参数 | 说明 |
---|---|
施压信息 | |
开始时间 | 该场景下压测开始的时间。 |
结束时间 | 该场景下压测结束的时间。 |
压测时长 | 压测实际耗费的总时长。 |
配置信息 | |
压力来源 | 在场景施压配置中所选的发起压测的压力来源。 |
配置时长 | 在场景施压配置中所设置的压测时长。 |
流量模型 | 在场景施压配置中所选的压测流量模型。 |
指定IP数 | 在场景施压配置中所设置的施压引擎数。 |
计费信息 | |
消耗VUM | 本次压测消耗的资源总数。 |
图示中③的区域展示了该压测场景的请求成功率、平均RT和TPS的时序曲线图。您可以将光标移动到图表上,查看具体时间点所对应的状态。
查看业务指标
压测报告的概览页签展示了该压测场景下各测试节点的压测情况。
参数 | 说明 |
---|---|
Sampler名称 | 全场景以及所有测试节点的名称。 |
总请求数 | 该场景下,在压测过程中发出的总请求数。 |
平均TPS | 压测周期内,该场景的平均TPS值。TPS=该测试节点在压测期间的全部请求数/压测时长。 |
成功率(%) | 压测过程中,此测试节点的成功率(绿色数字表示成功,红色数字表示失败)。单击成功或失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX或其他异常导致的请求失败的个数。单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、错误数和占比。 |
平均响应时间(ms) | 压测中此测试节点的平均响应时间。单击详情,可查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
查看场景详情
压测报告的明细 > 场景详情页签显示了全场景视图和各测试节点的业务详情,包括请求详情视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
请求详情视图
该视图包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情。更多详细指标说明,请参见测试指标。
性能对比视图
- 线程数与响应耗时(RT)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 线程数与吞吐率关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(RT)和请求数占比的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
查看压测日志
在压测报告的明细 > 压测日志页签下,可以查看并检索日志相关信息。
查看施压机性能
压测报告的明细 > 施压机性能页签展示了压测过程中所有施压机的GC瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线图。您还可以筛选查看特定施压机的性能信息。
RocketMQ压测
创建压测场景
您可通过PTS控制台快速实现RocketMQ压测。本文介绍如何对RocketMQ进行压测。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击RocketMQ压测。
- 在创建RocketMQ场景页面,填写场景名,选择消息队列类型为RocketMQ。然后配置RocketMQ连接。
- 在场景配置页签下,单击**+添加RocketMQ节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
相关基本配置 | 说明 |
---|---|
地址 | IP地址。 |
生产者Group | 同一类Producer的集合,这类Producer发送同一类消息且发送逻辑一致。如果发送的是事务消息且原始生产者在发送之后崩溃,则Broker服务器会联系同一生产者组的其他生产者实例以提交或回溯消费。 |
Topic | 表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。 |
Tag | 为消息设置的标志,用于同一主题下区分不同类型的消息。来自同一业务单元的消息,可以根据不同业务目的在同一主题下设置不同标签。标签能够有效地保持代码的清晰度和连贯性,并优化RocketMQ提供的查询系统。消费者可以根据Tag实现对不同子主题的不同消费逻辑,实现更好的扩展性。 |
消息 | 消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。RocketMQ中每个消息拥有唯一的Message ID,且可以携带具有业务标识的Key。系统提供了通过Message ID和Key查询消息的功能。 |
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在场景配置页签下,单击+添加控制器选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含
生成父样本
和
是否包含样品中定时器和前后程序的持续时间
两个设置项。
-
生成父样本
:
- 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
- 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在场景配置页签下,单击+添加定时器选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
查看RocketMQ压测报告
在RocketMQ压测过程中,您可以查看实时性能数据。完成压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍RocketMQ压测报告中各部分详情。
压测报告入口
-
登录PTS控制台。
-
在左侧导航栏选择压测中心 > 报告列表。
-
单击目标报告操作列的查看报告。
说明 在报告详情页面,单击右上角的报告导出,然后根据需要选择有水印版本或无水印版本,可以导出目标RocketMQ压测报告的PDF版本。
查看采样日志
在报告详情页,单击右上角的查看采样日志,然后在查看日志页面,单击操作列的点击查看详情,可以查看详细采样日志。在压测执行时或者压测报告中,通过查看压测采样日志和调用链路信息,可以快速定位问题。
日志详情包括以下信息:
- General页签展示了采样日志的日志字段和字段值。
- Timing瀑布流页签展示了各接口的耗时信息。
- 调用链视图页面,展示了被压测接口上下游的调用链路详情,调用链更多详情信息,请参见查看调用链路详情。
查看压测场景信息
压测报告的第一部分显示了整个压测场景的相关业务指标。
您可以在数据信息区域(图示中①)查看以下参数信息:
参数 | 说明 |
---|---|
请求成功率(%) | 统计周期内全场景请求成功率。 |
平均RT(成功/失败) | 统计周期内成功和失败请求的平均RT。 |
TPS | 统计周期内的总请求数除以压测时间所得。 |
并发 | 该压测场景下设置的施压并发数。 |
异常数 | 压测过程中产生的异常。单击数字区域可以查看异常的日志详情。 |
总请求数 | 整个场景在压测过程中发送的总请求数。 |
您可以在图示中②的区域查看该压测场景的施压信息、配置信息和计费信息。
参数 | 说明 |
---|---|
施压信息 | |
开始时间 | 该场景下压测开始的时间。 |
结束时间 | 该场景下压测结束的时间。 |
压测时长 | 压测实际耗费的总时长。 |
配置信息 | |
压力来源 | 在场景施压配置中所选的发起压测的压力来源。 |
配置时长 | 在场景施压配置中所设置的压测时长。 |
流量模型 | 在场景施压配置中所选的压测流量模型。 |
指定IP数 | 在场景施压配置中所设置的施压引擎数。 |
计费信息 | |
消耗VUM | 本次压测消耗的资源总数。 |
图示中③的区域展示了该压测场景的请求成功率、平均RT和TPS的时序曲线图。您可以将光标移动到图表上,查看具体时间点所对应的状态。
查看业务指标
压测报告的概览页签展示了该压测场景下各测试节点的压测情况。
参数 | 说明 |
---|---|
Sampler名称 | 全场景以及所有测试节点的名称。 |
总请求数 | 该场景下,在压测过程中发出的总请求数。 |
平均TPS | 压测周期内,该场景的平均TPS值。TPS=该测试节点在压测期间的全部请求数/压测时长。 |
成功率(%) | 压测过程中,此测试节点的成功率(绿色数字表示成功,红色数字表示失败)。单击成功或失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX或其他异常导致的请求失败的个数。单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、错误数和占比。 |
平均响应时间(ms) | 压测中此测试节点的平均响应时间。单击详情,可查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
查看场景详情
压测报告的明细 > 场景详情页签显示了全场景视图和各测试节点的业务详情,包括请求详情视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
请求详情视图
该视图包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情。更多详细指标说明,请参见测试指标。
性能对比视图
- 线程数与响应耗时(RT)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 线程数与吞吐率关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(RT)和请求数占比的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
查看压测日志
在压测报告的明细 > 压测日志页签下,可以查看并检索日志相关信息。
查看施压机性能
压测报告的明细 > 施压机性能页签展示了压测过程中所有施压机的GC瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线图。您还可以筛选查看特定施压机的性能信息。
Kafka压测
创建压测场景
您可通过PTS控制台快速实现Kafka压测。本文介绍如何对Kafka进行压测。
功能入口
- 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击Kafka压测。
- 在创建Kafka场景页面,填写场景名。
- 在场景配置页签下,单击**+添加Kafka节点**,为目标串联链路添加所需测试节点。
场景配置
单击串联链路右侧的图标,展开串联链路,并配置基本信息、出参、检查点等信息。
基本配置
在串联链路的基本配置页签设置压测基本参数。具体配置如下。
相关基本配置 | 说明 |
---|---|
生产者配置 | |
brokers | Kafka集群中的一台或多台服务器统称broker。例如127.0.0.1:9092。多个broker以半角逗号(,)分隔。 |
batchSize | Kafka发送端批量发送的缓存大小,单位B,一般和lingerMS配合使用。 |
lingerMS | 消息发送延时,默认的延时时间是0毫秒(ms),即接到消息后会立刻发送。若生产端对于吞吐量要求不高,可不设置该项;若生产端对于吞吐量要求较高,但是对于实时性要求不高,则可以配置该项。 |
压缩类型 | 生产者端指定的消息压缩算法,例如GZIP、LZ4。 |
消息配置 | |
topic | 一个 Topic(主题)对应一个消息队列。 |
partition | Kafka在概念上将一个Topic分成了多个Partition(分区),写入Topic的消息会被(平均)分配到其中一个Partition。 |
key | 输入key,系统会按照key进行哈希,因此相同key的消息会发送到同一个partition。 |
消息序列化方式 | 选择消息序列化方式,序列化后,消息才可以进行网络传输。目前支持的消息序列化方式有:ByteArrayStringByteBufferBytesDoubleFloatIntegerLongShortUUID |
message | Kafka实际需要发送的消息。 |
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
控制器和定时器(可选)
您可以根据不同压测场景的需求,添加控制器和定时器。
-
在场景配置页签下,单击+添加控制器选择所需的控制器。
-
循环控制器
:控制所含测试节点应循环执行的次数。选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
-
事务控制器
:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含
生成父样本和是否包含样品中定时器和前后程序的持续时间两个设置项。
生成父样本
:
-
开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
-
关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
-
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
-
-
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
-
-
在场景配置页签下,单击+添加定时器选择所需的定时器。
- 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
- 同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
- 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
- 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
- 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
单击施压配置页签,设置压测模式。
压测配置 | 描述 |
---|---|
压力来源 | 本次压测使用的网络类型,包括公网和阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)。 |
并发数 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
压测时长 | 建议压测时长不低于2分钟,总时长默认不可超过24小时。如有特殊需求,请提交工单。 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量。 |
启动压测
您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。
后续操作
查看压测报告。具体操作,请参见查看多协议压测报告。
查看Kafka压测报告
在Kafka压测过程中,您可以查看实时性能数据。完成压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍Kafka压测报告中各部分详情。
压测报告入口
-
登录PTS控制台。
-
在左侧导航栏选择压测中心 > 报告列表。
-
单击目标报告操作列的查看报告。
说明 在报告详情页面,单击右上角的报告导出,然后根据需要选择有水印版本或无水印版本,可以导出目标Kafka压测报告的PDF版本。
查看采样日志
在报告详情页,单击右上角的查看采样日志,然后在查看日志页面,单击操作列的点击查看详情,可以查看详细采样日志。在压测执行时或者压测报告中,通过查看压测采样日志和调用链路信息,可以快速定位问题。
日志详情包括以下信息:
- General页签展示了采样日志的日志字段和字段值。
- Timing瀑布流页签展示了各接口的耗时信息。
- 调用链视图页面,展示了被压测接口上下游的调用链路详情,调用链更多详情信息,请参见查看调用链路详情。
查看压测场景信息
压测报告的第一部分显示了整个压测场景的相关业务指标。
您可以在数据信息区域(图示中①)查看以下参数信息:
参数 | 说明 |
---|---|
请求成功率(%) | 统计周期内全场景请求成功率。 |
平均RT(成功/失败) | 统计周期内成功和失败请求的平均RT。 |
TPS | 统计周期内的总请求数除以压测时间所得。 |
并发 | 该压测场景下设置的施压并发数。 |
异常数 | 压测过程中产生的异常。单击数字区域可以查看异常的日志详情。 |
总请求数 | 整个场景在压测过程中发送的总请求数。 |
您可以在图示中②的区域查看该压测场景的施压信息、配置信息和计费信息。
参数 | 说明 |
---|---|
施压信息 | |
开始时间 | 该场景下压测开始的时间。 |
结束时间 | 该场景下压测结束的时间。 |
压测时长 | 压测实际耗费的总时长。 |
配置信息 | |
压力来源 | 在场景施压配置中所选的发起压测的压力来源。 |
配置时长 | 在场景施压配置中所设置的压测时长。 |
流量模型 | 在场景施压配置中所选的压测流量模型。 |
指定IP数 | 在场景施压配置中所设置的施压引擎数。 |
计费信息 | |
消耗VUM | 本次压测消耗的资源总数。 |
图示中③的区域展示了该压测场景的请求成功率、平均RT和TPS的时序曲线图。您可以将光标移动到图表上,查看具体时间点所对应的状态。
查看业务指标
压测报告的概览页签展示了该压测场景下各测试节点的压测情况。
参数 | 说明 |
---|---|
Sampler名称 | 全场景以及所有测试节点的名称。 |
总请求数 | 该场景下,在压测过程中发出的总请求数。 |
平均TPS | 压测周期内,该场景的平均TPS值。TPS=该测试节点在压测期间的全部请求数/压测时长。 |
成功率(%) | 压测过程中,此测试节点的成功率(绿色数字表示成功,红色数字表示失败)。单击成功或失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX或其他异常导致的请求失败的个数。单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、错误数和占比。 |
平均响应时间(ms) | 压测中此测试节点的平均响应时间。单击详情,可查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
查看场景详情
压测报告的明细 > 场景详情页签显示了全场景视图和各测试节点的业务详情,包括请求详情视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
请求详情视图
该视图包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情。更多详细指标说明,请参见测试指标。
性能对比视图
- 线程数与响应耗时(RT)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 线程数与吞吐率关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(RT)和请求数占比的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
查看压测日志
在压测报告的明细 > 压测日志页签下,可以查看并检索日志相关信息。
查看施压机性能
压测报告的明细 > 施压机性能页签展示了压测过程中所有施压机的GC瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线图。您还可以筛选查看特定施压机的性能信息。
五、压测监控与报告
云监控
云资源监控
性能测试过程中,往往需要实时观察各项指标是否正常,包括PTS本身已经具备的强大的客户端指标,以及应用服务器、数据库、中间件、网络入口等方面的指标。更重要的是,监控的过程是发现系统瓶颈的过程,监控数据是性能基线管理、容量规划甚至是高可用架构的重要基础。
限制条件
目前PTS支持添加云资源监控,用于查看各项指标,更好地保证测试前提,记录相关数据,输出最终结果。如果您使用了阿里云基础服务(ECS、RDS、SLB、AHAS),均可通过添加监控的方式,在压测及报告中便捷地查看相应的监控数据。
-
PTS集成的ECS监控是操作系统级别的,监控项是通过插件采集的,采集频率为15秒一次。故需要先在云监控控制台上安装插件,并确保插件在运行中的状态。具体信息,请参见
安装和卸载C++版本插件
。
说明 关于插件安装的权限,主账号可以直接安装,子账号需要被授权AdministratorAccess权限。具体操作,请参见借助RAM用户实现分权。
云资源监控范围
目前支持的云资源监控实例类型包括ECS,RDS,SLB,AHAS四种,所有当前使用PTS账号对应的主账号(若有)或该账号本身购买的实例,均可被添加。
PTS的云资源监控集成不会计入云监控的查询监控数据API调用数量的计费指标,请您放心使用。更多信息,请参见云监控概述。
添加监控
在云资源监控页面您可以添加ECS、RDS、SLB、AHAS实例。这里以添加SLB实例为例,介绍添加监控的具体操作。
-
登录PTS控制台,在左侧导航栏选择压测中心 > 创建场景。
-
在创建或编辑场景页面,单击云资源监控页签。
-
在云资源监控页签下,单击+添加实例,在右侧弹出的添加实例面板中,选择产品类型(ECS、RDS、SLB或AHAS)和地域,并选择目标实例。单击确定。当后台新增了云资源监控产品或实例时,单击手工同步,手动同步资源。
说明
- SLB后端RealServer的IP信息需要配置完整,否则SLB不能被选中添加。
- SLB的一组IP:PORT视为一个实例。
- 确保ECS实例的Agent状态是正在进行中,否则无法进行监控。如Agent处于非运行状态,需要在云监控控制台安装插件或排查问题。请参见安装和卸载C++版本插件。
查看监控数据
压测过程中,可以实时查看监控数据,以便时刻观察线上负载情况,进行业务合理性判断及异常分析。
在压测过程中页面,单击压测监控页签,然后单击不同实例页签查看具体数据。
以SLB的监控查看为例:
- 默认展现全部已添加的实例信息,单击筛选下拉框可调整查看对象。
- 各实例的监控维度:
- ECS:CPU使用率、内存利用率、公网网卡流入、流出流量等。
- RDS:连接数使用率、CPU使用率、磁盘使用率等。
- SLB:
- 核心视图:端口新建或丢弃连接数、端口流入或流出带宽。
- 其余视图:端口活跃或非活跃连接数,端口并发连接数,端口正常或异常ECS数。
- 因云资源监控的数据周期限制,ECS、SLB的数据为1分钟一个采集点,RDS数据为5分钟一个采集点。
监控报告
PTS除了在压测过程中提供监控数据,也在报告中整合了压测数据,以便在压测结束后,复盘压测过程时比对业务数据与负载数据使用,帮助您快速地定位负载情况、系统是否异常等。
监控报告中的明细数据展现了在压测前配置的监控对象数据,与压测中的展现形式一致。报告中的数据趋势图区间为整个压测区间。具体操作,请参见查看监控详情。
压测报告
查看PTS压测报告
PTS压测结束之后,系统会自动获取压测过程中的数据,例如压测场景指标、业务详情数据、监控详情数据和API采样日志等,形成压测报告,供您查看和导出。本文介绍压测报告的指标信息以及如何对比压测报告。
功能入口
-
登录PTS控制台,在左侧导航栏选择性能测试 > 报告列表。
-
在报告列表页面,选择报告类型,按时间、场景名或报告ID进行搜索。
-
在目标压测报告操作列单击查看报告,在报告详情页面查看压测数据。
-
单击右上角查看采样日志,可查看采样日志。具体操作,请参见查看采样日志。
-
单击右上角查看快照,可查看场景快照。
-
单击右上角基线设置,可设置基线。具体操作,请参见设置性能基线。
-
单击右上角报告导出,您可根据需要选择有水印版本或无水印版本。
注意 PTS控制台压测报告的采样日志数据保留30天,超出30天后采样日志数据将无法查看。为避免数据丢失,请您及时将压测报告导出并保存至本地。
-
概览
在压测报告的概览页签,显示整个压测场景的基本信息和相关业务指标。
说明 压测报告中包括压测基本信息、业务指标概览、业务详情明细等。具体信息,请参见压测报告Demo和测试指标。
数据信息区域(图标①)
展示了压测场景的主要压测指标。单击流量来源,可以查看本次压测场景的流量来源地域、占比以及施压机数量等信息。
指标 | 描述 |
---|---|
成功率(请求/业务) | 包括请求成功率和业务成功率:请求成功率:压测中全场景的请求成功率。业务成功率:压测中全场景的业务成功率。 |
平均RT(ms) | RT业务响应时间(Response Time),平均RT是所有API的RT平均值,单位为ms。 |
TPS(平均/峰值) | TPS系统每秒处理事务数(Transaction Per Second),包括TPS的平均值和峰值:平均:表示压测周期内,该场景TPS的平均值。峰值:表示压测周期内,该场景的最高TPS。 |
异常数(请求/业务) | 单击异常数值,可快速查看其采样日志。请求异常数:压测过程中,请求失败个数。业务异常数:设置了检查点断言的API业务失败的请求数。 |
总请求数 | 整个压测过程中,PTS共发起的请求个数。 |
施压信息、配置信息、计费信息区域(图标②)
当鼠标悬浮在施压信息、配置信息或计费信息上,会显示当前压测场景的压力分布、压力来源、付费模式等信息。
区域 | 指标 | 描述 |
---|---|---|
施压信息 | 来源IP(最小/配置) | 发起压测流量的IP地址个数:最小:压测周期内,该场景的最小来源IP数。配置:场景施压配置中配置的来源IP个数。单击分布详情,可查看发起压测流量的IP地址所在的地理位置和所属运营商。流量定制功能仅支持国内公网压测,且有资源包规格限制。资源包具体信息,请参见资源包规格。 |
压测时长 | 压测的总时长。 | |
开始时间 | 显示此压测场景开始压测的具体时间。 | |
结束时间 | 显示此压测场景结束压测的具体时间。 | |
并发用户数(峰值/上限) | 同时发送压测请求的用户数量。在压测过程中一个用户可能代表一个进程或者一个线程:峰值:压测周期内场景的最高并发值。上限:根据该场景配置的压测量级,限制的最大并发数。 | |
RPS(峰值/上限) | RPS每秒发出的压测请求数量(Requests Per Second):峰值:压测周期内,该场景的最高RPS。上限:根据该场景配置的压测量级,限制的最大RPS。说明 关于RPS的详细介绍,请参见RPS模式的并发量是如何计算的。 | |
流量(平均/峰值) | 压测周期内的流量统计:平均:压测周期内的平均流量,PTS采样统计的基于7层(HTTP)请求体或者响应体的最大值(与4层网络带宽完全不同),请参见具体算法。峰值:压测周期内的最大流量,算法同平均流量。 | |
配置信息 | 压力来源 | 显示此压测场景发起压测的网络,包含国内公网、阿里云内网等。 |
压测模式 | 显示此压测场景的压测模式,包括并发模式或RPS模式。 | |
递增模式 | 显示此压测场景的递增模式,包括自动递增或手动调速。说明 若创建压测场景时,递增模式设置为自动递增,即使在压测过程中,进行了手动调速,递增模式仍显示为自动递增。 | |
计费信息 | 扣费资源包 | 显示您所使用的付费模式。 |
消耗VUM | 显示您本次压测消耗的VUM数量。 |
趋势图(图标③)
此区域展示了此压测场景中重要指标的关系图和趋势图,包括请求成功率、业务成功率与RPS之间的关系和趋势等。您还可以进行以下操作:
- 鼠标悬浮在任意趋势图中的数据线上,所有趋势图都会显示出该时间点相关的数据信息。
- 单击任意趋势图下方的图例,可以显示或隐藏某些数据曲线。
全场景错误信息(图标④)
该区域展示了压测场景中出现的错误码、错误码占比、失败数等信息。
- 错误码以占比从高到低排序,最多显示三种占比最高的错误码,其余错误码统一归类为others。
- 每种错误码都可以展开查看其具体出现的API名称、失败数等信息。
- 单击表格中的API名称可以跳转至明细页签查看具体API的请求视图、响应时间视图等信息。
- 单击表格中的错误码或失败数可以查看此异常状态的相关采样日志。
明细
在报告详情页面,单击明细页签,显示压测场景中所有的API相关指标、业务详情、SLA的统计情况以及云监控详情。
API信息
此区域展示了压测场景中所有的API和相关指标,包括各API的请求成功率、失败数、平均RT等信息。
- 您可以根据需求从展示指标下拉列表中选择要查看的指标。
- 单击表格中的API名称可以跳转至明细页签查看具体API的请求视图、响应时间视图等信息。
- 单击表格中的异常数可以查看对应API失败请求的采样日志。
- 时间指标显示了压测的开始时间和结束时间,滑动时间指标的指针可以选择API信息统计的时间段。
业务详情
展示了全场景视图和串联链路中单个API的业务详情,包括请求视图、并发数和响应时间等。
说明 对相关指标的解读,请参见测试指标。
SLA统计
如果您在创建压测场景时,添加了SLA指标监控,则在压测报告的明细页签,单击SLA统计页签,可查看压测过程中触发的SLA警告、停止压测的事件记录,以及各个API的具体事件。
云监控详情
若您在创建场景时,使用了云监控,则在压测报告的明细页签,单击云监控详情页签,可以查看相关监控信息。具体操作,请参见查看监控详情。
施压机监控
在施压机监控页签中可查看CPU使用率、Load1指标、内存利用率、GC耗时等指标。
回溯
在报告详情页面,单击回溯页签。然后滑动指针,选择某一时间,可以回溯查看某一秒各API的压测数据。
对比压测报告
PTS支持对比同一个场景(即场景ID相同)的压测报告。
-
登录PTS控制台,在左侧导航栏选择性能测试 > 场景列表。
-
在场景列表页面,单击目标场景操作列的编辑。
-
在编辑场景页面,单击压测报告页签,然后选择需要对比的报告,单击左下方报告对比。
PTS会自动展示压测的数据信息、全场景数据的对比结果。您还可以在压测报告页签下单击基线设置,设置基线数据,作为数据对比的标准。具体操作,请参见设置性能基线。
查看JMeter压测报告
使用JMeter压测模式完成压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍JMeter压测报告详情。
功能入口
-
登录PTS控制台,在左侧导航栏选择性能测试 > 报告列表。
-
在报告列表页面,选择JMeter场景类型,根据时间、场景名称或报告ID等关键字进行搜索。
说明 JMeter压测模式下的压测报告会有JMeter标签图标。
-
在目标压测报告的操作列,单击查看报告。
压测场景
压测报告第一部分显示整个压测场景的相关业务指标。
信息 | 说明 |
---|---|
VUM | 本次压测消耗的资源总数,单位是VUM (每虚拟用户每分钟),请参见常见问题。 |
场景并发 | 当前施压的并发值,如果在预热阶段则未达到配置并发,预热结束后即为配置的并发值。 |
场景TPS(s) | 所有Agent统计周期内的总请求数除以时间所得。 |
总请求数 | 整个场景在压测过程中发出去的总请求数。 |
成功RT Avg(ms) | 所有成功请求的平均RT。 |
失败RT Avg(ms) | 所有失败请求的平均RT。 |
成功率 | 所有Agent统计周期内全场景请求成功率。 |
压力来源 | 发起压测的压力来源,包括国内公网和阿里云VPC内网。 |
指定IP数 | 场景施压配置中配置的来源IP个数。 |
业务指标
压测报告的概览页签,显示整个场景下所有的全场景和所有Sampler的压测情况。
业务指标说明:
业务指标 | 说明 |
---|---|
Sampler名称 | 包括全场景和所有Sampler的名称。 |
总请求数 | 整个场景在压测过程中发出去的总请求数。 |
平均TPS | 压测周期内,当前场景的平均TPS值。TPS = Sampler压测期间的全部请求数/压测时长。 |
成功率 | 压测中此Sampler的成功率。单击成功/失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX和其他异常导致的请求失败的个数。其中单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、占比等情况。 |
平均响应时间 | 压测中此Sampler的平均响应时间。单击详情,查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
说明 监控数据的来源基于Backend Listener进行了简单的聚合计算。施压Agent的统计采样周期是15秒,数据汇总计算的周期也是15秒,故可能会有数据延迟的情况。
场景详情
在压测报告的明细 > 场景详情页签下,显示了全场景视图和各Sampler的业务详情,包括请求详细视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
-
请求详细视图
包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情等。更多详细指标说明,请参见测试指标。
-
性能对比视图
- 线程数与响应耗时(RT)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 线程数与吞吐率关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(RT)和请求数占比的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
JMeter日志
在压测报告的明细 > JMeter日志页签下,可以查看并检索日志的相关信息。
施压机性能
压测报告的明细 > 施压机性能页签,显示了压测过程中所有施压机的GC每分钟的瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线等信息。您还可以筛选查看特定施压机的性能信息。
说明 施压机信息最多保留30天。
监控详情
若您添加了云监控,需要查看相关监控信息,请参见查看监控详情。
采样日志
在报告详情页面单击查看采样日志,根据压测Sampler、响应状态等筛选日志,然后在对应的日志操作列单击查看详情,可以查看采样日志。在压测执行时或者压测报告中,通过查看压测采样日志,可以快速定位问题。
General
General页签中展示了采样日志的日志字段和字段值。
Timing瀑布流
在Timing瀑布流页签中展示了各接口的耗时信息。
子请求详情
若JMeter脚本中配置了从HTML文件嵌入资源(Embedded Resources from HTML Files),日志详情页面会出现子请求详情页签。可通过选择特定的子请求,可筛选出对应的请求日志。此时Timing页签下也将显示总请求耗时和每一个子请求的耗时情况。
调用链视图
调用链视图页面,展示了被压测接口上下游的调用链路详情,调用链更多详情信息,请参见查看调用链路详情。
查看多协议压测报告
在多协议压测过程中,您可以查看实时性能数据。完成压测后,系统将自动获取压测过程中的数据,形成压测报告。本文介绍多协议压测报告中各部分详情。
压测报告入口
-
登录PTS控制台,在左侧导航栏选择性能测试 > 报告列表。
-
单击目标报告操作列的查看报告。
说明 在报告详情页面,单击右上角的报告导出,然后根据需要选择有水印版本或无水印版本,可以导出目标压测报告的PDF版本。
查看采样日志
在报告详情页,单击右上角的查看采样日志,然后在弹出的查看日志面板,单击操作列的点击查看详情,可以查看详细采样日志。在压测执行时或者压测报告中,通过查看压测采样日志,您可以快速定位问题。
General
General页签展示了采样日志的日志字段和字段值。
Timing瀑布流
Timing瀑布流页签展示了各接口的耗时信息。
调用链视图
调用链视图页签展示了被压测接口上下游的调用链路详情。更多信息,请参见查看调用链路详情。
查看压测场景信息
数据信息
您可以在数据信息区域(图示中①)查看以下参数信息。
参数 | 说明 |
---|---|
请求成功率(%) | 统计周期内全场景请求成功率。 |
平均RT(成功/失败) | 统计周期内成功和失败请求的平均RT。 |
TPS | 统计周期内的总请求数除以压测时间所得。 |
并发 | 该压测场景下设置的施压并发数。 |
异常数 | 压测过程中产生的异常。单击数字区域可以查看异常的日志详情。 |
总请求数 | 整个场景在压测过程中发送的总请求数。 |
施压信息、配置信息和计费信息
您可以在图示中②的区域查看该压测场景的施压信息、配置信息和计费信息。
参数 | 说明 |
---|---|
施压信息 | |
开始时间 | 该场景下压测开始的时间。 |
结束时间 | 该场景下压测结束的时间。 |
压测时长 | 压测实际耗费的总时长。 |
配置信息 | |
压力来源 | 在场景施压配置中所选的发起压测的压力来源。 |
配置时长 | 在场景施压配置中所设置的压测时长。 |
流量模型 | 在场景施压配置中所选的压测流量模型。 |
指定IP数 | 在场景施压配置中所设置的施压引擎数。 |
计费信息 | |
消耗VUM | 本次压测消耗的资源总数。 |
说明 若您发起压测的压力来源选择的是阿里云VPC内网时,在配置信息区域您还可以看到VPC、安全组、交换机的实例信息。
压测基础指标
图示中③的区域展示了该压测场景的TPS/并发、平均RT和请求成功率的时序曲线图。您可以将光标移动到图表上,查看具体时间点所对应的状态。
说明 若为MQTT压测场景,您还可以看到客户端连接数、接收消息TPS、发送消息TPS的时序曲线图。
查看业务指标
压测报告的概览页签展示了该压测场景下各测试节点的压测情况。
参数 | 说明 |
---|---|
Sampler名称 | 全场景以及所有测试节点的名称。 |
总请求数 | 该场景下,在压测过程中发出的总请求数。 |
平均TPS | 压测周期内,该场景的平均TPS值。TPS=该测试节点在压测期间的全部请求数/压测时长。 |
成功率 | 压测过程中,此测试节点的成功率(绿色数字表示成功,红色数字表示失败)。单击成功或失败的数字,可快捷查看对应日志。单击详情,可查看2XX、3XX、4XX、5XX或其他异常导致的请求失败的个数。单击其他异常下的数字,会显示异常信息的统计情况,包括统计排名、错误信息、错误数和占比。 |
平均响应时间 | 压测中此测试节点的平均响应时间。单击详情,可查看最大、最小及其各分位的响应时间。 |
流量(发送/接收) | 分别显示发送和接收到的流量数。 |
查看场景详情
在压测报告的明细 > 场景详情页签,展示了全场景视图和各测试节点的业务详情,包括请求详情视图和性能对比视图。
说明 仅在非固定量级模式下,会展示性能对比视图,包括线程数与吞吐率、响应耗时(RT)的关系、RT分布请求数占比。
请求详情视图
该视图包括状态码统计图、场景并发图、请求(TPS)视图、成功率、响应时间、流量详情。更多详细指标说明,请参见测试指标。
性能对比视图
- 线程数与响应耗时(RT)关系图:显示了RT如何随并行线程数量的变化而变化。当许多用户同时请求服务器时,服务器需要更长的响应时间。
- 线程数与吞吐率关系图:显示了活跃线程数的服务器总响应吞吐率,它根据访问应用程序的用户数量显示了统计上的最大可能吞吐量。
- 响应耗时(RT)和请求数占比的关系图:显示了请求数占比如何随RT的变化而变化,当许多用户同时请求服务器时,服务器需要更长的响应时间。
查看压测日志
在压测报告的明细 > 压测日志页签,您可以查看并检索日志相关信息。
查看施压机性能
在压测报告的明细 > 施压机性能页签,展示了压测过程中所有施压机的GC瞬时次数和耗时、CPU使用率、Load5、内存利用率和网络流量的时序曲线图。您还可以筛选查看特定施压机的性能信息。
查看采样日志
压测采样日志主要由压测API的请求详情、响应详情和请求核心生命周期的耗时信息三部分组成,您可以在压测执行时或者压测报告中,通过查看压测采样日志,快速定位问题。
前提条件
成功发起一次压测,具体操作,请参见如何在一分钟发起压测
背景信息
采样日志按照1%频率进行收集,保存30天。
操作步骤
-
在压测中页面或报告详情页面,单击右上角的查看采样日志。
-
在查看日志面板,填写筛选条件,单击查询。
-
压测Sampler:只能选择单个压测API。
-
响应状态:可在列表中选择多个,包括请求异常状态和业务状态(成功或失败);业务状态仅对设置了断言的压测场景有效。
-
关键字搜索:按照引擎采样ID进行模糊搜索。例如,0:1:2,其中0表示第一个串联链路,1表示该串联链路的第一个并发,2为某一个施压机的标识。相同引擎采样ID表示同一台施压引擎上、同一个串联链路的同一个并发顺序请求的日志。
-
时间范围:指定日志发生的时间,最小单位是秒。
-
RT范围:输入最小RT和最大RT,根据响应时间的范围来筛选日志。
-
响应状态码
:根据状态码来筛选日志,例如200,302等。
说明 2020年8月14日前的历史日志,暂不支持依据状态码查询。
-
采样类型:选择采样类型。
-
-
在搜索结果列表中找到目标日志,单击操作列的点击查看详情,可以查看详细采样日志。在压测执行时或者压测报告中,通过查看压测采样日志和调用链路信息,可以快速定位问题。
日志详情包括以下信息:
-
General页签展示了采样日志的日志字段和字段值。
-
Timing瀑布流页签展示该请求在核心生命周期的耗时情况。
- DNS Lookup:执行DNS查询所用的时间。
- Get Connected:建立连接所用的时间。
- Request Sent:发出网络请求所用的时间。
- Waiting(TTFB):等待初始响应所用的时间。 此时间将捕捉到服务器往返的延迟时间,以及等待服务器传送响应所用的时间。
- Content Download:接收响应数据所用的时间。
- Reuse:复用连接所用的时间。
说明 采样日志中Timing仅统计请求在核心生命周期的耗时情况,方便您定位问题,未覆盖请求所有阶段的耗时。
-
调用链视图页面,展示了被压测接口上下游的调用链路详情,调用链更多详情信息,请参见查看调用链路详情。
-
设置性能基线
性能基线可以作为您压测报告的标准,通过压测报告与基线的对比,帮助您更好的分析压测结果,优化产品性能。本文介绍如何设置基线,以及如何对比压测报告与基线。
前提条件
您需要通过以下任意一种方式将已有的压测报告先设为基线。
-
在编辑场景页面,单击压测报告页签,然后单击目标压测报告操作列的设为基线,在对话框中单击继续。
-
在PTS控制台左侧导航栏选择性能测试** > 报告列表,单击目标报告操作列的查看报告,在报告详情页面,然后单击右上角的基线设置,然后在对话框中单击确认。
说明 压测报告数据保留30天,当超过30天后,即无法将此报告设置为基线。
设置基线
-
登录PTS控制台,在左侧导航栏选择性能测试 > 场景列表。
-
在场景列表页面,单击目标场景操作列的编辑。
-
在编辑场景页面,单击压测报告页签,单击基线设置。
-
在基线设置页面,单击各参数的图标,修改基线的具体参数,然后单击确定。
基线指标包括全场景和各个API的压测指标。
指标 描述 平均RT(ms) RT业务响应时间(Response Time),平均RT是所有API的RT平均值,单位为ms。 平均TPS值 TPS系统每秒处理事务数(Transaction Per Second),平均TPS表示压测周期内,该场景TPS的平均值。 业务成功率 压测中全场景的业务成功率,只有设置了检查点(断言)此指标才有效。 业务失败数 压测中全场景的业务失败的总数,只有设置了检查点(断言)此指标才有效。 请求成功率 压测中全场景的请求成功率。 请求失败数 压测中全场景的请求失败的总数。 90分位RT(ms) 将采集到的RT数据,从小到大排列,90分位RT就是排在90%位置的值,更多信息, 请参见压测报告中的分位值是什么含义?。 99分位RT(ms) 将采集到的RT数据,从小到大排列,99分位RT就是排在99%位置的值,更多信息, 请参见压测报告中的分位值是什么含义?。 指标 描述 平均TPS值 TPS系统每秒处理事务数(Transaction Per Second),平均TPS表示压测周期内,该API的TPS的平均值。 平均RT(ms) RT业务响应时间(Response Time),平均RT是该API的RT平均值,单位为ms。 最大RT(ms) RT业务响应时间(Response Time),最大RT是该API的最大RT值,单位为ms。 最小RT(ms) RT业务响应时间(Response Time),最小RT是该API的最小RT值,单位为ms。 业务成功率 压测中该API的业务成功率,只有设置了检查点才会有此指标。 业务失败数 压测中该API的业务失败的总数,只有设置了检查点才会有此指标。 请求成功率 压测中该API的请求成功率。 请求失败数 压测中该API的请求失败的总数。 50分位RT(ms) 将采集到的RT数据,从小到大排列,50分位RT就是排在第50%位置的值。更多信息, 请参见压测报告中的分位值是什么含义?。 70分位RT(ms) 将采集到的RT数据,从小到大排列,70分位RT就是排在第70%位置的值。更多信息, 请参见压测报告中的分位值是什么含义?。 90分位RT(ms) 将采集到的RT数据,从小到大排列,90分位RT就是排在第90%位置的值。更多信息, 请参见压测报告中的分位值是什么含义?。 99分位RT(ms) 将采集到的RT数据,从小到大排列,99分位RT就是排在第99%位置的值。更多信息, 请参见压测报告中的分位值是什么含义?。 平均连接时间 该API请求和服务端的建连平均时间,单位为ms。 请求接收时间 接收该API请求的平均时间,单位为ms。 请求发送时间 发送该API请求的平均时间,单位为ms。 请求等待时间 等待该API请求的平均时间,单位为ms。
对比基线
基线设置完成后,可以将压测报告与基线进行对比,帮助您更好的对比压测结果。
-
登录PTS控制台,在左侧导航栏选择性能测试 > 场景列表。
-
在场景列表页面,单击目标场景操作列的编辑。
-
在编辑场景页面,单击压测报告页签,选择需要进行对比的报告,然后单击报告对比。
在报告对比页面,会自动展示压测报告与基线的数据信息和全场景数据的对比结果。
查看监控详情
若您在压测时添加了云资源监控,可以在压测报告中查看各项监控指标,帮助您发现系统性能瓶颈。
查看云资源监控详情
-
登录PTS控制台,在左侧导航栏选择性能测试 > 报告列表。
-
在报告列表页面,选择场景类型,按时间、场景名或报告ID等关键字进行搜索。
-
在目标压测报告操作列单击查看报告。
-
在具体压测报告页选择明细 > 云监控详情页签。
-
在
云监控详情文章来源:https://www.toymoban.com/news/detail-469378.html
页签选择目标业务分组,然后按需查看各项监控信息。文章来源地址https://www.toymoban.com/news/detail-469378.html
- SLB监控详情:在SLB监控详情页,可查看整个压测过程中各SLB的端口新建连接数、端口丢弃连接数、端口流出带宽、端口流入带宽和QPS等数据。关于SLB监控详情,请参见负载均衡。
- ECS监控详情:在ECS监控详情页,可查看整个压测过程中各ECS的CPU使用率、内存利用率、各网卡网络流入速率、磁盘读写速度和Load5。关于ECS监控数据详情,请参见监控项说明。
- RDS监控详情:在RDS监控详情页可查看整个压测时间内各RDS的连接数使用率、CPU使用率、磁盘使用率、IOPS和内存使用率。关于RDS监控详情,请参见云数据库RDS版(RDS)。
到了这里,关于PTS测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!