• 【Jmeter】在进行综合场景压测时,由于不同的请求,要求所占比例不同,那如何实现呢?


    在进行综合场景压测时,由于不同的请求,要求所占比例不同,那如何实现呢?

    有人说将这些请求分别放到单独的线程组下,然后将线程组的线程数按照比例进行配置,这种方法不是很好,想想,不同的请求,服务器对其处理能力不同,有的处理快,有的处理慢。若采取上述方案的话,并不会按照我们预期的比例进行并发。

    那么如何真实模拟按比例进行并发呢?

    之前在使用LR进行过类似场景的测试,思路是:每次向服务器发出请求时,先生成一个随机数,我们对随机数的取值划分若干个范围(对应若干个业务请求),然后对随机数进行判断,当随机数落在某个范围内,就可以执行对应的请求。比如,我们压测的过程中,要访问百度和51ste,并且请求比例是2:8,那么可以规定随机数取值1<=random<=100,然后再划分2个范围:当随机数的取值在80到100之间((80,100]),则访问百度;当随机数取值在1和80之间([1,80]),则访问51ste;根据概率论,当取样量足够大的话,访问百度和51ste的请求比例会比较接近2:8.也可以在LR在场景设计里设置不同的请求的比例,来实现。

    那么JMeter能否实现这种要求?答案是可以的,下面我们使用Jmeter结合刚才的例子进行讲解:

    首先,我们需要一个能够生成随机数的函数,刚好JMeter提供了这个函数

    在测试计划下,我们右键“添加”>配置原件>Random Variable

    设置随机数的变量名称为test,设置取值范围1到100

    添加线程组,右键线程组添加“逻辑控制器”——如果(If)控制器

    添加判断条件,如果随机数<=80

    在If控制器下面 添加>Sampler>HTTP请求,访问51ste

    添加判断条件,如果随机数>80

    在If控制器下面 添加>Sampler>HTTP请求,访问百度

    我们在线程组下 添加>后置处理器>Debug PostProcessor,好展示随机数取值情况

    在线程组 添加>监听器>用表格察看结果

    在线程组中设置10个线程数

    运行jmeter验证,取值是否按照比例请求,结果如下,访问51ste 8次,访问百度2次!

    在线程组 添加>监听器>察看结果树,再次运行查看结果,在请求Debug PostProcessor中的响应数据中查看随机数取值情况

    问题思考:设置10个线程数,循环执行10次,会有什么结果?

    7天练完接口自动化测试30个实战项目,28K入职字节测试岗。【自动化测试/接口测试/软件测试/性能测试/Jmeter】

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    在这里插入图片描述

    这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 相关阅读:
    SpringBoot“互联网+”居家养老服务平台微信小程序的设计与实现源码
    CV计算机视觉每日开源代码Paper with code速览-2023.10.13
    Scrum敏捷开发企业实战培训
    如何利用人才测评系统提升企业招聘效率
    实现 企业微信认证 网络准入认证 配置
    Nginx配置实例——反向代理
    JAVA:实现crc校验算法(附完整源码)
    EPLAN小知识——如何在费斯托(FESTO)官网下载EPLAN部件
    ETL工具-nifi干货系列 第十六讲 nifi Process Group实战教程,一文轻松搞定
    基于SpringBoot招聘管理系统设计和实现(源码+LW+调试文档+讲解等)
  • 原文地址:https://blog.csdn.net/NHB456789/article/details/133206245