• JMeter学习笔记(六)-负载与监听


    1. 场景设计

    场景设计的原则:忠于用户实际操作,组合用户的各种操作到场景中来。

    JMeter场景主要通过线程组设置来完成的,对于复杂场景还需要与逻辑控制器配合完成。

    2.场景设置

    JMeter线程组实际上是建立一个线程池,JMeter根据用户的设置进行线程池的初始化,在运行时做各种异常的处理。

    参数说明:

    √ 名称:可以随意设置,最好有业务意义

    √ 注释:可以随意设置,可以为空

    √ 在取样器错误后要执行的动作:也就是其中的某一个请求出错后的异常处理方式。

      (1)继续:请求(Sampler元件模拟的用户请求)出错后继续运行;

      (2)Start Next Thread Loop:如果出错,则同一脚本中的余下请求将不再执行,直接重新开始执行;

      (3)停止线程:如果遇到请求(Sampler元件模拟的请求)失败,则停止当前线程,不再执行;

      (4)停止测试:如果某一线程的某一请求失败了,则停止所有线程,也就是 听下整个测试;

      (5)Stop Test Now:如果有现成的请求失败了,马上停止整个测试场景。

    √ 线程属性:

      (1)线程数:运行的线程数设置,一个线程对应一个模拟用户

      (2)Ramp-Up Period(in second):线程启动开始运行的时间间隔,单位是秒;

      (3)循环次数:请求的重复次数,选择后面的forever,那么请求将一直继续除非停止或崩溃;如果不选择forever而在输入框中输入数字,那么请求将重复指定的次数;

      (4)Delay Thread creation util needed:勾选,线程在Ramp-up Period的间隔时间启动并运行;

      Java线程相关知识:

      (1)NEW:创建未启动,已经实例化,只是没有开始运行线程的Run方法;

      (2)RUNNABLE:就绪状态,线程对象创建后,其他现成调用了该对象的start()方法,该状态的线程位于可运行线程池中,已经准备好了只等获取CPU的使用权,然后开始运行;

      (3)RUNNING:运行状态,就绪状态的线程获取了CPU使用权执行程序代码;

      (4)BLOCKED:阻塞状态,线程因为某种原因放弃CPU使用权,暂时停止运行(典型的如IO等待导致的线程处于BLOCKED状态);直到线程进入就绪状态,才有机会转到运行状态;

      (5)DEAD:死亡状态,执行完毕或者异常退出,线程生命周期结束。

    √ 调度器配置:设置何时开始运行

      (1)启动时间:测试计划什么时候启动,时间格式“2018/03/22 09:10:10”

      (2)结束时间:测试计划什么时候结束,时间格式“2018/03/22 12:13:14”

      (3)持续时间:测试计划持续多久时间,如果启动时间+持续时间大于结束的时间,那么此设置覆盖结束时间

      (4)启动延迟:点击执行按钮后(此时间未T),仅初始化场景,不运行线程,等待延迟到时候开始运行线程。

    3. 场景运行

    JMeter的场景运行方式分为两种,一种是GUI(视窗运行,即我们可以看到的运行界面)方式;一种是非GUI方式运行(命令窗口)。

    JMeter的场景运行基于运行架构分为两种,一种是本地化运行,即单机运行;另一种是远程运行。

    JMeter非GUI运行的命令:

    (1)java -jar %JMETER_HOME%inApacheJMeter.jar -n -t %JMETER_HOME%scriptJforum4-1-01.jmx -r -l result.jtl

    (2)%JMETER_HOME%injmeter -n -t %JMETER_HOME%scriptJforum4-4-01.jxm -l%JMETER_HOME% esult esults.jsl

    4. 性能参数配置

    5. 测试监听

    性能测试监控的主要任务是获取运行状态收集测试结果,测试结果有事务响应时间、吞吐量及服务器硬件性能(CPU、内存、磁盘等)、JVM使用情况、数据库性能状态等。

      5.1 JMeter监听器

      常使用的监听器主要是Summary Report或者Aggregate Graph。

      Summary Report以表格的形式显示取样器结果,如果不同取样器(不同请求)拥有相同的名字,那么在Summary Report中会统计到同一行,所以在给取样器取别名时最好不要为空,建议按业务功能来取名。

      

      结果说明如下:

      √ Label:取样器别名(或者说是事务名),比如我们提交一笔订单,那么取样器我们可以命名为“订单提交

      √ #Samples:取样器运行次数(提交了多少笔业务)

      √ Average:请求事务的平均响应时间

      √ Min:请求的最小响应时间

      √ Max:请求的最大响应时间

      √ Std. Dev:响应时间的标准偏差

      √ Error%:事务错误率

      √ Throughput:吞吐率,常说的TPS

      √ Recevied/Sent KB/sec:每秒数据流量包,单位KB

      √ Avg.Bytes:平均数据流量,单位Byte

      在Summary Report界面可以设置结果属性(包含哪些结果字段),点击到下图所示界面。

      

      Aggregate Graph以表格形式显示取样器结果,如下图所示。

      

      结果说明:

      √ Lable:请求别名

      √ Samples:执行了多少次取样

      √ Median:响应时间中间值

      √ 90% Line:90%事务响应时间范围

      √ Min:最小响应时间

      √ Max:最大响应时间

      √ Error%:出错率

      √ Throghput:吞吐量,可以理解为TPS

      √ Received/Sent KB/sec:数据传输量,单位KB

  • 相关阅读:
    LeetCode() Rotate Image
    LeetCode() Sort Colors
    LeetCode() Spiral Matrix
    LeetCode() Find Minimum in Rotated Sorted Array
    LeetCode(169)Majority Element and Majority Element II
    LeetCode(88) Merge Sorted Array
    LeetCode(283) Move Zeroes
    sql临时表和表变量
    自增长字段自定义
    [转]作者:朱 茂海 CentOS安装iRedMail web邮件服务器
  • 原文地址:https://www.cnblogs.com/mrgavin/p/8624806.html
Copyright © 2020-2023  润新知