• 0
  • 0
分享
  • 性能测试之混合场景中业务请求比例如何配置——软件测试圈
  • 曼倩诙谐 2021-08-16 10:10:03 字数 1055 阅读 1174 收藏 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 前言综合测试整合测试非常复杂,需要一些开发和逻辑技能。的确如此!那么把这个测试整合到我们的测试策略中的目的是什么呢?这个问题我们先不着急回答,让我们一步步往下看你就知道了。为什么要进行集成测试?以下是一些原因:1、实际上,当开发一个应用程序时,它被分成更小的模块,并将其分配给每个开发者一个模块。一名开发者实现的逻辑与其他开发者完全不同,因此有必要检查开发人员实现的逻辑是否符合预期,并按规定的标准提供正确的值。2、大多数情况下,当数据从一个模块移动到另一个模块时,数据的表面或结构会发生变化。添加或删除某些值会导致后续模块出现问题。3、该模块还与某些第三方工具或应用编程接口互动,这些工具或应用编程...
            0 0 1025
            分享
          •   测试工程师经常遇到的问题有:  · 开发的提测质量不佳,开始提测之后明明还有许多功能没有开发完整就提测,导致测试延期  · 经常出现功能漏测的情况,无法保障产品质量  · 经常出现明明测试过的功能,测试通过之后又出现重复的bug  · 测试环境没问题,但是线上环境就是出现了问题  针对第一种提测质量不佳的情况  测试同学做到规范冒烟测试流程,可以提高开发的产品质量意识,冒烟测试通过之后才算正式进入提测环节,这样可以很好的判断到底是因为开发质量问题延期,还是测试慢延期。  冒烟自测流程如下:  QA同学负责用例输出,开发同学执行接口/功能/场景用例,QA同学负责复杂场景及功能走查验收。  项...
            17 17 1492
            分享
          • ‘核心提示’随着丰趣海淘被申请破产审查,顺丰电商的又一次试水变成一潭死水。顺丰已为电商梦努力了十多年,仍没有开花结果的迹象。阿里、京东们纷纷建起物流体系时,顺丰们为何没能成功“袭击”电商?顺丰曾在物流界留下了许多堪称“神话”的故事。十年前,从广州发往北京的顺丰快件就能够实现次日达。2017年,顺丰控股更名上市,登陆A股后一度收出5个涨停板,成为当时深市第一权重股。此后多年,顺丰控股创办人王卫都是福布斯中国富豪榜上的“物流首富”。有着七十多架飞机的顺丰航空稳坐国内物流空中霸主宝座,让顺丰的水果航线、国际货运包机航线等始终是电商运营者们信赖的选择。但在“物流”之外,如何让顺丰讲出新故事却成了王卫的...
            0 0 858
            分享
          •   关于Fuxi  Fuxi是一款功能强大的跨平台渗透测试工具,该工具基于Python 3开发,支持在Linux、macOS和Windows操作系统上使用,具备良好的跨平台特性。在该工具的帮助下,广大研究人员可以轻松快速地执行渗透测试和安全研究任务。  工具要求  由于该工具基于Python 3开发,因此广大研究人员首先需要在本地设备上安装并配置好Python 3环境。除此之外,该工具的运行还需要使用到下列组件:  Redis   mongoDB  工具安装  Docker使用  docker pull jeffzh3ng/fuxi   docker r...
            0 0 654
            分享
          • 前言作为一名曾在京东做过软测岗面试官的人,笔者将从面试技巧以及软件测试面试题层面,分享出自己在面试的时候最常问的那些问题及面试官希望听到的回答!面试技巧篇一、仪表整洁二、要谦虚,保持空杯心态三、放松心态,用和朋友聊天的方式面试,成功的几率会大大增加面试题及答案篇一、简述负载测试与压力测试的区别压力测试(Stress Testing)压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者不停地向服务器发送请求;或一次性向服务器发送特别大的数据等。看看服务器保持正常运行所能达到的最大状态。人们通常使用测试工...
            0 0 1272
            分享
      • 51testing软件测试圈微信