全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件

铂金版快速入门

更新时间:2018-04-16 20:45:57

本文档通过简单示例(登陆访问“我的收藏”的场景)来介绍如何使用 PTS 铂金版完成一次场景压测。

流程介绍

要完成一次场景压测(模拟一种业务场景的并发请求)需要一些先行条件,主要有:

  • 必要条件:链路(后续称为 API,即单个压测请求及其关联参数)及场景(场景中包含至少一个串联链路,串联链路由有先后顺序的 API 组成);
  • 充分条件:串联链路的个数及串联链路的组成方式是不固定的,串联链路是一系列指令、链路(API)的集合;场景中的多个串联链路是并行的。

所以,要完成一次场景压测必须得先设置好压测的 API(s),在场景中添加由一系列 API 及指令组合成的串联链路,然后进行调试、启动压测,最后形成报告。下文介绍具体操作。

步骤1:新建(编辑)API

API(原称为链路)是一条由用户行为触发的客户端请求,以电商中登陆、查询商品详情、提交订单等为例,分别对应用户一次行为中的多个请求。

基本信息说明

以下信息中,后四个为非必填项,有需要时再进行设置。其中 URL、Header、Body 都支持选中之后进行参数格式化的设置。

  • API 名称:标识该 API 表示的含义,如获取商品列表数据,要求少于 50 个字;
  • 协议类型:目前支持 HTTP 和 HTTPS;
  • 超时时间:HTTP 等待应答返回的最长时间;
  • 请求类型:支持 HTTP 协议的 POST 或者 GET 方法;
  • 压测 URL定义:发送请求的 URL 地址,比如 http://域名/路径 。也可以包含参数的部分,如 http://域名/路径?key1=value1&key2=value2
  • Body 定义:如果请求类型为 POST,可在 Body 中定义压测参数;
  • API 入参定义:自行定义每条压测请求中的参数格式化依赖的数据源,比如来自其他链路的出参或是自行构造的数据集;
  • Header 定义:定义每条压测请求中的 Header 信息;
  • API 出参(断言)定义:定义出参(可作为链路后续的入参)及断言(业务成功与否)条件。

新增 API

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

  2. 构建所需 API

    • 登陆 API

      登录api

      因登陆 API 较为特殊,需要给出每个模拟用户的 username & password,故需要通过文件形式来定义不同参数。

      链路入参定义区域点击+上传文件来选择文件上传(只支持CSV格式)。如果有 10000 个用户,则需要有 10000 行数据,每行数据包含 name 和 password 两个字段的值,每个值占一列。如:

      1. abc1,1235
      2. cdb,43251
      3. hfgb,54df9k
    • 查看“我的收藏”API

      “我的收藏”涉及到两个请求A、B,请求A的输出是请求B的输入,最终结果由B的response给出,故这里以创建API_A 为例做介绍,B以相同方式创建即可。

      出入参示例api

      API_A 中涉及入参及出参:入参可使用前一个 API 输出的结果作为输入,出参为从应答中截取自己想要的字段,可作为后一个 API 的输入。

  3. 自定义设置

    对于 API 中参数固化情况,黏贴好 URL 即可;而部分 value 需要参数格式化的情况下,可以通过定义的入参以及 PTS 提供的函数能力来组合生成。具体请参考铂金版用户指南中的压测API

步骤2:构造压测场景

基本信息说明

  • 场景名称:该次压测场景的名字,如登陆查看我的收藏
  • 持续时间:压测的持续时长;
  • 绑定域名:强制将域名解析到指定的 IP 列表;
  • 选择模式:TPS 模式及并发模式作为压测场景的预期量级单位—TPS/VU(虚拟用户数);
  • 指令:一种可以改变、控制链路执行行为和流程的功能组件;
  • 串联链路:API 和指令的串行集合,用来模拟一次用户操作触发的业务行为;
  • 起步&目标:压测的起始值、可到达的最大值,过程中需要用户自行调速,可在区间内任意调速,即时生效。

关于场景的更详细介绍,请参考铂金版用户指南中的场景管理介绍

新增(编辑)压测场景

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

  2. 场景基础信息及串联链路输入场景名称(如登陆查看我的收藏),设置持续时间,选择模式(TPS 或并发),然后单击确定。在场景标记页面单击+添加串联链路,会生成一个待完善的“串联链路1”。

    新增场景-基础信息

  3. 完善串联链路

    • 串联链路1(登录的业务链路)

      点击上述“串联链路1”中右侧“+”,在选择 API(链路)或指令页面,选择之前创建的登录API,在右侧的 API(链路)设置区域设置该 API 的压测参数,设置完成后单击确定

      注意:由于登录串联链路比较特殊,用户只能登录一次,在对应 API 构建的时候,需使 目标用户数<= 文件行数。

      登录api

      一个完整的登陆,除根据 username & password 及其他参数发出请求外,还应该把登陆的 cookie 记录下来以便其他需要登陆信息的串联链路使用,故这里需要给登陆请求 API 的输出添加指令。这里需要使用到 cookie 导出全局准备按量执行准备)这两个指令,其中“按量执行准备”中的量级数值表示累积到该量级用户之后才开始进行压测

      登陆链路

    • 串联链路2(查看“我的收藏”的业务链路)

      按照上述类似操作,依次添加全局准备(等待准备完成)cookie 读取两个指令,以及“API_A”、“API_B”这两个 API,其中 API_A 的出参作为 API_B 的入参。

      注意

      • 串联链路上某个 API 的入参只能选择前置 API 的某个出参;
      • 入参的数据来源,可以是多个同串联链路里的前置 API;
      • 出参也可以被多个后置 API 引用。

      出入参关联

    如此,一个简单且完整的压测场景构造完成,其他指令信息可以丰富场景的需求,详细指令分析请见铂金版用户指南中的指令介绍

    完成场景

步骤3:调试及压测

调试

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

系统会对场景进行调试,调试过程中会忽略所有延时类指令。稍等片刻,即可查看所有链路的执行情况(包括请求报文和应答报文)。

场景调试

启动压测

如果调试没有问题,即可启动压测。在编辑场景页面单击去压测,在压测启动页面单击启动压测

准备压测

只需要稍等数秒,压测任务即可准备完成,页面自动跳转到实时压测页面。

压测中

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

步骤4:查看压测报告

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

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

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

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

    压测报告

本文导读目录