全部产品
Search
文档中心

性能测试:导入场景

更新时间:Oct 30, 2024

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

检查点配置:

  • checkers:单个检查点配置。

    • expectValue:期望值。

    • operator:操作符。

      • gt:大于

      • gte:大于等于

      • lt:小于

      • lte:小于等于

      • eq:等于

      • n_eq:不等于

      • ctn:包含

      • n_ctn:不包含

      • exist:存在

      • n_exist:不存在

      • belong:属于

      • n_belong:不属于

      • regex_match:正则匹配

  • point:检查对象。

  • type:检查点类型:

    • BODY_TEXT表示文本响应体。

    • BODY_JSON表示JSON格式的响应体。

    • HEADER表示header。

    • COOKIE表示cookie。

    • STATUS_CODE表示响应状态码。

    • EXPORTED_PARAM表示出参。

endStep

虚拟用户模式时表示业务会话上的最大虚拟用户;RPS模式时表示API上的最大RPS。

headers

HTTP header配置:

  • name:header的key。

  • value:header的value。

method

请求方法,只支持 GET/POST/PUT/DELETE。

postActions

后置操作:

  • type:类型,目前只支持 export,表示出参。

  • params:出参配置:

    • name:出参名。

    • value:出参表达式。

    • type:同检查点类型type。

body

请求方法为POST或PUT时,对应的请求body:

  • contentType:类型。

  • value:body内容。

preActions

前置操作。

protocol

协议类型,默认http。

redirectCountLimit

是否重定向,0表示否,10表示是。

timeoutInMilliSeconds

以毫秒为单位的超时时间。

condition

defaultAction

默认行为:

  • action:动作。

    • jump:跳转。

    • continue:继续。

    • return :结束。

  • target:目标API的ID。

  • conditions:判断条件:

    • param:参数名。

    • operator:运算符。

    • value:对比值。

actions

叠加条件。

dam

type

配置类型。

  • BY_TIME:表示按时间集合。

  • BY_USER:表示按用户集合。

target

目标量级。

datalnit

definitions

键值对结构,对应自定义参数。

references

引用的文件参数:

  • column:列名。

  • fileKey:文件索引。

  • fileName:文件名。

  • useOnce:是否只轮询一次。

  • asBase:是否作为基准列。

  • accessMethod:读取方式。

    • inOrder:表示按顺序读取。

    • inRandom:表示随机读取。

  • index:列索引。

dataDefine

definitions

键值对结构。

dataStore

dataSize

数据导出量级。

dataConfig

数据导出配置:

  • type:

    • COOKIE:cookie。

    • FILE:文件参数。

    • PARAM:出参。

    • INSTRUCTION:数据指令。

  • params:参数列表。

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场景页面,您可以看到脚本内容已转化为对应的API压测信息。

说明
  • 可选择的脚本类型有Postman(JSON)、HTTP Archive Format(.har)、YAML和Swagger脚本(.yml,.json)。一个压测场景仅能导入一个脚本,在未保存场景配置前,可重新上传脚本覆盖之前的导入内容。

  • PTS支持导入的脚本说明及字段含义,请参见脚本说明。请勿导入包含PTS不支持的类型或协议的脚本,若导入的脚本不合规,控制台将弹出错误提示框。