文档

创建压测场景

更新时间:

您可以使用WebSocket压测功能在PTS控制台快速构建压测场景,实现压测。本文介绍如何对WebSocket进行压测。

背景信息

WebSocket实现了客户端与服务端之间的双向数据传输,在消息推送、在线聊天等实时通信场景下均有广泛应用。目前常用的WebSocket压测方法是通过在压测工具(如JMeter压测工具)中安装相应的WebSocket压测插件实现压测。但搭建JMeter压测环境需要一定的时间成本和代码基础。PTS的WebSocket压测功能可以帮您解决这些问题。您可以通过PTS控制台快速构建WebSocket压测场景。在完成压测后,还能通过生成的压测报告查看压测具体详情,并结合压测数据优化系统。

功能入口

  1. 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击WebSocket压测
  2. 创建WebSocket场景页面,填写场景名
  3. 场景配置页签下,单击+添加测试节点右侧的ul图标,为目标串联链路添加所需测试节点。

场景配置

单击串联链路右侧的ryi图标,展开串联链路,并配置基本信息、出参、检查点等信息。

基本配置

在串联链路的基本配置页签设置压测基本参数。具体配置如下。

  • 建立连接:在施压端与被压测端之间建立WebSocket连接。WebSocket压测所含的其余测试节点(如心跳、只读、只写和请求响应等)均依赖于连接的建立。
    相关基本配置说明示例
    压测URL需要进行压测的WebSocket链接。wss://echo.websocket.org
    连接超时时间施压端与被压测端建立连接的时间限制,单位为毫秒。20000
    响应超时时间施压端等待被压测端响应的时间限制,单位为毫秒。6000
  • 心跳:检测施压端和被压测端的连接状态。
    相关基本配置说明示例
    请求类型
    • 发送ping期望pong:施压端发送信息告知被压测端自己处于存活状态,期望被压测端返回信息以确定被压测端处于存活状态。
    • 仅发送pong:仅施压端发送信息告知被压测端自己处于存活状态。
    发送ping期望pong
    响应超时时间施压端等待被压测端响应的时间限制,单位为毫秒。
    说明 仅在当配置场景为发送ping期望pong时设置。
    6000
  • 只读:施压端仅接收被压测端发送的信息。
    相关基本配置说明示例
    数据类型可读的数据类型,包括Text(文本类型)、Binary(二进制类型)和Any(任意类型)。Text
    响应超时时间施压端接收信息的时间限制,单位为毫秒。6000
  • 只写:施压端仅向被压测端发送信息。
    相关基本配置说明示例
    数据类型可读的数据类型,包括Text(文本类型)、Binary(二进制类型)和Any(任意类型)。Text
    请求数据施压端发送信息的内容。可根据不同数据类型输入相应内容。WebSocket Single Write Test
  • 请求响应:施压端向被压测端发送请求并接收响应。
    相关基本配置说明示例
    数据类型可读的数据类型,包括Text(文本类型)、Binary(二进制类型)和Any(任意类型)。Text
    请求数据施压端发送信息的内容。可根据不同数据类型输入相应内容。WebSocket Request and Response Test
    响应超时时间被压测端在接收信息后响应的时间限制,单位为毫秒。6000
  • 关闭连接:关闭施压端与被压测端建立的连接。
    相关基本配置说明示例
    状态码表明关闭连接对应的状态码,可自定义。1000
    响应超时时间施压端接收到关闭连接状态码的时间限制,单位为毫秒。6000

出参设置

在串联链路的出参设置页签设置出参。具体操作,请参见接口出参

检查点设置

在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)

控制器和定时器(可选)

您可以根据不同压测场景的需求,添加控制器和定时器。

  • 场景配置页签下,单击+添加控制器选择所需的控制器。

    • 循环控制器:控制所含测试节点应循环执行的次数。

      选择循环控制器后,单击其右侧的循环控制器的更多图标图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。

    • 事务控制器:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含生成父样本是否包含样品中定时器和前后程序的持续时间两个设置项。

      • 生成父样本

        • 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。

        • 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。

      • 是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。

    • 仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。

  • 场景配置页签下,单击+添加定时器选择所需的定时器。

    • 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。

    • 同步定时器:可设置停顿时长模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。

    • 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。

    • 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。

    • 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程所有活跃线程当前链路下活跃线程全局活跃线程当前链路下全局活跃线程

施压配置

单击施压配置页签,设置压测模式。

压测配置

描述

压力来源

本次压测使用的网络类型,包括公网阿里云VPC内网两种类型。具体详情,请参见压力来源(公网和VPC)

并发数

虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。

压测时长

建议压测时长不低于2分钟,总时长默认不可超过24小时。

流量模型

并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。

  • 均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。

  • 阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。

  • 固定压力值:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。

递增时长

全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。

递增阶梯数

完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。

指定IP数

指定压测来源的IP个数。具体详情,请参见指定施压IP数

流量地域定制

通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制地域流量

启动压测

您可以在创建压测场景页面左下方,单击调试场景,对配置的场景进行调试,验证配置是否正确。具体操作,请参见调试场景。然后单击保存去压测,在弹出的对话框中单击确定,启动压测。

后续操作

查看压测报告。具体操作,请参见查看多协议压测报告