• 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秒后再执行下一个请求的信息

  • 相关阅读:
    第一类第二类丢失更新
    收藏文章
    Oracle常见授权与回收权限——grant和revoke
    web.xml组件加载顺序
    Java的native方法
    serialVersionUID作用
    Css选择器和JQuery基本编程接口
    使用Spring IoC进行Bean装配
    关于C/C++的一些思考(5)
    关于C/C++的一些思考(4)
  • 原文地址:https://www.cnblogs.com/Kaylee/p/15824301.html
Copyright © 2020-2023  润新知