• 7
  • 7
分享
  • JMeter根据负载量计算并发用户数实例——软件测试圈
  • 曼倩诙谐 2020-11-24 10:52:37 字数 2304 阅读 3980 收藏 7

  业务需求

  假设公司领导现在给你分配了一个性能测试需求如下:

  1:公司有1000人在上班时间段会登录平台进行打卡操作,可能会登录打卡多次

  2:业务高峰时间段在8:00-8:30,半小时

  3:需要保证90%用户的响应时间在1s以内

  4:保证在半小时内支撑5000笔打卡业务完成,同时90%业务时间不超过1s,半小时内最大系统并发数能达到多少?每秒最大用户并发能达到多少?

  分析需求

  a.1000人在30分钟内完成登录,那么每分钟有1000/30=33的人登录,每秒有0.56人登录,也就是2s中有1个人登录;

  b.5000笔打卡业务在30分钟内完成,那么每秒中需要完成5000/(30*60)=2.78个打卡事务;

  综合就是半小时内,每2s有一人登录,每秒需有3个打卡事务;也就是线程持续时间30分钟,打卡tps=3;

  循环一次,登录317ms+打卡976ms=1293ms,1s中可迭代0.77次;30分钟可迭代1392次;登录请求1个线程即可满足要求;

  30分钟想完成5000笔打卡,需并发线程5000/1392=3.6 即4个线程;

  6-1.png

6-2.png

6-3.png

  实际请求中,还需要考虑登录时输入账户密码的时间,可加定时器;

  测试模型构建 & 用例设计

  这种需求是典型的根据负载量计算并发数的场景。首先我们需要设计一下业务场景;

  一、场景构建:登录业务操作流程、考勤打卡操作流程;

  二、场景用例设计

  1.测试场景类型:

  单业务基准测试、单业务压力测试、单业务负载测试;

  综合业务基准测试、综合业务压力测试、综合业务负载测试;

  2.业务量线程数的确定:

  登录业务-线程数确定、考勤打卡-线程数确定;

  3.测试场景用例设计:

  登录并发-场景用例、登录业务量-场景用例、并发考勤-场景用例、考勤打卡业务量-场景用例;

  三、测试脚本用例设计:

  登录-脚本用例、考勤打卡-脚本用例;

  模型构建

  登录业务-操作流程

  a)访问登录页面;

  b)输入账号、密码,点击【登录】,跳转到主页;

  c)点击【退出】,跳转到登录页面;

  登录打卡-操作流程:

  a)访问登录页面;;

  b)输入账号、密码,点击【登录】,跳转到主页;

  c)点击【考勤管理】,进入考勤主页;

  d)点击【打卡】;

  e)进入考勤打卡页面,查看打卡记录;

  e )点击【退出】,跳转到登录页;

  场景设计

  性能测试过程中,首先应该设计测试场景,然后针对场景设计脚本。为了真实反映被测对象的性能问题,需要尽可能模拟出被测对象可能发生瓶颈的业务场景。然后设计针对业务的测试场景;

  常用测试场景的类型:

  性能测试通常有几种常用测试场景:单业务基准测试、单业务压力测试、单业务负载测试、综合业务基准测试、综合业务压力测试、综合业务负载测试;

  1)基准测试

  测试某个具体业务是否满足系统设计 或 用户期望的性能指标;基准测试可以为并发基准、业务量基准;

  如,期望登录接口支持500个用户并发登录,同时响应时间不超过需求值。满足则认为基准测试完成,否则失败;

  2)压力测试

  测试某个具体业务在最大负载下,持续服务的时长,以此验证被测业务的稳定性;

  压力测试过程中所设计的负载,是以系统基准测试为标准,如登录接口最大并发为500个并发,则压力测试的负载设计为500个;通过运行时长的变化,验证服务器在系统最大负载下持续服务的能力;

  3)负载测试

  测试某个具体业务能够承受的最大负载,验证被测业务能够承受的最大负载数;

  如系统基准测试最大并发为500个,则通过多次测试,逐步加大负载,最终获得被测业务的最佳负载。在最佳负载下,系统需要满足各项性能指标;

6-4.png

  登录打卡345ms*5=1725ms

  加了事务控制器后,登录打卡1397ms

6-5.png

  实际情况,还需要考虑以下情形的思考时间,如:

  用户输入用户名、密码:5s;

  打开考勤后等待时间:2s;

  用定时器模拟思考时间;

  那么一次登录打卡需要时间(t)为1.397+5+2=8.397s;

  那么30分钟(T)可以迭代登录打卡的次数=30*60/8.397=214.36;实际需要5000笔业务数;

  需要设置的线程数=5000/214.36=23.32,为了保证>=5000笔业务数,所以线程取24;线程数=5000/(60*T/t)=5000*[t/(60*T)]

  由此可以得出:Thread = BC*[t/(60*T)],

  BC:业务数/业务量,本例中 BC=5000 ;

  t:单用户单次业务消耗时间,尽可能模拟真实用户的真实行为,本例中 t=8.397s;

  T:考察时长,本例中 T=30分钟;

  关于Thread,这里计算的是需要的线程数,事实上这个公式计算的是单位时间平均并发数。就是单位时间内有多少用户或者线程并发向服务端发起请求;

  假如登录打卡业务场景,计算的是24.

  在jmeter中表示需要系统平均需要24个线程同时发起请求才能在对应的时间段内支撑对应的业务量;

  在真实的用户场景中,则表示平均每秒最大支撑24个用户同时发起请求才能在对应的时间段内支撑对应的业务量;

  这个计算的是评价并发

  对应的峰值并发:Thread_Max = Thread + 3*根号Thread

  如果平均并发是24的花,那么Thread_Max = 24 + 3*根号24 = 38.7,每秒的并发用户峰值大约是39。

