本文主要介绍PTS各个接口的参数说明。

Scene实体类的各参数说明

CreatePtsScene的入参Scene:pts-api-entity二方包中Scene类的toJSONString串。

表 1. Scene实体类的各参数说明
名称 类型 是否必选 示例值 描述
sceneId String 87ALSXS 场景ID,创建场景后系统生成的唯一表示。
sceneName String 快速压测 场景名称。长度不超过30个字符。
createTime String 2020-01-02 12:00:00 创建时间。创建场景后系统生成。
modifiedTime String 2020-01-02 12:00:00 修改时间。每次修改场景后系统生成。
status String Draft 场景状态。创建场景后系统生成。
  • Draft:草稿态,不能设置为定时任务。
  • WaitStart:待启动。
  • Debugging:调试中。
  • Running:运行中。
  • Cron:已设置定时任务。
relationList Array [{"apiList":[{"apiName":"链路1的第一个API","body":{"bodyValue":"{\"key1\":\"111\",\"key2\":\"222\"}","contentType":"application/x-www-form-urlencoded"},"checkPointList":[{"checkPoint":"userId","checkType":"EXPORTED_PARAM","expectValue":"111","operator":"ctn"}],"exportList":[{"count":"0","exportName":"userId","exportType":"BODY_JSON"}],"headerList":[{"headerName":"userName","headerValue":"张三"}],"method":"GET","url":"https://www.aliyundoc.com"}],"fileParameterExplainList":[{"baseFile":true,"cycleOnce":false,"fileParamName":"city,name"}],"relationName":"链路1"}] 场景配置中的链路配置信息。
loadConfig Struct {"agentCount":1,"apiloadconfigList":[{"rpsBegin":10,"rpsLimit":100}],"configuration":{"allRpsBegin":10,"allRpsLimit":100},"maxRunningTime":1,"testMode":"tps_mode"} 施压配置信息。
advanceSetting Struct {"connectionTimeoutInSecond":3,"domainBindingList":[{"domain":"www.aliyundoc.com","ips":["1.1.xx.xx","2.2.xx.xx"]}],"logRate":1,"successCode":"429,40"} 高级设置信息。
fileParameterList Array [{"fileName":"city.csv","fileOssAddress":"https://pts-pub.oss-cn-hangzhou.aliyuncs.com/city.csv"}] 文件参数配置信息。文件首行需要是对应的参数名。
globalParameterList Array [{"paramName":"userId","paramValue":"111111"}] 全局自定义参数配置信息。

Relations实体类的各参数说明

表 2. Relations实体类的各参数说明
名称 类型 是否必选 示例值 描述
relationId String 45SFD 链路ID,创建场景后系统生成。
relationName String 下单链路 链路名称。长度不超过30个字符。
apiList Array [{"apiName":"链路1的第一个API","body":{"bodyValue":"{\"key1\":\"111\",\"key2\":\"222\"}","contentType":"application/x-www-form-urlencoded"},"checkPointList":[{"checkPoint":"userId","checkType":"EXPORTED_PARAM","expectValue":"111","operator":"ctn"}],"exportList":[{"count":"0","exportName":"userId","exportType":"BODY_JSON"}],"headerList":[{"headerName":"userName","headerValue":"张三"}],"method":"GET","url":"https://www.aliyundoc.com"}] 链路中的API配置信息。
fileParameterExplainList Array [{"baseFile":true,"cycleOnce":false,"fileParamName":"city,name"}] 该链路使用到的文件参数说明信息。

FileParameterExplain实体类的各参数说明

表 3. FileParameterExplain实体类的各参数说明
名称 类型 是否必选 示例值 描述
fileName String 用户名文件.csv 文件名。长度不超过30个字符。
fileParamName String key1,key2 文件使用的参数列名。多个参数使用英文逗号(,)隔开。
cycleOnce Boolean true 文件是否轮询一次。默认false,若指定为true,则在使用到该文件的地方都只轮询一次,同时改文件也会作为基准文件。
baseFile Boolean true 是否做为基准文件。默认false。在同一个链路中使用到两个文件A(基准文件)、B(非基准文件),则若文件B行数大于文件A,大于的行数会被截断;若文件B行数小于文件A,则会循环重复到文件A的行数。

LoadConfig实体类的各参数说明

