Apache 压力测试工具Jmeter基础用法

时间:2023-02-10 11:43:19

压力测试工具:

HP LoadRunner(商业软件)
Jmeter(Apache 开源工具)

Jmeter的特点:Apache基于Java语言开发的开源压力测试工具,天生就具有跨平台的特性,Jmeter比较轻量级,支持大多数的通信协议

学习资料:
①:Jmeter官网:http://jmeter.apache.org/
②:推荐书籍:零成本实现Web性能测试—基于Apache JMeter

Jmeter 8大组件:

  • Configuration Elements:配置元件
    配置原件的主要是为采样器Sampler的使用提前完成初始化工作,例如设置基础环境配置,设置公共变量参数

  • Pre Processors:前置处理器
    前置处理器主要用于在采样器Sampler正式工作之前修改采样器的配置信息或修改变量的值

  • Timers:定时器
    定时器会让作用域内的每一个采样器都在执行前等待一个固定时长,如果不设定这种延迟,JMeter可能会在短时间内产生大量访问请求,导致服务器被大量请求所淹没。如果为线程组添加了多个定时器,那么JMeter会将这些定时器的时长叠加起来,共同影响作用域范围内的采样器。定时器可以作为采样器或者逻辑控制器的子项,目的是只影响作用域内的采样器

  • Samplers:采样器
    采样器是实际负责Jmeter的处理工作,它可以发送请求给目标服务器并返回相应结果

  • Post-Processors:后置处理器
    后置处理器会在采样器发出请求之后做一些特殊操作。如果后置处理器附着在某个采样器之下,那么它只会在该采样器运行之后执行。后置处理器通常被用来处理服务器的响应数据,特别是服务器响应中提取数据

  • Assertions:断言
    用户可以使用断言来检查从服务器获得的响应内容。通过断言可以测试服务器返回的响应与测试人员的期望是否相符

  • Listeners:监听器
    监听器提供了对JMeter在测试期间收集到的信息的访问方法。”图形结果”监听器会将系统响应时长绘制在一张图片之中。”查看结果树”监听器会展示采样器请求和响应的细节,还可以将测试数据导入到文件之中,以供后续分析
    特别注意:不同的监听器使用的数据都是一致的,不同的监听器只是对同一份数据的不同处理显示

  • Logic Controllers:逻辑控制器
    逻辑控制器可以帮助用户控制Jmeter的测试逻辑,可以根据需要对采样器工作进行分组处理,类似编程语言的if/else、while、loop等逻辑工控功能

    Jmeter功能组件的运行顺序:

    1–配置元件(Config Element)
    2–前置处理器(Pre Processors)
    3–定时器(Timer)
    4–取样器(Sampler)
    5–后置处理器(Post-Processors,结果可用情况下执行)
    6–断言(Assertions,结果可用情况下执行)
    7–监听器(Listener,果可用情况下执行)
    注意:相同功能元件在同一层级,作用域按照配置的先后顺序执行

Jmeter的元件的作用域:
Jmeter元件的作用域由测试计划的的树型结构中元件的父子关系来确定
①:Sampler:最为最底层原件,不与其他元件进行交互,不存在作用域
②:Logic Controller:只对子节点采样器和逻辑控制器有效
③:Sampler/Logic Controller其他元件:若父节点不是Sampler ,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)

Jmeter建立第一个简单测试计划:
①:创建测试计划:
Apache 压力测试工具Jmeter基础用法

②:创建采样器:HttpRequest采样器
Apache 压力测试工具Jmeter基础用法

③:创建监听器:View Results Tree
Apache 压力测试工具Jmeter基础用法

④:运行测试计划
Apache 压力测试工具Jmeter基础用法

模拟测试结果:
Apache 压力测试工具Jmeter基础用法

正常测试结果:
Apache 压力测试工具Jmeter基础用法

分析:

模拟测试结果和正常测试结果一致,表明测试计划成功运行