若您需要压测的业务中包括用户登录、注册的场景,可以借助PTS提供的文件参数功能,模拟不同用户的登录、注册的压测场景。本文介绍如何使用文件参数构造动态变化的URL来对用户注册或登录接口发起压测。
前提条件
已开通PTS服务
准备一个CSV
格式的参数文件,格式如下。关于参数文件的更多要求,请参见参数文件规范。
username,password
user1,Password1
user2,Password2
user3,Password3
方案概览
若您在压测时需要模拟多用户注册或登录的场景,可以通过在压测场景中导入包含用户名和密码的参数文件,构造压测API时关联导入的参数来实现。
关于登录场景的PTS支持能力的信息,请参见使用Cookie模拟登录场景。
本文分两个场景为您介绍如何使用参数化模拟多用户注册或登录。
场景一:模拟多用户注册
登录PTS控制台,选择,然后单击PTS压测。
添加参数文件到数据源
单击数据源管理,并在文件数据源页签中单击+ 上传文件,选择本地参数文件并上传。
选中首行作为参数名,选中后无需手动定义参数名,PTS读取参数文件时将跳过首行的数据。如果参数文件第一行不是参数名,则必须根据业务场景定义每列数据的参数名。
添加数据配置节点
在场景配置页签中添加压测API,然后单击添加指令右侧的下拉箭头,选择数据配置。
在数据源参数设置页签下,选择设置好的参数名。
说明 选中数据轮询一次能够保证在使用数据文件组装请求时,每行只用到一次,避免重复使用。当数据轮询一次用尽,不论设置的压测量级是多少,该压测场景将停止生成新的压测请求。
若不选中数据轮询一次,导入的参数会在压测中循环使用。
数据轮询一次和基准列均只能指定一个参数,设置轮询一次之后基准列无法设置。
API参数配置
压测URL:输入您的待压URL,本示例使用http://web.example.com/register
。
请求方式:选择POST
。
Body定义:Content-Type
类型选择x-www-form-urlencoded
,然后单击编辑区域右上角的文本编辑,在文本编辑框中输入{"username":"${username}","password":"${password}"}
。
(可选)实际场景中往往需要更复杂的配置,更多信息请参见:HTTP节点,参数,指令。
压力模式配置
压力来源:选择公网,如果您在阿里云内网环境,可选择阿里云VPC内网。
压力模式:选择虚拟用户模式。以虚拟用户模式发起压测,更适合客户端发起的场景,而RPS模式是站在服务端的视角,衡量系统吞吐量。
递增模式:选择手动调速。
最大虚拟用户数:虚拟用户模式下,需要填写最大虚拟用户数,例如10。
压测总时长:例如1分钟。
其他可保留默认值。
(可选)您可在高级设置中配置域名绑定,使用域名绑定可在多次压测时快速切换压测地址。
调试并启动压测
调试场景可验证配置是否合理,避免压测失败,建议您先调试场景。
单击保存去压测,在温馨提示页面,选择立即执行并勾选确认本次压测已获得准许并遵守当地法律,然后单击启动压测。
场景二:模拟多用户登录
使用参数化模拟多用户登录配置与用户注册配置相同,您只需调整API配置信息。示例如下:
压测URL:输入您的待压URL,本示例使用http://web.example.com/login
。
请求方式:选择POST
。
Body定义:Content-Type
类型选择x-www-form-urlencoded
,然后单击编辑区域右上角的文本编辑,在文本编辑框中输入{"username":"${username}","password":"${password}"}
。
分析压测结果
压测结束后,系统会自动获取压测过程中的数据,例如压测场景指标、业务详情数据、监控详情数据和API采样日志等,生成压测报告,您可在压测报告页面查看。更多信息,请参见查看PTS压测报告。