表 4. LoadConfig实体类的各参数说明
名称 类型 是否必选 示例值 描述
testMode String concurrency_mode 压力模式。

目前有两种取值:

  • concurrency_mode:并发模式。
  • tps_mode:RPS模式。
autoStep Boolean true 是否自动递增,只有在并发模式下有效,即testMode=concurrency_mode时。
increment Integer 30 递增百分比,取值范围[10,100],且是整十倍。只有在并发模式且是自动递增模式下有效,即testMode=concurrency_mode且autoStep=true时。
keepTime Integer 3 单量级持续时长,单位分钟,一定是小于施压时长maxRunningTime。
configuration Struct {"allRpsBegin":10,"allRpsLimit":100} 场景施压并发或RPS配置信息。
  • 若配置该值,则在并发模式下(testMode=concurrency_mode)不用再配置relationLoadConfig信息,系统会自动计算每个链路的起始、最大并发值。
    • 链路起始并发=配置起始并发/链路数。

    • 链路最大并发=配置最大并发/链路数。

  • 若配置该值,则在RPS模式下(testMode=tps_mode)不用再配置apiLoadConfig 信息,系统会自动算每个API的起始、最大RPS值。
    • API起始RPS=配置起始RPS值/API数
    • API最大RPS=配置最大RPS值/API数
maxRunningTime Integer 10 压测时长,单位分钟。取值范围1~1440。
agentCount Integer 20 指定使用的机器数。
  • 并发模式下(testMode=concurrency_mode):并发值必须大于250才能使用,最大指定机器数不能超过场景配置最大并发/250(向上取整)。
  • RPS模式下(testMode=tps_mode):RPS值必须大于2000才能使用,最大指定机器数不能超过场景配置最大RPS/2000(向上取整)。
apiLoadConfigList Array [{"rpsBegin":10,"rpsLimit":100}] 每个API的起始和最大RPS配置信息。

在RPS模式下(testMode=tps_mode),没有配置configuration字段时必须使用。

与ApiList一一对应,即apiLoadConfigList.get(0) 是 ApiList.get(0) 的RPS值限制信息。

relationLoadConfigList Array [{"concurrencyBegin":10,"concurrencyLimit":100}] 每个链路的起始和最大并发配置信息。

在并发模式下(testMode=concurrency_mode),没有配置configuration字段时必须使用。

与relationList一一对应,即relationLoadConfigList.get(0)relationList.get(0)的并发值限制信息。

Configuration实体类的各参数说明

表 5. Configuration实体类的各参数说明
名称 类型 是否必选 示例值 描述
allConcurrencyBegin Integer 10 全场景开始并发。

在并发模式下(testMode=concurrency_mode)可设置,设置该值后,可不用再配置relationLoadConfigList ,每个链路起始并发=allConcurrencyBegin/链路数。

allConcurrencyLimit Integer 20 全场景最大并发。

在并发模式下(testMode=concurrency_mode)可设置,设置该值后,可不用再配置relationLoadConfigList ,每个链路最大并发=allConcurrencyLimit/链路数。

allRpsBegin Integer 10 全场景起始RPS。

在RPS模式下(testMode=tps_mode)可设置,设置该值后,可不用再配置apiLoadConfigList ,每个API起始RPS值=allRpsBegin/API数。

allRpsLimit Integer 20 全场景最大RPS。

在RPS模式下(testMode=tps_mode)可设置,设置该值后,可不用再配置apiLoadConfigList ,每个API最大RPS值=allRpsLimit/API数。

ApiLoadConfig实体类的各参数说明

表 6. ApiLoadConfig实体类的各参数说明
名称 类型 是否必选 示例值 描述
rpsBegin Integer 10 API的起始RPS值。在RPS模式下(testMode=tps_mode)可设置。
rpsLimit Integer 20 API的最大RPS值。在RPS模式下(testMode=tps_mode)可设置。

RelationLoadConfig实体类的各参数说明

表 7. RelationLoadConfig实体类的各参数说明
名称 类型 是否必选 示例值 描述
concurrencyBegin Integer 10 链路的起始并发。在并发模式下(testMode=concurrency_mode)可设置。
concurrencyLimit Integer 20 链路的最大并发。在并发模式下(testMode=concurrency_mode)可设置。

AdvanceSetting实体类的各参数说明

