zoukankan      html  css  js  c++  java
  • 阿里云PTS分享-用性能测试工具JMeter实现基于供应链业务上对于WebSocket 协议的压测

    性能测试PTS(Performance Testing Service)是面向所有技术相关背景人员的云化性能测试工具,孵化自阿里内部平台。有别于传统工具的繁复,PTS以互联网化的交互,面向分布式和云化的设计,更适合当前的主流技术架构。无论是自研还是适配开源的功能,PTS都可以轻松模拟大量用户访问业务的场景,任务随时发起,免去搭建和维护成本。更是紧密结合监控类产品提供一站式监控、定位等附加价值,高效检验和管理业务性能。

    脚本工具:Apache JMeter

    压测平台: PTS

    测试目的

    供应链客户端往往由于生产环境复杂,会产生卡顿现象,故展开本次调优性能测试境产生卡顿现象,通过压测来了解网关是否存在问题。

    测试原则

    1.   选择用户使用频率较高的业务功能

    2.   选择用户核心业务功能

    3.   监控和分析系统各服务器的性能,同时也包括应用服务器的性能问题

    4.   重点分析交易的响应时间,即客户端发起请求,到应用服务器返回结果到客户端的时间,包括网络传输的时间,但不包括客户端应用程序处理返回结果的时间。

    测试方法

    利用Jmeter模拟前台客户端发起Socket协议请求,即在每个测试用例中,由Jmeter发送前台应用程序的Socket报文到后台应用服务器,测试后台应用服务器和数据库服务器处理客户端应用请求的能力。

    测试指标

    1、交互相关

    • 交互数量
    • 交互响应时间

    2、应用服务器相关

    • CPU使用率
    • 内存使用率

    测试环境

    本次性能测试在uat环境中执行,使用单网关、单服务器进行压测。

    生产环境目前是10个网关,8台服务器。

    测试数据量

    在生产环境中已增加以下业务数据,并在测试用例中挑选有代表性的业务数据进行测试:

    编号

    业务类型

    业务数据量

    1

    登录

    300

    2

    序列号扫描

    300

     3

    订单查询

    50

     4

    包装号校验

    300

     5

    组建序列号扫描

    300

    测试脚本的创建

    1. 将一个线程组添加到测试计划中,单击测试计划 > 添加 > Thread (Users) > 线程组
    2. 在线程组中添加采样器(Sampler),单击线程组 > 添加 > Sampler > 对应的 Sampler,并配置每个 Sampler。
    3. 在线程组中添加监听器 View Results Tree
    4. 运行脚本。通过 View Results Tree 监听器查看脚本是否运行正常。

    WebSocket Open Connection

    将 WebSocket Open Connection Sampler 添加到线程组。单击线程组 > 添加 > Sampler > WebSocket Open Connection

    如何安装 JMeter-WebSocketSampler

    下载最新的 JMeter-WebSocketSampler,如 JMeterWebSocketSamplers-1.2.1.jar。

    将该文件放置到 JMeter 的安装目录(…/lib/ext)下。

    重启 JMeter。

    如果插件安装成功,JMeter GUI 中可看到以下新增的选项:

    1. 配置元件选项(Config Element):WebSocket Binary Frame Filter、WebSocket Text Frame Filter 和 WebSocket Ping/Pong Frame Filter;
    2. 断言选项(Assertions):Binary Response Assertion;
    3. 察看结果树选项(View Results Tree):Binary;

    说明:我们以 Gateway Echo 服务来创建我们的脚本(ws://echo.websocket.org)。这是一个Echo 服务,因此发送到此服务的所有消息都将回显给客户端。

    当前的 Sampler 将建立 WebSocket 连接。相关的配置如下:

    配置项

    示例值

    说明

    协议

    WS

    协议可以是 WS 或 WSS(Secure WebSocket)。使用 WSS 进行加密连接。

    Server name or IP

    echo.websocket.org

    域名 或 IP

    Port

    80

    端口

    Path

    ( 空)

    可为空

    Connection timeout(ms)

    20000

    建连的超时时间。

    Read timeout(ms)

    6000

    等待服务器响应的超时时间。

    WebSocket Ping / Pong

    将 WebSocket Ping / Pong Sampler添加到线程组,单击线程组 > 添加 > Sampler > WebSocket Ping/Pong。该Sampler用来测试 Ping/Pong 功能。

     

    相关配置如下:

    • Pong(读)超时(ms):6000

    Pong 超时表示如果 JMeter 在 6 秒内没有收到 Pong 消息,则 Sampler 将失效。此 Sampler 会复用已有连接。

    WebSocket request-response Sampler

    将 WebSocket request-response Sampler 添加到线程组,单击线程组 > 添加 > Sampler > WebSocket request-response Sampler。该 Sampler 将用于发送文本的一个数据帧并从服务端接收应答。

     

    相关配置如下:

    配置项

    示例值

    说明

    Connection

    use existing connection

    创建新的连接或复用已有连接。

    数据类型

    文本

    指定数据类型、请求数据和响应超时值。

    Request data

    PTS

    请求数据,这里以文本为例

    Response(read)timeout(ms)

    6000

    响应超时时间

    WebSocket Single Write Sampler

    将 WebSocket Single Write Sampler 添加到线程组,单击线程组 > 添加 > Sampler > WebSocket Single Write Sampler 此请求是非阻塞的,只是将数据发送到服务端不需要等待响应。

     

    相关配置如下:

    配置项

    示例值

    说明

    Connection

    use existing connection

    创建新的连接或复用已有连接

    数据类型

    文本

    指定数据类型、请求数据和响应超时值

    Request data

    PTS

    请求数据,这里以文本为例

    Response(read)timeout(ms)

    6000

    响应超时时间

    WebSocket Single Read Sampler

    将一个 WebSocket Single Read Sampler 添加到线程组,单击线程组 > 添加 > Sampler > WebSocket Single Read Sampler。接收服务端的消息响应需要使用这个 Sampler。

     

    配置以下参数:

    配置项

    示例值

    说明

    Connection

    use existing connection

    创建新的连接或复用已有连接

    数据类型

    文本

    指定数据类型、请求数据和响应超时值

    Response(read)timeout(ms)

    6000

    响应超时时间

    WebSocket Close

    将一个WebSocket Close Sampler添加到线程组,单击线程组 > 添加 > Sampler > WebSocket Close

    配置以下参数:

    配置项

    示例值

    说明

    关闭状态

    二进制

    关闭连接时定义的状态码,数据帧的头两个字节

    响应(读取)超时(毫秒)

    6000

    /

    此采样器将关闭现有的 WebSocket 连接,由于是协商关闭,显示原因为 “1000:sampler requested close”。

    使用 View Results Tree 查看结果

    1. 将 View Results Tree 监听器添加到线程组,单击线程组 > 添加 > 监听器 > View Results Tree
    2. 运行脚本!

    通过 View Results Tree 监听器,检查所有 Sampler 是否都配置正确并符合预期。在该监听器中,如果 Sampler 前面有绿色勾表示运行正常。下面罗列一些截图:

     上传到PTS

    将调试好的 JMeter 脚本(XML 文件)、JMeter-WebSocketSampler 的 JAR 文件和其他数据文件(如有)上传到 PTS,设置并发数和压测时间,单击保存并压测便可开始压测。

  • 相关阅读:
    团队建设简介【转载朋友Astar】
    《简约至上 交互式设计四策略》读书总结笔记
    自我管理-性格修行
    产品经理必知的10个网页设计术语,看后瞬间高大上!
    产品经理的知识/能力结构框架(知识管理)
    javascript代码复用模式
    javascript设计模式-观察者模式
    javascript设计模式-享元模式
    javascript设计模式-装饰模式
    javascript设计模式-适配器模式
  • 原文地址:https://www.cnblogs.com/angelawu0220/p/10108157.html
Copyright © 2011-2022 走看看