• 基于压力测试工具kylinTOP构建虚拟用户自身请求的并发模型


    在对于WEB系统进行性能测试时,第一时间想到的是测试出WEB系统能够承受的最大并发虚拟用户(VU)用户数,因为系统的最大VU并发数可以直接反应系统的承载能力。但是人们往往忽略了VU的并发模型。什么是VU的并发模型呢?如下图所示,我们使用浏览器访问一个页面,浏览器会有多个HTTP请求发向服务端,这些请求有串行的也有并行的(water中有时间重叠的请求属于并行请求。串行请求是指:前一请求结束,后一请求才下发请求)。如果性能测试工具提供WEB录制功能并能按照浏览器的行为模型模拟VU行为,那是最好的了(如果你使用Jmeter或LoadRunner 11那么工具是无法做到的,详见:《性能测试工具Jmeter你所不知道的内幕》、《性能测试工具LoadRunner你所不知道的内幕》)。截止目前我了解到的性能测试工具:kylinTOP可以实现(Jmeter,CPTS(华为),PTS(阿里)均无法实现),但本文并是不讨论如何使用kylinTOP来录制脚本并模拟浏览器的行为,而是如何利用kylinTOP手工构建这样的场景。为什么要手工构建呢,主要是有些web系统对外提供的服务不是WEB页面,而是HTTP接口功能,对这种场景就需要我们手工来构建。

    如果被测试系统是一个WEB服务系统,对外提供的HTTP接口不是WEB页面,而是HTTP接口功能。对于这种系统我们应当怎样测试性能呢?要想测试出它能承受的最大并发VU数,首先要分析其VU的请求模型。假定VU的请求模型如下所示:

    VU请求模型描述:已知一个WEB系统对上层用户提供A、B、C、D、E、F、G、H、I共9个接口请求。上层用户使用这9个请求的约束要求是A、B是串行下发,C、D、E、F四个请求并行下发,G、H、I是串行下发。按照如下的瀑布图形下发请求:

    一个上层用户对WEB系统来说就是一个VU,那么如何手工构建这样的请求模型呢?

    步骤1:新建脚本

    编辑

    步骤2:创建请求节点和描述节点

    通过“增加”按钮添加HTTP请求节点和描述节点。同时把要并发的请求移动到描述节点下面(作为描述节点的子节点,同时描述节点名称输入:start_concurrent)

    说明:kylinTOP手工添加的HTTP请求节节点默认是串行的,“描述节点”的子节点处理为并发请求(描述节点的名称必须是:start_concurrent,否则当作串行处理)。

    步骤3:脚本属性修改

    设置脚本的“高级设置-虚拟用户“,属性值选择下图标志中的任意一个。

    步骤4:调试脚本

    点击调试按钮,生成如下所示VU瀑布图。该瀑布图中:CDEF四个是并发请求,其余是串行请求,与场景要求一致。

    说到这里,脚本运行的瀑布图与场景要求已经完全一致。后续使用该脚本新建测试任务运行即可测试获得系统可承受的最大VU数。如果使用Jmeter,PTS等其它性能测试工具测试,VU的HTTP请求模型将是一个线性请求(串行请求),无法生成上述场景描述要求脚本,测试结果也是非常不准确的。

  • 相关阅读:
    无主之地1
    A+B Problem(V)
    取石子(七)
    又见拦截导弹
    【Chat】实验 -- 实现 C/C++下TCP, 服务器/客户端 "多人聊天室"
    【Echo】实验 -- 实现 C/C++下UDP, 服务器/客户端 通讯
    【Echo】实验 -- 实现 C/C++下TCP, 服务器/客户端 通讯
    对决
    重建二叉树
    花儿朵朵
  • 原文地址:https://www.cnblogs.com/kylinTOP/p/12642439.html
Copyright © 2020-2023  润新知