导入场景

更新时间:2024-02-08 06:36:51

PTS支持将JMeter(JMX)、Postman(JSON)、HTTP Archive Format(.har)、YAMLSwagger脚本(.yml,.json)转换为PTS原生的能力进行压测,提供RPS压测模式,支持实时调速、细致到单接口的监控等。

脚本说明

HTTPHTTPS协议的压测,PTS支持将JMeter(JMX)、Postman(JSON)、HTTP Archive Format(.har)、YAMLSwagger脚本(.yml,.json)中有关请求的基础信息解析为压测场景中的API。

JMeter脚本与PTS 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定义下的KeyValue。全局或者区域生效的Header会填充到对应区域的API中。

HTTP Cookie Manager(HTTP Cookie管理)

User-Defined Cookies

Header定义下的Cookie。全局或者区域生效的Cookie会填充到对应区域的API中。

说明
  • HTTP Header Manager、HTTP Cookie ManagerHTTP Request Default会取所有的并集导入到每个API中。

  • Cookie相关的设置中,暂不支持导入domainpath。

  • 导入时Content-Type默认都为x-www-form-urlencoded,如果需要切换为raw请先复制,否则会清空Body的内容。

  • 对于不支持导入的信息,您可以使用PTS提供的功能实现,例如检查点(断言)指令(思考时间、集合点等)、参数化等。

PostmanPTS 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

headerkey

value

对应的value

item[0].request.body

请求体- POST类型下,需要看是什么Content-Type来决定展示形式。

说明
  • JSON脚本中,可以有多个info.name(串联链路),但info平级的只能是info不可以是item。

  • 若从PostmanCollections导出JSON脚本,建议使用V2.1。

  • Postman(JSON)脚本仅支持GET、POST、PUTDELETE方法。

  • Postman(JSON)脚本中不支持File模式。

  • 暂未支持同时上传及二进制类的Content-Type,无法进行转换。

YAMLPTS API压测的字段对应关系如下:

YAML脚本字段

PTS API压测字段

表 1. 基本概念类型

YAML脚本字段

PTS API压测字段

Relations

串联链路的集合

Relation

单个串联链路

Disabled

串联链路是否被禁用

ID

串联链路ID

Name

串联链路名称

Nodes

节点集合

Name

节点名称

NodeId

节点ID

NodeType

节点类型

Config

节点配置

YAML脚本字段

PTS API压测字段

表 2. 节点类型

YAML脚本字段

PTS API压测字段

chain

API节点

wait

思考时间节点

condition

条件跳转节点

dam

集合点

dataInit

数据配置节点

dataStore

数据导出节点

dataDefine

数据指令节点

delay

延时节点

repeatBegin

循环指令开始节点

repeatEnd

循环指令结束节点

ifBegin

判断指令开始节点

ifEnd

判断指令结束节点

类型

YAML脚本字段

PTS API压测字段

表 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:headerkey。

  • value:headervalue。

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:目标APIID。

  • 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|FILE|PARAM|INSTRUCTION 分别表示 cookie|文件参数|出参|数据指令。

  • 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压测字段

Swagger脚本字段

PTS API压测字段

paths.key

请求URL。

paths.key.key

请求方法。

paths.key.key.parameters

请求Query参数或请求体。

definitions

请求体中使用的Schema。

tags[0].name

串联链路名。

操作步骤

  1. 登录PTS控制台,在左侧导航栏选择性能测试 > 导入场景
  2. 导入场景页面选择脚本类型,并上传脚本,然后单击确认

    导入成功后,在创建PTS场景页面,您可以看到脚本内容已转化为对应的API压测信息。Import Script Result

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

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

相关操作

脚本导入成功后,您可以使用PTS提供的高级功能编排压测场景并发起压测,可参考以下文档:

  • 本页导读 (1)
  • 脚本说明
  • JMeter脚本与PTS API压测的字段对应关系如下:
  • Postman与PTS API压测的字段对应关系如下:
  • YAML与PTS API压测的字段对应关系如下:
  • Swagger脚本与PTS API压测的字段对应关系如下:
  • 操作步骤
  • 相关操作