全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
性能测试 PTS

链路管理

更新时间:2018-01-14 15:18:30

链路定义

链路在 PTS 中用于描述一种业务行为,可以是接口、页面等。链路的基本元素包括:

  • 基本配置:包括链路名称请求类型超时时间和压测 URL 等链路基础信息配置。
    • 请求类型:HTTP 请求的 method,可以选择 POST 或者 GET;
    • 超时时间:请求发送出去之后等待应答响应的最长时间,单位为毫秒,默认值 5000,即 5 秒。
    • URL:发送请求的 URL 地址,URL 中可以包含参数。
  • 参数文件:请求的参数,以文件形式存储,一般存储可变的部分。
  • 入参:入参可以在 URL 和参数文件中通过 “{param}” 方式直接被引用。
  • 出参:出参可以在“场景”中被其他链路关联使用。
  • 其他配置:HTTP 协议的 Header,请求的超时时间。

新增/编辑链路

新增/编辑链路步骤如下:

  1. 登录 PTS 控制台

  2. 在控制台左侧菜单栏选择链路管理,单击页面右上角的 新增链路,进入链路列表页。

    在链路列表页可以对链路进行 新增编辑删除 和关键字 搜索 等操作。编辑链路新增链路在操作上完全一致,下文中一起描述。

  3. 单击页面右上角新增链路按钮,进入新增链路页面。

    下文针对各个输入项做具体说明。

基本配置

输入链路名称,选择协议及请求类型,并输入压测 URL。

0001

GET 和 POST 说明:

为了使用上的简便,在构造压测数据阶段,不需要特别关注请求类型,系统会自动根据不同的类型构造相应的 GET 或者 POST 类型的请求:

  • 如果是 GET 请求,会将参数文件里面的参数自动拼装到 URL 上;
  • 如果是 POST 请求,会将参数文件里面的参数放到 HTTP 的 body 里面。

入参定义

输入变量名,单击+按钮,完成添加。一个链路可以定义多个不同变量名的入参。

  • 链路入参变量名只能包含 英文字母数字下划线
  • 入参不支持编辑功能,如果需要修改入参,则需要先删除再新增。

0002

出参定义

出参是从应答截取需要的内容,以便在后续的过程中使用,比如作为后续链路的入参。链路可以定义多个不同变量名的出参,包括下面几个字段:

  • 变量名:只能包含英文字母、数字和下划线;
  • 数据格式:标记链路应答的解析方式,目前支持 JSON 和 TEXT;
  • 解析表达式:从应答截取需要的内容,定义成变量名,以便后面的链路引用此变量名。

0003

JSON 格式解析,仅支持 JSON 对象格式的应答,链路 response 返回举例说明:

  1. {
  2. "code": "success",
  3. "message": "处理成功",
  4. "data": {
  5. "id":13509, "space_id":0,
  6. "items": [
  7. {"name": "name1", "value": "1234"},
  8. {"name": "name4", "value": "7648"}
  9. ]
  10. }
  11. }
出参的值 解析表达式
获取 code 字段 code
获取 data 的 id 字段 data.id
获取 items 第一个对象的 value 字段 data.items[0].value

TEXT 格式解析,支持任意文本格式,支持正则表达式,链路 response 返回举例说明:

  1. <input name="id" value="347290348">
  2. <input name="token" value="acdfo4dfopasdf44ddvvm">
  3. ...
  4. <script>
  5. var planId=4587;
  6. ...
  7. </script>
出参的值 解析表达式
获取 name 为 id 的 value <input name="id" value="(0-9)">
获取 name 为 token 的 value <input name="token" value="(A-Za-z0-9)">
获取 planId 的值 var planId=(0-9);

注意:

  • 如果有多个满足匹配,则只会匹配第一个;
  • 被匹配的文本内容不能包含大括号 {},小括号 () 等字符。

参数文件

参数文件格式说明:

压测文件中的一行代表一次压测请求的请求参数。压测过程中,依次轮询压测文件的每一行,并与压测 URL组装成一个压测请求。

压测文件可以仅包含请求的参数,一行就是一条压测数据,例如:

  1. user=John&age=12
  2. user=Sam&age=14
  3. user=Tom&age=13

压测文件也可以是完整的 URL,这种情况系统会忽略配置的压测 URL,直接使用压测文件里面的完整 URL 发送请求。

使用入参占位符:

入参定义的参数,可以直接在文件中直接通过 #{param} 占位符来引用。举例说明,链路有一个名为 “userName” 的入参:

  1. user=#{userName}&age=12
  2. user=#{userName}&age=14
  3. user=#{userName}&age=13

设置 Header 和 Cookie(特殊用法):

支持将 header 作为一种特殊的参数也放到 压测文件中,格式为 “header::key=value”。

  1. user=Tom&age=13&header::User-Agent=Mozilla/5.0&header::Referer=http:://www.taobao.com

如果有多个 Header,请使用 & 隔开,与普通参数的区别是 Header 有一个前缀 header::,跟普通参数放在一起,没有顺序要求。

Cookie 是一种特殊的 header,也可以参照设置 header 方式来设置,例如:

  1. user=John&age=12&header::Cookie=__cfduid=d41ac560738e0da33bcdb9723a63dd14748127; BAIDUID=E6971D4C42D72558B6A8F31FFED4:FG=1;

注意:Header 设置仅对相应行的数据有效。

上传文件步骤:

  1. 点击 选择文件,通过浏览选择需要上传的文件,然后确认提交。

    • 文件类型必须为 zip 或者 csv;
    • zip 文件内有且只能有一个 csv 文件;
    • 文件大小不能超过 60M。
  2. 当进度条达到100%,显示“上传成功”,表示上传完毕。

    0004

Header 定义

可以根据业务需求,自定义链路的 Header,可以定义多个 Header。这种方式和在文件中通过 header::key=value 的方式是等价的。但是这里的 Header 的值不支持参数化,是静态的信息;而文件中可以通过入参占位来实现动态 Header 值。

建议将不变的 Header 定义在链路中,需要参数化的 Header 定义在文件中。

0005

删除链路

删除链路步骤如下:

  1. 在链路列表页,单击链路所在行的删除按钮。

  2. 根据引导点击确认或者取消删除链路。如果链路被其他场景引用则不允许删除,需要先从场景中取消关联,再做删除。

    0006

本文导读目录