表 8. AdvanceSetting实体类的各参数说明
名称 类型 是否必选 示例值 描述
logRate Integer 1 日志采样率。取值范围:1、10、20、30、40、50。分别表示1%,%10,%20,%30,40%,50%。
connectionTimeoutInSecond Integer 5 超时时间,单位秒。
successCode String 429,403 自定义成功状态码。多个状态码用英文逗号(,)隔开。
domainBindingList List<DomainBinding> [{"domain":"www.aliyundoc.com","ips":["1.1.xx.xx","2.2.xx.xx"]}] 域名与IP解析绑定关系。

FileParameter实体类的各参数说明

表 9. FileParameter实体类的各参数说明
名称 类型 是否必选 示例值 描述
fileName String 用户名文件.csv 文件名。长度不超过30个字符。
fileOssAddress String https://www.aliyundoc.com 文件的OSS地址。必须是公网可访问的。

GlobalParameter实体类的各参数说明

表 10. GlobalParameter实体类的各参数说明
名称 类型 是否必选 示例值 描述
paramName String userName 全局参数名。长度不超过30个字符。
paramValue String 张三 全局自定义参数的值,不可参数化。

API实体类的各参数说明

表 11. API实体类的各参数说明
名称 类型 是否必选 示例值 描述
apiId String 4FG5F API的ID。创建场景后系统生成。
apiName String 支付接口 API名称。长度不超过30个字符。
url String https://www.aliyundoc.com 压测的URL。长度不超过2000个字符。
method String GET 请求方法。目前只支持GET、POST、PUT、DELETE。
body Struct {"contentType":"application/x-www-form-urlencoded","bodyValue":"{"key1":"value2","key2":"value2"}"} 请求body。
timeoutInSecond Integer 5 API超时时间,单位秒。默认5s,取值范围1~60。
redirectCountLimit Integer 0 重定向次数。允许API重定向次数,取值范围:0或10。
headerList Array [{"headerName":"userName","headerValue":"张三"}] Header配置。
exportList Array [{"count":"0","exportName":"userId","exportType":"BODY_JSON"}] 导出参数配置。
checkPointList Array [{"checkPoint":"userId","checkType":"EXPORTED_PARAM","expectValue":"111","operator":"ctn"}] 检查点配置。

Body实体类的各参数说明

表 12. Body实体类的各参数说明
名称 类型 是否必选 示例值 描述
contentType String application/x-www-form-urlencoded Body类型。
bodyValue String {"key1":"value2","key2":"value2"} Body值。

Header实体类的各参数说明

表 13. Header实体类的各参数说明
名称 类型 是否必选 示例值 描述
headerName String userName Header字段名。
headerValue String 张三 Header的值。

Export实体类的各参数说明

表 14. Export实体类的各参数说明
名称 类型 是否必选 示例值 描述
exportType String BODY_TEXT 导出参数类型。
  • BODY_TEXT:请求体text。
  • BODY_JSON:请求体JSON。
  • HEADER:请求头。
  • STATUS_CODE:响应状态码。
exportName String userId 出参名。
exportValue String data.userId 出参解析表达式。
count String 0 第几个匹配项。数字或者random。

CheckPoint实体类的各参数说明

表 15. CheckPoint实体类的各参数说明
名称 类型 是否必选 示例值 描述
checkPoint String userId 检查对象。

type=EXPORTED_PARAM ,表示出参名,其余不用填写。

checkType String STATUS_CODE 检查点类型。
取值范围:
  • BODY_TEXT:响应body。
  • HEADER:响应header。
  • STATUS_CODE:响应状态码。
  • EXPORTED_PARAM:出参。
operator String lte 检查条件。

取二方包中CheckPointOperator对象的值:

  • gt :大于。
  • gte:大于等于。
  • lt:小于。
  • lte :小于等于。
  • eq:等于。
  • n_eq:不等于。
  • ctn:包含。
  • n_ctn:不包含。
  • exist:存在。
  • n_exist:不存在。
  • belong:属于。
  • n_belong:不属于。
  • regex_match:正则匹配。
expectValue String 200 期望值。

DomainBinding实体类的各参数说明

表 16. DomainBinding实体类的各参数说明
名称 类型 是否必选 示例值 描述
domain String www.aliyundoc.com 域名。
ips Array ["1.1.xx.xx","2.2.xx.xx",] 域名对应的IP。