下面以在线教育的典型业务场景为例,为您介绍如何在 PTS 中编排压测场景并发起压测。
要发起一次性能压测,首先需要创建一个压测场景。压测场景中包含一个或多个并行的业务,每个业务包含一个或多个串行的请求。
场景说明
某在线教育网站需要压测选课相关网页。根据业务逻辑,选课流程划分为三步,每一步的压测需求如下:
- 登录在线教育系统
- 需要构造用户的登录信息,如用户名和密码;
- 用户的登录信息(即 Cookie),需要传递给后面两个请求:查看课程列表和提交选课。
- 查看课程列表
- 将“课程 ID”传递给提交选课请求。
- 提交选课
- 使用上一个请求中的“课程ID”,构造提交选课的请求。
- 判断提交选课是否成功。
那么基本压测场景设置如下。
场景配置操作步骤
关于如何实现以上压测需求,参照以下步骤。
- 登录 PTS 控制台。
- 在左侧导航栏单击创建压测 > 快速压测。
- 在创建压测页面,填写场景名称,例如“在线教育示例”。
- 在场景配置页签下,填写压测 API 名称、URL 地址,并选择请求方法。示例如下:
-
API 名称:登录在线教育系统
-
压测 URL 地址:http://www.example.com/mocks/online/login
- 请求方法:POST
说明 该示例中,使用的域名“www.example.com” ,均为示例地址,压测中不产生真实请求。您可以根据真实业务场景填写压测 URL,或者在域名绑定页签下,为该域名绑定有效的 IP 地址,产生真实请求流量。
-
- 为模拟不同用户登录,需要使用文件参数构造用户登录信息,步骤如下:
- 在本地准备参数文件:新建一个 .csv 文件(用 Excel 编辑之后另存为 .csv 格式,或者用 Apache 的 commons-csv 来生成),构造两列数据,分别对应用户名和密码,示例如下:
- 在创建场景页面右上角,单击全局自定义参数,单击上传文件,将本地准备的参数文件上传到该场景中。
- 填写参数名,例如 “username” 和 “passwd”。
- 在本地准备参数文件:新建一个 .csv 文件(用 Excel 编辑之后另存为 .csv 格式,或者用 Apache 的 commons-csv 来生成),构造两列数据,分别对应用户名和密码,示例如下:
- 选择 Body 定义页签,选择 Body 类型并使用用户登录信息,定义该压测 API 的 Body 内容。
例如,Body 是 JSON 格式,则 Content-Type 选为 raw,在右侧下拉框中选择 JSON (application/json)。
Body 正文定义为:
{ "username": "${username}", "password": "${passwd}" }
如图所示:
说明 Body 正文中的 ${username} 和 ${passwd},为用户登录参数。您可以通过页面右上角的参数列表,快速查看并复制。当前请求的 Cookie 信息(即用户登录信息),将自动共享给该压测场景的其他 API,无需设置。
- 单击 +添加压测 API,填写第二个 API 的信息。示例如下:
- API 名称:查看课程列表
- 压测 URL 地址: http://www.example.com/mocks/online/list
- 请求方法:POST
- 为了将某个“课程 ID” 传递给下一个请求,需要提取当前 API 响应(Response)中的“课程 ID”,作为出参。
选择出参/断言定义页签,填写信息:
- 出参名:填写自定义的参数名称;
- 来源:选择 Body 的解析格式,如 JSON;
-
解析表达式:根据 Response 详情填写解析表达式。
假设,要提取第二个课程 ID,则根据以下 Response Body 示例,解析表达式为:
schedule_list[1].ID
{ "schedule_list": [ { "Name": "math", "ID": "001" }, { "Name": "english", "ID": "002" }, { "Name": "science", "ID": "003" } ] }
说明 出参的解析表达式如何定义,是否正确,可以在调试功能里使用表达式调试的功能,正确之后再同步过来即可,详见本文的 场景调试操作步骤。
如图所示:
- 单击 +添加压测 API,填写第三个 API 的信息。示例如下:
- API 名称:提交选课
- 压测 URL 地址: http://www.example.com/mocks/online/submit
- 请求方法:POST
- 选择 Body 定义页签,在 Body 中使用前一个 API 导出的出参参数“课程 ID”。
- Content-Type:选择 x-www-form-urlencode 格式。
- Key:填写自定义的 Key。
- Value:单击页面右上角的参数列表,查看串联链路参数(如“ID”),单击可复制。在 Value 框中粘贴即可。
如图所示:
- 为判断“提交选课”是否成功,为该 API 设置断言。
- 选择出参/断言定义页签,填写信息:
- 出参名:填写自定义的参数名称;
- 来源:选择 Body 的解析格式,如 TEXT;
-
解析表达式:根据 Response 详情填写解析表达式;
假设,示例中的 Response Body 如下,则解析表达式为:
result:(.+)
,注意:来源要选择 Body 的解析格式为TEXT,同样的,您也可以在场景调试中使用表达式调试的功能调试您的解析表达式;result:success
- 勾选设为断言,在断言区域,选择等于,并填写对应的信息,如“success”。
如图所示:
- 选择出参/断言定义页签,填写信息:
施压配置操作步骤
基本场景构建完成后,需要选择施压模式、设置施压量级等。
- 选择施压配置页签,填写信息,示例如下:
- 压测来源:选择国内公网;如果您在阿里云内网环境,可选择阿里云内网。
- 压测模式:选择并发模式,以虚拟用户模式发起压测,更适合客户端发起的场景;而 RPS 模式是站在服务端的视角,衡量系统吞吐量。
- 是否自动递增:关闭自动递增。
- 最大并发:并发模式下,需要填写最大并发用户数,如 10。
- 压测总时长:例如,填写 10 分钟。
其他可保留默认值。如图所示:
- 单击创建场景页面右上角保存配置。
场景调试操作步骤
- 单击创建场景页面右上角调试场景。一般调试时间在10秒至30秒。
调试结束后,可以查看所有 API 的调试详情。具体可参见场景调试。
- 选择“查看课程列表” API,单击点此去测试出参正则表达式。
- 选择来源,填写正则表达式,单击测试表达式,可验证提取的内容是否符合预期。
您也可以单击同步出参配置,将此处的表达式同步为出参。
启动压测
单击保存去压测,即可发起压测。
更多信息,请参见以下文档:
- 启动压测并调速
- 压测报告
- 出参与检查点
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/34039.html
相关推荐
-
阿里云服务器SVN概览
Subversion(简称SVN)是一个开源的版本控制系统,管理随时间改变的数据。本文介绍了SVN的概念和使用流程。 SVN简介 SVN管理的数据存放在中央资料档案库(Reposi…
-
阿里云金融分布式架构SOFAStack合并请求
当您需要发起一个合并到目标分支的请求时,可通过页面新建合并请求,进行一个交互式的评审过程,并完成最终合并。 操作步骤 在左侧导航栏进入 代码服务 > 我的仓库,选择目标代码仓…
-
阿里云容器服务自定义路由-使用手册
acs/proxy自定义代理镜像,通过 FROM dockercloud/haproxy 的方式继承自镜像 dockercloud/haproxy,动态感知容器的状态,做到后端容器…
-
阿里云服务器ESSD云盘
阿里云ESSD(Enhanced SSD,增强型SSD)云盘结合25 GE网络和RDMA技术,为您提供单盘高达100万的随机读写能力和单路低时延性能。本文介绍了ESSD云盘的性能级…
-
阿里云批量计算服务条款
服务条款 本服务条款是阿里云计算有限公司(以下简称“阿里云”)与您就批量计算服务(Batch Computing Service,简称BatchCompute)的相关事项所订立的有…
-
阿里云视频点播启用加速域名
描述 启用状态为“停用”的点播加速域名,将DomainStatus变更为online。 注意:如果域名对应账号欠费,或域名处于非法状态,则无法正常调用该接口启用点播域名。 请求参数…
-
阿里云媒体处理开通MPS服务
开通MPS服务前,您需要先进行实名认证。完成认证后,进入媒体处理控制台进行相关的授权操作。请您按照以下步骤完成开通MPS服务。 使用注册成功的阿里云账号登录 媒体处理 产品主页。 …
-
阿里云服务器基础安全服务
云服务器ECS提供了基础安全服务,包括异常登录检测、漏洞扫描、基线配置核查等。您可以在ECS控制台或者云安全中心看到您的云服务器安全状态。 背景信息 由阿里云云安全中心(Secur…
-
阿里云服务器DescribeBandwidthLimitation
.icms-tree-table-trigger { display: inline-block; width: 17px; height: 17px; margin-right:…