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提供的高級功能編排壓測場景并發起壓測,可參考以下文檔: