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

铂金版快速入门

更新时间:2018-01-15 16:11:24

本文档主要从一个最简单压测场景的例子开始介绍如何构建一个复杂的压测场景。

一、构建快捷压测场景

首先用一个最基本的示例介绍如何快速构建一个压测场景。

1、新增链路

链路在 PTS 中被定义为一种业务行为。以电商为例,登录、查询商品详情、提交订单和付款等都是链路。

  1. 登录 PTS 铂金版控制台,在左侧导航栏中单击链路管理,在链路列表页面右上角单击新增链路

  2. 输入链路的基本信息。

    链路基本信息

    链路基本信息说明:

    • 链路名称:标识链路业务含义的链路名称,要求少于 50 个字。
    • 协议类型:目前支持 HTTP 和 HTTPS。
    • 请求类型:支持 HTTP 协议的 POST 或者 GET 方法。
    • 超时时间:HTTP 等待应答返回的最长时间。
    • 压测 URL:发送请求的 URL 地址,比如 http://域名/路径 。也可以包含参数的部分,如 http://域名/路径?key1=value1&key2=value2

2、新增场景

  1. 在控制台左侧导航栏中单击场景管理,在场景列表页面单击新增场景

  2. 输入场景名称(如链路关联场景),设置持续时间,选择模式(TPS 或并发),然后单击确定

    新增场景

3、在场景中添加链路

  1. 返回场景列表页面,在刚创建的场景的操作列单击编辑,在场景标记页面单击添加串行链路,在弹出的串联链路1右侧单击+

  2. 选择链路或指令对话框,选中刚刚新增的业务链路_A,然后在右侧的链路设置区域配置目标量级起步量级,单击确定

    选择链路并设置

  3. 返回场景编辑页面,单击保存配置

至此,快捷压测的场景构建完成。

4、调试场景

  1. 在场景编辑页面,单击调试场景

    系统会对场景进行调试,调试过程中会忽略所有延时类指令。

  2. 稍等片刻,即可链路的执行情况(包括请求报文和应答报文)。

    调试场景

  3. 在链路右侧单击查看详情,可以查看该链路调试的日志详情。

    日志详情

至此,一个基本的压测场景就够姜完成了。返回场景编辑页面,单击去压测,就可以对示例中的场景进行压测了。

说明:在快捷压测场景构建完成之后,可以通过以下步骤,构建一个包括业务链路、登录链路的完整压测场景。

二、配置业务链路参数

链路的基本元素包括:

  • URL:发送请求的 URL。URL 中也可以包含不变化的参数。
  • 压测文件:存储请求 URL 中变化的部分。
  • 入参:入参可以在 URL 和压测文件中通过”#{param}”方式直接被引用。
  • 出参:出参可以在“场景”中被其他链路关联使用。

1. 上传压测文件

  1. 编辑压测文件。

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

    1. user=xxxx&age=33&address=xxxx1
    2. user=xxxx&age=31&address=xxxx2
    3. ...
    4. ...
    5. user=xxxx&age=23&address=xxxx2
    6. user=xxxx&age=21&address=xxxx2
  2. 压测文件名的后缀固定为 .csv。编辑完成后,将压测保存为 data.csv

  3. 压测文件区域单击选择文件,选择编辑完成的 data.csv 文件。

2. 配置入参和出参

  • 入参包括 name 和 age,这样可以在 URL 和压测文件中通过 #{name} 和 #{age} 来直接引用。
  • 出参是从应答中截取自己想要的字段,假设这个 URL 返回的应答格式为:

    1. {
    2. "code":0,
    3. "data": {
    4. "id": "xxxx",
    5. "token": "xxxxxxxx"
    6. }
    7. }
  1. 在控制台右侧单击链路管理,在链路列表页面刚刚新增的“业务链路 A”右侧单击编辑。

  2. 在编辑链路页面,设置出参(A_out1A_out2)。

    设置链路出参

3. 配置 Header

  1. Header 定义区域设置 HeaderNameHeaderValue

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

    配置 Header

  2. 单击保存,之后上述配置的部分才会被提交。

三、构建业务链路场景

1. 新增“业务链路_B”

  1. 按照新增链路的步骤创建“业务链路_B”。

  2. 按照链路参数化的步骤配置“业务链路_B”的参数。

    业务链路_B 的入参和出参定义如下:

    • 入参为 B_in1B_in2,没有出参。
    • 参数化的部分以”#{param}”的格式代替。其中,B_in1 直接在压测 URL 通过“#{B_in1}”方式被引用,B_in2 在文件中被引用。

    配置业务链路 B 的参数

  3. 按照链路参数化的步骤上传“业务链路_B”的压测文件。

    按如下内容编辑“业务链路_B”的压测文件,保存为 data.csv,并上传。

    1. token=#{B_in2}&uid=xxxx1
    2. token=#{B_in2}&uid=xxxx2
    3. ...
    4. ...
    5. token=#{B_in2}&uid=xxxx3
    6. token=#{B_in2}&uid=xxxx4

