JMeter总结

JMeter组件

JMeter执行原理

JMeter通过线程组来驱动多个(也可以理解为LR工具里面的虚拟用户)运行测试脚本对目标服务器发起大量的网络请求,在每个客户端上可以运行多个线程组,也就是说一个测试计划里面可以包含N个线程组。

测试计划

在JMeter的测试计划中,把测试计划可以理解为是一个工程的目录,也就是说每一个脚本都可以说是一个测试计划,在一个测试计划里面包含了很多的线程组来进行执行,测试计划也是JMeter脚本的根节点。

线程组

在一个测试计划里可以新增线程组,线程组可以把它理解:模拟虚拟用户的发起点,在线程组里面可以设置线程数,运行时间以及运行次数。新增线程组的步骤为:右键测试计划,在添加中选择线程(用户)中选择线程组,具体如下:

在一个线程组里面,可以增加很多的取样器,也可以把线程组理解为一个测试套件,在这个测试套件里面,每个取样器都是独立的测试用例,在一本线程组里面可以包含很多的测试用例

场景设置

在JMeter的测试工具中,依据业务的形态来设置它的目录结果,但是设置性能测试的场景,主要是在线程组中来进行设置。JMeter的线程组可以理解为是建立了一个线程池,在执行的过程中处理线程组里面的各个业务逻辑,线程组的信息具体如下:

 

 

取样器错误后要执行的动作

这部分可以理解为当客户端向服务端发送请求后,以及发送请求的过程中出错后的异常处理方式

继续

如果有一个请求错误,其他的请求会继续,不会因为有一个请求错误的导致其他请求终止。

启动下一个进程循环

如果请求出现问题,同一脚本中的其他请求都不再执行,直接执行下一个进程的信息。如登录后下一个请求是查看个人主页,但是因为登陆出错,下个接口查看个人主页就不会执行

停止线程

停止线程值的是如果请求失败,就停止当前线程执行,不再继续执行,如果线程数很多的,那么导致的结果是停止的线程就会很多,处于真正运行的线程会很多,最后导致服务器的负载不够,一般不建议勾选改进项

停止测试

如果请求失败,那么停止所有的线程执行,也就是说停止整个测试

立即停止测试

如果请求失败,立即停止整个测试场景的执行

线程属性

线程数

一个线程可以理解为对应一个用户,所以线程数越多,那么也就认为可以模仿的用户越多

Ramp-Up时间(秒)

该属性指的是所有线程从启动到开始运行的时间间隔,单位是秒,也就是说所有线程在多长时间内开始执行,如线程数设置50秒,设置的时间为5秒,那么计算的公式为:

 

 循环次数

循环次数可以理解为:请求的重复次数,如果选择“永远”,那么请求将一直进行,不建议这样操作

延迟创建线程直到需要

如50个线程数,Ramp-Up时间是10秒,执行后线程是全部就绪的,那么就是每隔1秒启动5个线程数

调度器

思维调度器可以理解为设置何时开始执行

持续时间

测试计划持续多长时间

启动延迟

从当前时间延迟多长时间开始运行测试,也就是说点击执行后,仅仅是做初始化的场景,不会执行测试,等待延迟到达后开始运行测试,执行的时间为持续时间设置的时间

JMeter监听器

聚合报告

聚合报告是以表格的形式来显示取样器的结果信息,如果不同的取样器拥有相同的名字,那么在聚会报告会显示在一行里面,那么一般来说,聚合报告都是根据取样器来显示每个取样器的执行结果信息。聚合报告的信息具体如下

 

 

后端监听器

后端监听器可以把JMeter与influxdb,grafana整合起来,把性能测试过程中的数据存储到infiuxdb,然后显示在grafana的可视化界面中

查看结果树

结果树能够很清晰的显示每个取样器执行的结果信息,以及每个取样器的网络请求信息,如下:

 

JMeter配置元件

取样器

取样器是JMeter的基本单元,一般性的各种都是取样器来发起的,如HTTP等请求,可以把它理解为一个独立的测试用例,或者说是一个测试场景

 

 

配置元件

配置元件可以理解为对取样器的各种请求进行辅助配置

 

 

HTTP信息头管理器

每个HTTP的请求都是需要请求头的信息,那么可以把请求头的信息添加到HTTP信息头管理器,然后需要把它放在取样器的前面

HTTP Cookie管理器

在系统登陆成功后需要访问系统中的其他网络请求,但是需要记住用户登录成功后的sessionID的信息,那么使用HTTP Cookie管理器就可以自动记录下这些信息

 

用户定义的变量

在测试中,如果某些请求参数存在变化,比如是用户名和密码,那么就可以单独的独立出来,用户定义的变量可以很轻松的来解决这部分的问题

HTTP请求默认值

每个取样器发送网络请求的时候都是需要IP地址等信息,但是使用HTTP请求默认值可以很轻松的把请求的地址独立出来

逻辑处理器

逻辑处理器主要控制JMeter的执行顺序,它的存在使整体测试的灵活度更多。比如接口A执行完成后得到的结果信息,经过逻辑控制器后,再执行接口B或者接口C,一般性而言,简单控制器使用的最多,但是也看具体的场景进行设置

前置处理器

在执行取样器之前,需要进行初始化的设置,等价于UnitTest测试框架中的setUp()的方法

后置处理器

再执行取样器之后执行,如API测试中经常会设计到上个API的输出是下个API的输入,那么就会使用到后置处理器中的正则表达式提取器或者是JSON提取器,BeanShell断言等

断言

主要验证返回的结果数据与预期的结果数据是否完全匹配,一般最常用的是响应断言和JSON断言

 

 

定时器

定时器主要用来在测试计划执行的过程中,定时器用来缓减线程运行,不如刻意的等待3秒后再执行下一个请求的信息

 

posted @ 2022-01-19 21:54  棠小梨  阅读(188)  评论(0编辑  收藏  举报