zoukankan      html  css  js  c++  java
  • jmeter-获取系统最大并发数

    问题:有一个页面,需要测试一下最大支持多少用户并发?

    此时需计算的是最大用户并发数,强调的是同时操作,也可以理解为同时发起请求;

    针对这个问题,我们可以通过rps定时器或阶梯加压线程组测试每秒最大的请求数;

    首先需要导入jmeter-plugins插件 ,然后去初始化需要用到的插件

    在平衡状态下,并发数=RPS*响应时间

    a)使用jp@gc - Throughput Shaping Timer(吞吐量成形计时器,调节rps的定时器);

    设置线程组中线程数为50,ramp-up时间为1s,永远循环;

    同时在请求下面加Throughput Shaping Timer定时间,rps由1增加到400/s;

    测试最终运行时间取 线程组运行时间 与 定时器时间的最小值;

    设置后我们需要添加几个性能测试中常用的监听器:

    添加监听器Hits per Second(每秒请求数)

    观察HPS走势,HPS在140的时候持续了十几秒,随后HPS稳定在100

     添加监听器 Transaction per second

    TPS在48/s稳定了十几秒,然后稳定在30/s

      添加监听器 jp@gc - Response Times Over Time

    平均响应时间在3s以内

     

     在比较稳定的情况下,最大rps=140/s,平均响应时间=1.6s,则最大并发=140*1.6=224,也就是224个线程同时启动可满足1s内140/s HPS压力值

    b)使用阶梯加压线程组

    功能如下:

    This group will start 100 threads:设置线程组启动的线程总数为400个;

    First,wait for N seconds:启动第一个线程之前,需要等待N秒;

    Then start N threads:设置最开始时启动N个线程;

    Next,add 100 threads every 2 seconds,using ramp-up 10 seconds:每隔2秒,在10秒内启动100个线程;

    Then hold load for 40 seconds:启动的线程总数达到最大值之后,再持续运行40秒;

    Finally,stop 100 threads every 0 seconds:同时停止100个线程;

    设置阶梯线程组各配置项后,再添加各个监听器后观察,发现得出的tps,rps,平均响应时间与添加rps监听器测试出的结果基本一致

    下面可以来验证一下,线程组的线程数设置为224,其它值可随意,(如,设置定时60s,循环次数设置为100,因为并发数=rps*响应时间 是在平衡状态下得出的结论,所以运行时间不能太短)

    添加监听器Hits per Second,Transactions per Second,Response Times Over Time 查看这些指标是否和上面得出的结果一致(预期应该是满足的)

  • 相关阅读:
    grep在一个特定的文件搜索文件夹keyword
    Mysql HA
    通过wmi获取本地硬件信息的一些疑问。
    nginx+tomcat 架构 HttpServletRequest.getScheme()获取正确的协议
    mybatis配置log4j控制台打印SQL语句
    mybatis使用${}拼接sql出错??
    【MySQL】JDBC连接MySQL的一些问题以及解决办法
    mybatis 嵌套查询子查询column传多个参数描述
    关于一些对location认识的误区
    Nginx+lua学习
  • 原文地址:https://www.cnblogs.com/hpliud/p/14430157.html
Copyright © 2011-2022 走看看