JMeter组件
JMeter执⾏原理
JMerer通过线程组来驱动多个(也可以理解为LR⼯具⾥⾯的虚拟⽤户)运⾏测试脚本对⽬标服务器发起⼤量的⽹络请 求,在每个客户端上可以运⾏多个线程组,也就是说⼀个测试计划⾥⾯可以包含N个线程组。
测试计划
在JMeter的测试⼯具中,把测试计划可以理解为是⼀个⼯程的⽬录,也就是说每⼀个脚本都可以说是⼀个测试计划,在⼀个测试计划⾥⾯包含了很多的线程组来进⾏执⾏,测试计划也是JMeter脚本的根节点。
线程组
在⼀个测试计划⾥⾯可以新增线程组,线程组可以把它理解为:模拟虚拟⽤户的发起点,在线程组⾥⾯可以设置线程数,运⾏时间以及运⾏次数。新增线程组的步骤为:右键测试计划,在添加中选择线程(⽤户)中选择线程组,具体 如下

在⼀个线程组⾥⾯,可以增加很多的取样器,也可以把线程组理解为⼀个测试套件,在这个测试套件⾥⾯,每个取 样器都是独⽴的测试⽤例,在⼀本线程组⾥⾯可以包含很多的测试⽤例
场景设置
在JMeter的测试⼯具中,依据业务的形态来设置它的⽬录结果,但是设置性能测试的场景,主要是在线程组中来进 ⾏设置。JMeter的线程组可以理解为是建⽴了⼀个线程池,在执⾏的过程中处理线程组⾥⾯的各个业务逻辑,线程 组的信息具体如下:

取样器错误后要执⾏的动作
这部分可以理解为当客户端向服务端发送请求后,以及发送请求的过程中出错后的异常处理⽅式。
继续
如果有⼀个请求错误,其他的请求会继续,不会因为有⼀个请求错误的导致其他请求终⽌。
启动下⼀个进程循环
如果请求出现问题,同⼀脚本中的其他请求就都不再执⾏,直接执⾏下⼀个进程的信息。如登录后下⼀个请求是查 看个⼈主⻚,但是因为登录出错,下个接⼝查看个⼈主⻚就不会被执⾏。
停⽌线程
停⽌线程指的是如果请求失败,就停⽌当前线程执⾏,不再继续执⾏。如果线程数很多的,那么导致的结果是停⽌ 的线程就会很多,处于真正运⾏的线程会很少,最后导致服务器的负载不够,⼀般不建议构选改选项。
停⽌测试 如果请求失败,那么停⽌所有线程执⾏,也就是说停⽌整个测试。
⽴即停⽌测试
如果请求失败,⽴即停⽌整个测试场景的执⾏。
线程属性
线程数
⼀个线程可以理解为对应模拟⼀个⽤户,所以线程数越多,那么也就认为可以模拟的⽤户数越多。
Ramp-Up时间(秒)
该属性指的是所有线程从启动到开始运⾏的时间间隔,单位是秒,也就是说所有线程在多⻓时间内开始执⾏,如线 程数设置50,设置的时间为5秒,那么计算的公式为:

循环次数
循环次数可以理解为,请求的重复次数。如果选择“永远”,那么请求将⼀直进⾏,不建议这样操作。
延迟创建线程直到需要
如50个线程数,Ramp-Up时间是10秒,执⾏后线程是全部就绪的,那么就是每隔1秒启动5个线程数
调度器
思维调度器可以理解为设置何时开始运⾏。
持续时间
测试计划持续多⻓时间
启动延迟
从当前时间延迟多⻓时间开始运⾏测试,也就是说点击执⾏后,仅仅是做初始化的场景,不会执⾏测试,等待延迟 到达后开始运⾏测试,执⾏的时间为持续时间设置的时间。
JMeter监听器
聚合报告
聚合报告是以表格的形式来显示取样器的结果信息,如果不同的取样器拥有相同的名字,那么在聚合报告会显示在 ⼀⾏⾥⾯,那么⼀般来说,聚合报告都是根据取样器来显示每个取样器的执⾏结果信息。聚合报告的信息具体如下:
后端监听器
后端监听器可以把JMeter与influxdb,grafana整合起来,把性能测试过程中的数据存储到influxdb,然后最后显示 在grafana的可视化界⾯中。
查看结果树
结果树能够很清晰的显示每个取样器执⾏的结果信息,以及每个取样器的⽹络请求信息,如下:

JMerer配置元件
取样器
取样器是JMeter的基本单元,⼀般性的各种都是取样器来发起的,如HTTP等请求。可以把它理解为⼀个独⽴的测 试⽤例,或者说是⼀个测试场景。
配置元件 配置元件可以理解为对取样器的各种请求进⾏辅助配置。
HTTP信息头管理器
每个HTTP的请求都是需要请求头的信息的,那么可以把请求头的信息添加到HTTP信息头管理器,然后需要把它放 在去取样器的前⾯。
HTTP Cookie管理器
在系统登录成功后需要访问系统中的其他⽹络请求,但是需要记住⽤户登录成功后的sessionID的信息,那么使⽤ HTTP Cookie管理器就可以⾃动记录下这些信息。
⽤户定义的变量
在测试中,如果某些请求参数存在变化,⽐如是⽤户名和密码,那么就可以单独的独⽴出来,⽤户定义的变量可以 很轻松的来解决这部分的问题。 Received KB/sec:每秒从服务器端接收到的数据量 SentKB/sec:每秒从客户端发送的请求的数量
HTTP请求默认值
每个取样器发送⽹络请求的时候都是需要IP地址等信息,但是使⽤HTTP请求默认值可以很轻松的把请求的地址独 ⽴出来。
逻辑控制器
逻辑控制器主要控制JMeter的执⾏顺序,它的存在使整体的测试的灵活度更⾼。⽐如接⼝A执⾏完成后得到的结果 信息,经过逻辑控制器判断之后,再执⾏接⼝B或者是接⼝C。⼀般性的⽽⾔,简单控制器使⽤的最多,但是也看具 体的场景进⾏设置。
前置处理器
在执⾏取样器之前,需要进⾏初始化的设置,等价于UnitTest测试框架中的setUp()的⽅法。
后置处理器
在执⾏取样器之后执⾏,如API测试中经常会涉及到上个API的输出是下个API的输⼊,那么就会使⽤到后置处理器 中的正则表达式提取器或者是JSON提取器,BeanShell断⾔等。
断⾔
主要⽤来验证返回的结果数据与预期的结果数据是否完全匹配,⼀般最常⽤的是响应断⾔和JSON断⾔。
定时器
定时器主要⽤来在测试计划执⾏的过程中,定时器⽤来缓减线程运⾏,⽐如刻意的等待3秒后再执⾏下⼀个请求的信息

浙公网安备 33010602011771号