PTS支持將Postman(JSON)、HTTP Archive Format(.har)、YAML和Swagger腳本(.yml,.json)轉換為PTS原生的能力進行壓測,提供RPS壓測模式,支持實時調速、細致到單接口的監控等。
腳本說明
對HTTP或HTTPS協議的壓測,PTS支持將Postman(JSON)、HTTP Archive Format(.har)、YAML和Swagger腳本(.yml,.json)中有關請求的基礎信息解析為壓測場景中的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壓測的字段對應關系
表 1. 基本概念類型
YAML腳本字段 | PTS API壓測字段 |
Relations | 業務會話的集合 |
Relation | 單個業務會話 |
Disabled | 業務會話是否被禁用 |
ID | 業務會話ID |
Name | 業務會話名稱 |
Nodes | 節點集合 |
Name | 節點名稱 |
NodeId | 節點ID |
NodeType | 節點類型 |
Config | 節點配置 |
表 2. 節點類型
YAML腳本字段 | PTS API壓測字段 |
chain | API節點 |
wait | 思考時間節點 |
condition | 條件跳轉節點 |
dam | 集合點 |
dataInit | 數據配置節點 |
dataStore | 數據導出節點 |
dataDefine | 數據指令節點 |
delay | 延時節點 |
repeatBegin | 循環指令開始節點 |
repeatEnd | 循環指令結束節點 |
ifBegin | 判斷指令開始節點 |
ifEnd | 判斷指令結束節點 |
表 3. 節點配置類型
類型 | 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 | 配置類型。
|
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 |
|
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場景頁面,您可以看到腳本內容已轉化為對應的API壓測信息。
可選擇的腳本類型有Postman(JSON)、HTTP Archive Format(.har)、YAML和Swagger腳本(.yml,.json)。一個壓測場景僅能導入一個腳本,在未保存場景配置前,可重新上傳腳本覆蓋之前的導入內容。
PTS支持導入的腳本說明及字段含義,請參見腳本說明。請勿導入包含PTS不支持的類型或協議的腳本,若導入的腳本不合規,控制臺將彈出錯誤提示框。