6-6.png


作者:星空6

出处:https://www.cnblogs.com/canglongdao/p/12620948.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   日前,叮咚买菜(DDL.NYSE)公布了2022年第四季度财报。报告显示,2022年第四季度,叮咚买菜该季度实现营收62.0亿人民币,同比增长13.1%;非美国通用会计准则下的净利润为1.16亿元,2021年同期则为净亏损10.96亿元;美国通用会计准则下的净利润4990万元,是公司首次实现了单季GAAP净利润转正,实现全面盈利。  叮咚买菜之所以能够实现盈利,首先是2022年四季度的毛利率达到了32.9%,比上一年同期提升了5.2个百分点,毛利额为20.4亿元,同比上一年同期增长34.2%。  其次,叮咚买菜2022年四季度的履单费用率为24.1%,比2021年同期优化了8.5个百分点,...
            0 0 919
            分享
          •   技术永远不会停滞不前,因此,尽管 5G 通信让人感觉非常新颖和炫目,但业界已经在为下一代技术做准备了。LG 电子和弗劳恩霍夫海因里希-赫兹研究所(Fraunhofer Heinrich-Hertz Institute)现在进行了一项测试,利用 6G 技术创造了新的数据传输距离记录。  正如大家所期待的那样,6G 的功能预计将与 5G 及其前代产品类似,但速度更快,效率更高。这是因为它首次扩展到了太赫兹(THz)频率,使其数据传输速率比 5G 快 50 倍,而延迟仅为 5G 的 10%。  几年来,三星和 LG 等公司一直在测试和改进这项技术,不断刷新 6G 数据传输的距离记录。现在,在新的...
            0 0 628
            分享
          •   作为软件测试的守护神,软件测试岗位越来越受到IT企业的重视,也有更多人想要从事软件测试工程师职业。那么软件测试工程师的要求是什么?软件测试能干到多少岁呢?我们今天就来为大家介绍一下。  软件测试工程师其实是没有任何要求的,它不像开发行业对学历要求那么高,对逻辑思维要求那么强。什么性别、什么学历都可以担任,只要你能够学会并掌握基本的测试方法。如果硬要说有什么要求的话,那就是要细心、耐心。因为软件测试的工作重复性较强,一定要能够耐得住一遍又一遍地重复进行测试工作,而且要注重细节,不忽略每一处bug,尽自己所能提升软件质量。另外与人沟通的能力也很重要,因为在发现bug之后往往要跟软件开发进行沟通...
            0 0 632
            分享
          • 您还记得大多数开发人员跳上代码质量潮流之前的情况吗?在那些日子里,熟练地放置main() 方法被认为既敏捷又足以进行测试。kes!从那时起,我们已经走了很长一段路。首先,我非常感谢自动化测试现已成为以质量为中心的代码开发的重要方面。这不是我要感谢的全部。Java?开发人员拥有大量工具,可通过代码指标,静态分析等来衡量代码质量。哎呀,我们甚至设法将重构归为一组便捷的模式!确保您的代码质量要获得与代码质量有关的问题的答案,请访问由Andrew Glover主持的 “代码质量”讨论论坛。所有这些新工具使确保代码质量比以往更加容易,但是您必须知道如何使用它们。在本系列文章中,我将重点介绍确保代码质量的...
            0 0 1457
            分享
          • 没错,我,本人,就是那种卷心菜,就是那种想卷但卷不过别人的, 我每天吭哧吭哧写代码,写到办公区里空荡荡地只剩下我一个人,但我们组里,就我需求写得最慢,bug写得最多,我弟常问我:“哥,别的同事加班都没你多你绩效一定不错吧?”但、其实是因为我写不过别人,尤其公司里那个卷王,代码写得好,还写得快,改bug测试小姐姐一提他立马响应改好。 搞得测试组那边买奶茶常常会给他捎一杯,从来不带我。我真的、写bug写得好慢啊。 这天,卷王关掉关掉显示器,拎起电脑包甩到肩膀上就要走,经过我的工位凑过来瞄了一眼,意味深长地说“其实代码没必要自己写。”“我很多代码都复制粘贴的”他神秘一笑。我眼睛都瞪大了:“不是吧!没...
            0 0 918
            分享
      • 51testing软件测试圈微信