添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 取样器(Sampler): 模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、ftp请求等等。

  • 监听器: 负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

  • 断言: 用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。

  • 逻辑控制器: 允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

  • 定时器: 负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。

  • 配置元件: 维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。

  • 前置处理器和后置处理器: 负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。

    测试计划 Test Plan

    用来描述一个性能/接口测试脚本和场景设计,包含与本次测试所有相关的功能。也就是说,使用jmeter进行测试的所有内容都是于基于一个测试计划的。

    测试计划名称和注释: 整个测试脚本保存的名称,和对该测试计划的注释,可以自定义,最好能表达脚本的意义。

    用户定义的变量: 在测试计划上可以添加用户定义的变量,相当于是全局变量。一般添加一些系统常用的配置。如果测试过程中想切换环境,切换配置, 一般不建议在测试计划上添加变量,因为不方便启用和禁用,一般是直接添加用户自定义变量组件 。如下所示:

    **独立运行每个线程组: **用于控制测试计划中的多个线程组的执行顺序。不勾选时,默认各线程组并行、随机执行。如下图,线程组1和线程组2的线程是并行执行的,执行过程线程的执行顺序是不可预料的。

    如果勾选了独立运行每个线程组,可以保证线程组1的执行一定在线程组2之前,线程组1执行完毕,才会执行线程组2,即顺序执行各线程组。

    补充说明:

    线程组中的取样器的执行顺序: 默认是从上到下执行 。交替控制器、随机控制器、随机顺序控制器和循环控制器等可以改变取样器的执行顺序。

    主线程结束后,运行tearDown线程组(Run tearDown Thread Groups after shutdown of main threads)

    当线程组停止运行时仍继续运行tearDown线程组,该选项结合线程组的执行配置使用

    函数测试模式(Functional Testing)

    如果选中了此选项,同时监听组件如“查看结果树”配置了保存到一个文件中,那么jmeter会将每次的请求结果保存到文件中。一般不建议勾选。

    添加目录或jar包到classpath(Add directory or jar to classpath)

    添加文件或jar包,此功能最常用于调用外部jar包。当脚本需要调用外部的java文件或jar包时,可以把jar包路径添加到这里,然后在beanshell中直接import进来,并调用jar包中的方法。

    线程组 Thread Group

    一个性能测试请求是基于一个线程组完成的,一个测试计划必须至少有一个线程组。

    一个计划中可创建一个或多个线程组,在测试计划中,多个线程组是并行执行的。也就是说这些线程组是同时被初始化并同时执行线程组下的Sampler的

  • 继续:继续执行接下来的操作
  • Start Next Loop(启动下一进程循环):忽略错误,执行下一个循环
  • 停止线程:退出该线程(不z再进行此线程的任何操作)
  • 停止测试:等待当前执行的采样器结束后,结束整个测试
  • Stop Test Now:直接停止整个测试
  • 线程数:模拟的用户数量。线程数也就是并发数,每个线程将会完全独立的运行测试计划,互不干扰。多个线程用于模仿对服务器的并发访问

  • Ramp-up Period(in seconds):达到指定线程数所需要的时间。 举例:线程数设置为50,此处设置为5,那么 每秒启动的线程数 = 线程数50/5 = 10

    当这个值设置的很小、线程数又设置的很大时,在刚开始执行时会对服务器产生很大的负荷

  • 循环次数:选中“永远”,则一直循环下去。

  • 延迟创建线程直到需要(Delay Thread creation until needed):当线程需要执行的时候,才会被创建。如果不选择这个选项,那么,在计划开始的时候,所有需要的线程就都被创建好了。

  • 调度器:配合区域3说明吧。

  • 持续时间(秒):在此选项填入N,说明这个计划,从某个开始时间算起,执行N秒后结束。(会忽略 结束时间 的选项)
  • 启动延迟(秒):在此选项填入N,手动点击开始执行计划,然后延迟N秒后,计划才真正开始执行。(会忽略 启动时间 的选项)
  • 启动时间:当点击开始测试时,将等到此处填写的启动时间,然后真正开始测试。
  • 结束时间:当开始测试时,将等到指定的开始时间开始测试,然后会停在此处填写的时间点结束。
  • 如果不想立即执行执行,可以通过调度器控制测试执行的开始时间和结束时间。
  • 当测试开始时,如果设置了调度器,JMeter将等待直到到了开始时间。在每个周期结束,JMeter将会检查是否到达结束时间,如果达到,停止运行;否则测试继续运行直到达到了重复限制。
  • HTTP请求

    监听器

    监听器(Listener)负责收集测试结果,同时也被告知了结果显示的方式。

    我们常用的包括:聚合报告、查看结果树、用表格查看结果,都支持将结果数据写入文件。其他的添加上去看看就行。聚合报告前面我们介绍过,后面是查看结果树和用表格查看结果的截图。

    参数化方法

    用户参数

    场景:批量注册不同的帐号,参数为用户名、密码、年级等可使用用户参数的方法,这是JMeter自带的方法。

    方法:右键单击线程组->前置处理器->用户参数

    格式:${参数名}

    CSVREAD函数

    调用一个自带的自定义函数CSVREAD函数,用于读取CSV文件。

    CSV文件的特点是以逗号分隔

  • 创建一个CSV文件,最好与 xxxx.jmx 文件放在同一级目录下。使用绝对路径可能会出现问题
  • CSVREAD函数使用方法
  •