2. 在场景中关联业务链路

  1. 在控制台左侧导航栏中单击场景管理,在场景列表页面刚刚创建的场景右侧单击编辑

  2. 在场景标记页面单击新增串联链路,然后单击选择链路或指令

  3. 选择链路或指令页面选择之前创建的“业务链路_B”,在页面右侧的链路设置区域设置压测参数,并关联“业务链路_A”的入参,然后单击确定

    3

  4. 返回场景编辑页面,在新增的链路 A 右侧单击选择链路或指令

  5. 选择链路或指令页面选择之前创建的链路 B,在页面右侧的链路设置区域设置压测参数。

  6. 链路设置区域下方设置来源链路(链路 A)和来源链路出参(链路 A 的出参 A_out1 和 A_out2),然后单击确定

注意

  • 链路入参只能选择当前链路之前的链路的出参进行关联。
  • 链路入参的数据来源,可以来源于多个链路。
  • 链路的出参也可以被多个其他链路引用。

4

3. 确认链路关联结果

当选中“业务链路_A”的时候,“业务链路_B”会被标记为数据流出;当选中“业务链路_B”的时候,“业务链路_A”会被标记为数据流入

四、构建登录链路场景

1. 新增登录链路

  1. 在控制台左侧导航栏中单击链路管理,在链路列表页面右上角单击新增链路

  2. 输入链路的基本信息。

    链路基本信息说明:

    • 链路名称:标识链路业务含义的链路名称,如登录 xxx
    • 协议类型:目前支持 HTTP 和 HTTPS,根据实际系统选择。
    • 请求类型:支持 HTTP 协议的 POST 或者 GET 方法,登录链路要选择 POST
    • 超时时间:HTTP 等待应答返回的最长时间。
    • 压测 URL:登录请求的 URL 地址,比如 http://域名/login.do
  3. 编辑登录压测文件,然后在压测文件区域单击选择文件上传。

    压测文件格是以行为单位。如果有 10000 个用户,则需要有 10000 行数据。每行数据包含 name 和 password 两个字段。如:

    1. name=abc1&password=1235
    2. name=cdb&password=43251
    3. ...
    4. ...
    5. name=hfgb&password=54df9k

2. 在场景中添加登录链路

  1. 在控制台左侧单击场景管理,然后在场景列表页面刚刚创建的场景的操作列中单击编辑

  2. 在编辑场景页面,单击添加串联链路,然后在新的串联链路右侧单击+

  3. 选择链路或指令页面,选择之前创建的登录链路,在右侧的链路设置区域设置该链路的压测参数,设置完成后单击确定

    注意:由于登录链路比较特殊,用户只能登录一次,所以必须要选择数据只轮训一遍

    添加登录链路

至此,登录链路场景构建完成。

五、为链路添加指令

业务链路和登录链路构建完成后,还需要增加 cookie 和全局准备的指令。

1. 为登录链路添加指令

  1. 返回该场景详情页面,在新增的登录链路右侧单击选择链路或指令,在选择链路或指令页面单击添加指令页签。

  2. 添加指令页面中选择指令类型右侧的下拉框中单击 cookie 导出,然后单击确定

  3. 返回该场景详情页面,在新增的 cookie 集导出右侧单击选择链路或指令,在选择链路或指令页面单击添加指令页签。

  4. 添加指令页面中选择指令类型右侧的下拉框中单击全局准备按量执行准备),在弹出的准备量级文本框中输入数值(该数值代表当达到该数量的用户登录后才开启压测),然后单击确定

添加登录链路完成

2. 为业务链路添加指令

返回编辑场景页面,单击“业务链路_A”和“业务链路_B”框左侧的+。参考上面的步骤,依次添加全局准备(等待准备完成)cookie 读取两个指令。

业务链路完成

注意

一个场景中,“按量执行准备”的全局准备指令最多只允许有一个,“等待准备完成”的指令可以有多个。只有当前者满足条件了才会允许其他的全局准备释放。

最终的场景形态

8

六、调试场景

  1. 在场景编辑页面,单击调试场景

    系统会对场景进行调试,调试过程中会忽略所有延时类指令。

  2. 稍等片刻,即可查看所有链路的执行情况(包括请求报文和应答报文)。

    调试完整场景

  3. 在链路右侧单击查看详情,可以查看该链路调试的日志详情。

七、启动压测

如果调试没有问题,即可启动压测。

  1. 在编辑场景页面单击去压测

  2. 在压测启动页面单击启动压测

    压测页面

    稍等数秒,页面会自动跳转到实时压测页面。

    压测实时页面

    在页面右上角单击停止压测,可以停止场景压测任务。

八、查看压测报告

压测任务完成或停止停止后,可以查看该压测的测试报告。

  1. 在控制台左侧单击测试报告

  2. 在测试报告页面,找到刚才进行压测的场景,在操作列单击查看报表

    压测报表中呈现了此次压测的详细信息,包括:VUM,TPS、并发数和响应时间的历史趋势曲线等。

    压测报表

本文导读目录