PTS支持将JMeter(JMX)、Postman(JSON)、HTTP Archive Format(.har)、YAML和Swagger脚本(.yml,.json)转换为PTS原生的能力进行压测,提供RPS压测模式,支持实时调速、细致到单接口的监控等。
脚本说明
对HTTP或HTTPS协议的压测,PTS支持将JMeter(JMX)、Postman(JSON)、HTTP Archive Format(.har)、YAML和Swagger脚本(.yml,.json)中有关请求的基础信息解析为压测场景中的API。
JMeter脚本与PTS API压测的字段对应关系如下:
JMeter脚本字段 | PTS API压测字段 | |
Test Plan(测试计划) | 压测场景 | |
Thread Group(线程组) | 串联链路 | |
Sampler(采样器) 说明 仅支持HTTP Request。 | Name | 压测API名称 |
Server Name or IP Path Port Number | 压测URL | |
Method | 请求方法 | |
Parameters/Body Data | Body定义下的内容 | |
HTTP Header Manager(HTTP Header管理) | Headers | Header定义下的Key和Value。全局或者区域生效的Header会填充到对应区域的API中。 |
HTTP Cookie Manager(HTTP Cookie管理) | User-Defined Cookies | Header定义下的Cookie。全局或者区域生效的Cookie会填充到对应区域的API中。 |
Postman与PTS API压测的字段对应关系如下:
Postman脚本字段 | PTS API压测字段 | |
info.name | 串联链路名 | |
item[] | 为多个API | |
item[0].name | API名称 | |
item[0].request.method | 请求方法 | |
item[0].request.url.raw | 请求URL | |
item[0].request.header | key | header的key |
value | 对应的value值 | |
item[0].request.body | 请求体- POST类型下,需要看是什么Content-Type来决定展示形式。 |
JSON脚本中,可以有多个info.name(串联链路),但info平级的只能是info不可以是item。
若从Postman中Collections导出JSON脚本,建议使用V2.1。
Postman(JSON)脚本仅支持GET、POST、PUT或DELETE方法。
Postman(JSON)脚本中不支持File模式。
暂未支持同时上传及二进制类的Content-Type,无法进行转换。
YAML与PTS API压测的字段对应关系如下:
YAML脚本字段 | PTS API压测字段 |
Relations | 串联链路的集合 |
Relation | 单个串联链路 |
Disabled | 串联链路是否被禁用 |
ID | 串联链路ID |
Name | 串联链路名称 |
Nodes | 节点集合 |
Name | 节点名称 |
NodeId | 节点ID |
NodeType | 节点类型 |
Config | 节点配置 |
YAML脚本字段 | PTS API压测字段 |
chain | API节点 |
wait | 思考时间节点 |
condition | 条件跳转节点 |
dam | 集合点 |
dataInit | 数据配置节点 |
dataStore | 数据导出节点 |
dataDefine | 数据指令节点 |
delay | 延时节点 |
repeatBegin | 循环指令开始节点 |
repeatEnd | 循环指令结束节点 |
ifBegin | 判断指令开始节点 |
ifEnd | 判断指令结束节点 |
类型 | YAML脚本字段 | PTS API压测字段 |
chain | accessId | 协议ID。 |
beginStep | 并发模式时表示串联链路上的起始并发;RPS模式时表示API上的起始RPS。 | |
checkPoints | 检查点配置:
| |
endStep | 并发模式时表示串联链路上的最大并发;RPS模式时表示API上的最大RPS。 | |
headers | HTTP header配置:
| |
method | 请求方法,只支持 GET/POST/PUT/DELETE。 | |
postActions | 后置操作:
| |
body | 请求方法为POST|PUT时,对应的请求body:
| |
preActions | 前置操作。 | |
protocol | 协议类型,默认http。 | |
redirectCountLimit | 是否重定向,0表示否,10表示是。 | |
timeoutInMilliSeconds | 以毫秒为单位的超时时间。 | |
condition | defaultAction | 默认行为:
|
actions | 叠加条件。 | |
dam | type | 配置类型,BY_TIME|BY_USER 分别表示按时间、按用户集合。 |
target | 目标量级。 | |
datalnit | definitions | 键值对结构,对应自定义参数。 |
references | 引用的文件参数:
| |
dataDefine | definitions | 键值对结构。 |
dataStore | dataSize | 数据导出量级。 |
dataConfig | 数据导出配置:
| |
delay | duration | 延时时长,单位为毫秒。 |
ifBegin | ifEndNodeId | 匹配的判断结束指令节点ID。 |
operator | 操作符。 | |
param | 表达式。 | |
value | 对比值。 | |
ifEnd | ifBeginNodeId | 匹配的判断开始指令节点ID。 |
repeatBegin | repeatEndNodeId | 匹配的循环结束指令节点ID。 |
repeatEnd | repeatBeginNodeId | 匹配的循环开始指令节点ID。 |
repeatCount | 循环次数。 | |
wait | type | FIXED|NORMAL|UNIFORM分别表示固定分布、均匀分布、正态分布。 |
base | 对于固定分布代表固定值,对于均匀分布代表延迟基准,对于正态分布代表均值。 | |
scope | 对于固定分布无意义,对于均匀分布代表可变跨度,对于正态分布代表方差。 |
Swagger脚本与PTS API压测的字段对应关系如下:
Swagger脚本字段 | PTS API压测字段 |
paths.key | 请求URL。 |
paths.key.key | 请求方法。 |
paths.key.key.parameters | 请求Query参数或请求体。 |
definitions | 请求体中使用的Schema。 |
tags[0].name | 串联链路名。 |
操作步骤
相关操作
脚本导入成功后,您可以使用PTS提供的高级功能编排压测场景并发起压测,可参考以下文档: