• 0
  • 0
分享
  • 性能测试之混合场景中业务请求比例如何配置——软件测试圈
  • 曼倩诙谐 2021-08-16 10:10:03 字数 1055 阅读 1256 收藏 0

  在实际性能测试中,我们经常会遇到对多支交易进行混合压测的情况,此时为了在测试环境中模拟生产中交易量分布,我们会根据生产上各交易的交易量占比来配置压测时各交易的用户数,一般情况会采用以下两种方法。

  设置多个线程组

  将不同的交易放到单独的线程组下,根据生产上各交易量占比按比例设置不同线程组的并发用户数量。

  例如有A、B、C三支交易需要进行混合压测,生产上ABC三支交易交易量占比为1:2:3,则在同一个测试计划下设置三个线程组,分别添加一个取样器,三个线程组设置并发用户数为1、2、3(并发用户数按照交易占比进行设置,实际用户数大小参考业务实际情况),如下图所示。

1-1.png

1-2.png

1-3.png

1-4.png

  这种方法适合服务器对以上三支交易的请求处理能力相当的情况,即各交易响应时间接近的情况,这样才能保证最后压测结果各交易请求数量占比接近1:2:3。

  若服务器对以上三支交易的请求处理能力不同,有的处理快有的处理慢,即响应时间有的长有的短,差别较大时,采用以上方法时,压测的结果就会与我们预期结果有差别。

  设置一个线程组,使用Random函数实现

  设置一个线程组,将不同的交易均放在该线程组下,使用生成随机数Random函数与If控制器来保证各交易请求数量占比与预期占比一致。

  例如有两支交易AB,两支交易生产交易量占比为2:8,首先添加一个线程组,该线程组下添加配置元件-Random Variable,用来生成随机数,然后设置随机变量的名称以及最大和最小值,如下图所示。

1-5.png

1-6.png

  之后再在该线程组下添加逻辑控制器-如果(If)控制器1,并填写条件表达式,如刚刚我们所说交易AB交易量占比为2:8,此时我们条件表达式可写为randomnum<=2,然后在该逻辑控制器下添加取样器A,用于发送请求A。

  同理再在该线程组下添加逻辑控制器-如果(If)控制器2,填写条件表达式randomnum>2,然后在该逻辑控制器下添加取样器B,用于发送请求B,这样当生成的随机数小于等于2时,执行取样器A,当生成的随机数大于2时,执行取样器B,如下图所示。

1-7.png

1-8.png

  由于生成随机数函数能保证随机数小于等于2与大于2的占比为2:8,也就能保证压测结果中取样器A和取样器B的请求数量占比接近2:8。

  这种方法不受各交易响应时间长短的影响,无论各交易响应时间接近还是相差较大,都能使最终压测结果中各交易的请求数量占比接近我们之前预期结果。

  我们在做混合场景压测时可根据所测场景来选择以上方法之一进行测试。



作者:刘戈   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   APP测试是一个广泛的概念,根据每个APP的应用场景不一样,测试的方向也略微的不同,在测试过程中需要灵活应用自身所知的测试手段。  安装测试  软件在不同操作系统(Android系统和IOS系统)上是否正常安装。  软件在不同版本的操作系统(如Android 5.0、Android 6.0、Android 7.0、Android8.0和iOS 9.0、iOS 10.0、iOS 11.0、iOS 12.0)上是否正常安装。  软件在不同的品牌手机(华为、三星、OPPO、VIVO等其他品牌手机)上是否正常安装。  卸载旧版本再安装。(这个操作可以排插新版本的安装包是否丢失库,如果是覆盖安装的话...
            0 0 1185
            分享
          • 新浪科技讯北京时间12月6日晚间消息,据报道,知情人士今日称,Twitter CEO埃隆·马斯克(Elon Musk)已将Twitter旧金山总部的部分办公室改造成了卧室,以便通宵工作的员工们使用。两位知情人士称,Twitter的员工们周一发现,公司总部的一些办公室和会议室里面变得光秃秃的,只有床垫和窗帘。当然,有的房间布置得比较齐全,有一张大床、一个床头柜、一盏台灯、两把扶手椅,以及明亮的橙色地毯。目前尚不清楚共有多少间办公室被改造成了卧室,但一位知情人士称,每层楼可能有四到八间卧室,这些房间看起来“挺舒服”。另一位知情人士称,其中几间卧室位于一个基本没有使用过的楼层上。其中一间卧室的垃圾桶...
            0 0 1009
            分享
          • 常用的Android自动化测试框架包括UIAutomator、Appium以及Monkeyrunner等;其中,UIAutomator是谷歌在发布Android4.1版本时推出的一款基于Java语言的UI测试框架,由此,UIAutomator只能运行在4.1及其以上版本中。本篇文章将为大家介绍如何搭建基于Java+UIAutomator的测试环境。一、UIAutomator简介首先,作为Google自家推出的一款开源的UI自动化测试框架,其稳定性和可靠性可以得到极大的保障,运行时也有更多的权限。其次,UIAutomator可以跨进程操作,运行速度较快;但是UIAutomator不支持Andro...
            0 0 1453
            分享
          • 首发:https://mp.weixin.qq.com/s/h_7n1EAPD_UyRkN3L4wxIQ同类文章推荐:https://mp.weixin.qq.com/s/nh4c9El9FjJtX4vy8m2ELA 世纪性难题:剪不断、理还乱的开发测试关系大基建时代,人们怀揣着“三总五项”的梦蜂拥入土木建筑的行列,不知是否有人想到他们中的大部分归宿是“提桶跑路”。时代的浪潮一波接着一波奔腾而来,有高潮就有低谷,有兴盛必有衰亡,烈火烹油时代的我们不提前着手准备,浪潮褪去后,裸泳将会是一件尴尬局促的事情。01行业与个人经济发展遵循着一条客观规律,复苏》繁荣》衰退》萧条。它不因个人、组织...
            1 1 1328
            分享
          • TCP四次挥手第一次挥手:客户端发送一个FIN为1,序列号随机生成的报文给服务器(假设序列号为M),进入FIN_WAIT_1状态;第二次挥手:服务器收到这个报文之后,发送一个ACK为1,acknowledge number=M+1的应答报文给客户端,进入CLOSE_WAIT状态。此时客户端已经没有要发送的数据了,但仍可以接受服务器发来的数据。第三次挥手:服务器发送一个FIN为1,序列号随机生成的报文给客户端(假设序列号为N),进入LAST_ACK状态;第四次挥手:客户端收到服务器的FIN报文后,进入TIME_WAIT状态;接着发送一个ACK为1,acknowledge number=N+1给服...
            0 0 1227
            分享
      • 51testing软件测试圈微信