美文网首页
『动善时』JMeter基础 — 7.JMeter测试计划元件(线

『动善时』JMeter基础 — 7.JMeter测试计划元件(线

作者: 繁华似锦Fighting | 来源:发表于2020-12-23 21:49 被阅读0次

    JMeter有一些基础的测试元件,像上一篇文章说的用JMeter发送请求的练习中,测试计划中所添加的线程组、取样器、监听器等都属于JMeter测试计划的元件。

    下面我们就来逐一介绍一下有哪些测试计划元件,和他们的作用。

    1、测试计划:Test Plan

    测试计划用来描述一个性能测试,包含性能测试所有相关的功能。也就是说进行一次性能测试的所有内容都是基于一个测试计划中。

    • JMeter中一个脚本就是一个测试计划(Test Plan),也是一个管理单元。JMeter的请求模拟与并发数设置都在脚本文件中一起设置。(并发数就是设置线程数,一个线程代表一个虚拟用户)

    • 脚本中只能有一个测试计划。

    • 测试计划中至少有一个线程组:Jmeter 负载是通过线程组驱动的,所以至少要有一个线程组。

      我们可以把不相关联的业务分布在不同的线程组中。

    • 至少有一个取样器:测试的目的是模拟用户请求,没有取样脚本就没有意义。

    • 至少有一个监听器:我们需要根据测试结果来分析系统性能,所以至少得有一个监听器。

    一个测试计划中,添加选项下面的内容都是JMeter测试计划的元件,下图所示:

    2、线程(用户):Threads(Users)

    线程(用户)就是我们通常要添加运行的线程。通俗的讲,一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。

    线程组中包含的线程数量在测试执行过程中是不会发生改变的。每个线程完全独立的运行测试计划,互不干扰,多个线程用于模仿对服务器的并发访问。

    所有控制器和采样器必须在线程组下。其他元件(例如侦听器)可以直接放置在测试计划下,在这种情况下,它们将应用于所有线程组。

    (1)添加线程(用户)

    “测试计划”右键 —> “添加” —> “线程(用户)”,有三个添加线程组的选项。如下图:

    注意:如果你还安装了其他的组件或者插件的话,还会有一些其他的线程选项。

    说明:

    • Setup thread group:setUp线程组

      一种特殊类型的线程组,可用于执行预测试操作。和普通的线程组元件一样,不同的是,这种类型的线程执行测试前进行定期线程组的执行。

      换句话说,setUp线程组执行顺序是,它会在普通线程组执行之前被触发。

      应用场景举例:测试数据库操作功能时,用于执行打开数据库连接的操作。

    • Teardown thread group:tearDown线程组

      一种特殊类型的线程组,可用于执行测试后动作。和普通的线程组元件一样,不同的是,这些类型的线程执行测试结束后执行定期的线程组。

      换句话说,这些类型的线程执行测试结束后执行定期的线程组。

      应用场景举例:测试数据库操作功能时,用于执行关闭数据库连接的操作,或者清理测试数据。

      需注意:默认情况下,如果测试按预期完成,则TearDown线程组将不会运行。

      如果需要运行TearDown线程组,则需要取保测试计划Test Plan界面中“Run tearDown Thread Groups after shutdown of main threads”(主线程结束后运行tearDown线程组)选项被勾选。

    • Thread group:线程组

      这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。

    (2)线程组内容界面说明

    线程组、setUp线程组、tearDown线程组三个线程组的内容界面是一样的,都如下图:

    说明:

    @1、取样器错误后要执行的动作(Action to be taken after a Sample error):

    • 继续(Continue):忽略错误,继续执行。

    • 启动下一进程循环(Start Next Thread Loop): 忽略错误,线程当前循环终止,执行下一个循环。

    • 停止线程(Stop Thread):当前线程停止执行,不影响其他线程正常执行。

    • 停止测试(Stop Test):整个测试会在,当前所有正在执行的线程,执行完毕后停止。

    • 立即停止测试(Stop test now):整个测试会立即停止执行,当前正在执行的取样器可能会被中断。

    @2、线程属性(Thread Praperties):

    • 线程数(Number of Thread (users)):线程数也就是并发数,每个线程将会完全独立的运行测试计划,互不干扰。

      每一个线程就相当于一个用户,多个线程用于模仿对服务器的并发访问。

    • Rum-up时间(秒):在该设置时间内启动所有线程(就是启动上边设置的线程数)。

      换句话说,就是设置时间内把请求发送出去了。(并不包括返回结果的时间)

    • 循环次数(Loop Count):该项设置线程组在结束前每个线程循环的次数。

      换句话说,就是上边设置的线程数,执行的次数。

      可以勾选永远,如果未设置运行时间,需要手动停止。

    • 延迟线程创建直到需要(Delay Thread creation until needed):默认情况下,测试开始的时候,所有线程就被创建完了。如果勾选了此选项,那么线程只会在合适的需要用到的时候创建。

    • 调度器(Scheduler):可以更灵活的控制线程组执行的时间

    @3、调度器配置(Scheduler Configuration):

    • 持续时间(秒):如果选择了调度程序复选框,控制测试执行的持续时间,以秒为单位。

    • 启动延迟(秒):如果选择了调度程序复选框,控制测试在多久后启动执行,以秒为单位。

    可以在调度器中配置持续时间(秒)和启动延迟(秒)来控制每个线程组的持续时间以及启动后的秒数。当测试开始时,JMeter将在启动线程组的线程之前等待启动延迟(秒),然后运行配置的持续时间(秒)。

    例:如果使用了10个线程,并且启动周期为100秒,那么JMeter将花费100秒来启动和运行所有10个线程。每个线程将在上一个线程开始后10(100/10)秒开始。如果有30个线程,启动周期为120秒,则每个连续线程将延迟4秒启动。

    参考:

    相关文章

      网友评论

          本文标题:『动善时』JMeter基础 — 7.JMeter测试计划元件(线

          本文链接:https://www.haomeiwen.com/subject/oeounktx.html