• Jmeter


    一、前言

      在工作中,有时需要模拟用户高并发场景,可以借助jmeter的集合点模拟测试

    二、场景  

      Jmeter线程启动了就会直接发送测试请求,如果要模拟在一瞬间高并发量测试的时候,需要调高线程数量,这很耗测试机器的性能,往往无法支持较大的并发数,无法控制每次测试的瞬间并发量。那么,该如何解决上述问题呢?

    三、解决方案   

      使用集合点,阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力。

    1、集合点作用域

    • Synchronizing Timer是在每个sampler(采样器)之前执行的,而不是之后,不管这个定时器的位置放在sampler之后,还是之前,都会执行同步定时器
    • 作用域:当执行一个sampler之前时,和sampler处于相同作用域的定时器都会被执行;
    • 如果希望定时器仅应用于其中一个sampler,则把该定时器作为子节点加入

    四、实例演练

    1、添加集合点,在Jmeter里是synchronized timer

    1)Number of Simulated Users to Group by

    • 每集合够多少个模拟用户(线程)后发送一次测试请求;
    • 如果设置为0,等同于设置为线程租中的线程数;
    • 确保设置的值不大于它所在线程组包含的用户数(线程数)-- 一直集结线程而不发出测试请求,直到超时(如果设置了的话)。

    例子说明:“Number of Simulated Users to Group by: 5”表示并发量是5。也就是说,Jmeter会等到5个线程都运行到此处时,这五个线程才开始执行后面的操作,先到达的线程将会在此等候。
    2)Timeout in milliseconds

    • 超时时间,即多少毫秒后同时释放已集结的的线程,发送测试请求;
    • 如果设置为0,Timer将等待线程数达到了"Number of Simultaneous Users to Group"中设置的值才释放。如果大于0,那么如果超过Timeout in milliseconds中设置的最大等待时间(毫秒为单位)后还没达到"Number of Simultaneous Users to Group"中设置的值,Timer将不再等待,释放已到达的线程。

    2、设置线程组属性

      因为现在是使用集合点来实现高并发测试,所以现在线程组属性中就可以设置线程在较长的时间来启动,这样测试机器的压力就会相对小一点;

    3、添加相关请求,结果树等,运行查看效果

      通过结果树可以看到,请求是批量执行的;
    1)开始执行的脚本,观察请求的增加数量趋势;
    2)对比请求的发送时间;
    注:也可以添加聚合报告、表格察看结果、Hits per Second、Transactions per Second等来监控执行结果。

     五、聚合报告参数详解 

    • Label:就是请求名称
    • #Samples:总线程数,值 = 线程数 * 循环次数
    • Average:单个请求的平均响应时间,值 = 总运行时间 / 发送到服务器的总请求数,截图中的值是这么计算出来的
    • Median、90%line、95%line、99%line分别代表50%的用户响应时间、90%的用户响应时间、95%的用户响应时间、99%的用户响应时间,也就是有百分之多少的请求小于这个值。其中,90%line是性能测试中比较重要的一个衡量指标。
    • Min:最小响应时间
    • Max:最大响应时间
    • Error%:错误率,发生错误的请求 / 总请求数,上面示例中错误率为0,再看下面这个示例 login的错误率 = 32 / 500 =0.064
    • Throughput:吞吐量,表示每秒完成的请求数
    • KB/sec:以每秒发送的千字节为单位测量的吞吐量
  • 相关阅读:
    移动前端webApp开发点滴积累20140524
    做业务系统与公众产品的区别
    浅谈浏览器兼容性问题-(4)工具及调试
    浅谈浏览器兼容性问题-(3)他山之石整理
    浅谈浏览器兼容性问题-(2)本人解决方案理解与积累
    使用Using的注意事项
    [转]VMPlayer的Briged网络配置
    [转]移动互联网应用技术架构简介-Restful服务
    理解WCF中的Contracts
    [翻译]在ASP.NET Web API中通过OData支持查询和分页
  • 原文地址:https://www.cnblogs.com/Chilam007/p/14998354.html
Copyright © 2020-2023  润新知