Jmeter

[JM_01]JMeter之功能模块组成及其作用

2018-07-24  本文已影响172人  Fighting_001

目录结构

一、JMeter简介
    1.JMeter概述
    2.JMeter工作原理
    3.JMeter作用
    4.JMeter与LR的区别
二、JMeter安装配置
三、JMeter文件的目录结构
四、JMeter功能概要
    1.JMeter工具组成模块
    2.Threads(Users)-线程(用户)
    3.Test Fragment(测试片段)
    4.线程组的8类可执行元件
五、JMeter元件的作用域和执行顺序
    1.元件的作用域
    2.元件的执行顺序

一、JMeter简介

1.JMeter概述
JMeter:Apache JMeter是Apache组织的开源项目,纯Java应用,用于压力测试、性能测试、接口测试...

2.JMeter工作原理
JMeter用于模拟成千上万的用户向服务器发送请求,检测响应返回的情况,如响应时间。
①JMeter每发送1个请求,相当于是1个线程(Thread),模拟1个虚拟用户;②JMeter每发1次请求,就到服务器采样1次,对应1个Sampler(采样)。

3.JMeter作用
1)用于对静态和动态资源的性能测试
2)分析不同压力条件下的总体性能情况
3)提供图形化的界面,分析性能指标or在高负载情况下测试服务器、脚本、对象
动态资源:文件、Servlet、Perl脚本、Java对象、数据库和查询、FTP服务器...

4.Jmeter与LR的区别

LoadRunner JMeter
安装卸载 操作比较麻烦,软件体积大 操作简便,软件体积小
脚本录制
参数化
集合点
检查点
关联
多协议
IP欺骗 ×
多线程
报告生成与导出
测试成本 商业软件,成本高 开源软件,测试成本低

二、Jmeter安装配置

1.安装配置JDK
需要留意JDK版本和JMeter版本依赖性,如:JMeter 4.0需要Java 8以上版本的支持

2.JMeter下载传送门:
http://mirror.bit.edu.cn/apache/jmeter/binaries/



三、JMeter文件的目录结构

JMeter文件目录
  1. bin:可执行的文件目录
jmeter.bat:  Windows的启动文件
jmeter.log:  日志文件
jmeter.sh:  Linux的启动文件
jmeter.properties:  系统配置文件
jmeter-server.bat:  Windows分布式测试要用到的服务器配置
jmeter-server:  Linux分布式测试要用到的服务器配置
  1. docs:接口文档目录
  2. extras:扩展插件目录
  3. lib:所用到的插件目录;里面全是jar包,JMeter会自动在JMETER_HOME/lib和ext目录下寻找需要的类
  4. licenses:JMeter证书目录
  5. printable_docs:用户使用手册

四、JMeter功能概要

1.JMeter工具组成模块

JMeter模块 作用 类比LR模块
1 资源生成器 用于生产测试过程中服务器、负载机的资源代码 VuGen
2 用户运行器 通常是一个脚本运行引擎,根据脚本要求模拟指定的用户行为 Controller
3 报表生成器 根据测试中实时的数据生成报表,提供可视化的数据显示方式 Analysis
4 负载发生器 用于产生负载,通常以多线程or多进程的方式模拟用户行为 Generators
5 Test Plan
(测试计划)
用来描述一个性能测试,包含于本次性能测试所有相关的功能。
(即本次性能测试的所有内容是基于一个计划展开)
测试场景

2.Threads(Users)-线程(用户)

Threads(Users)
操作选项 作用 类比LR操作
1 Thread Group 添加运行的线程。相当于是一个虚拟用户组,线程组中的米格线程都可以理解为一个虚拟用户。 action()
2 setUp Thread Group 一种特殊类型的ThreadGroup,可用于执行预测试操作,这些类型的线程执行测试前会执行定期的线程组 init()
3 tearDown Thread Group 一种特殊类型的ThreadGroup,可用于执行测试后操作,这些类型的线程执行测试结束后会执行定期的线程组 end()

3.Test Fragment(测试片段)

Test Fragment

测试片段:是控制器上的一个特殊的线程组,其在测试树上与线程组处于一个层级。

测试片段 VS 线程组:测试片段通常不被执行,除非作为一个模块控制or被控制所引用时才会被执行。

4.线程组的8类可执行元件

元件名称 作用
1 取样器(Sampler) 性能测试中向服务器发送请求,记录响应信息和响应时间的最小单元。Jmeter原生支持多种不同的Sampler,可根据设置的参数想服务器发送不同类型的请求(HTTP、FTP、TCP、JDBC…)
2 逻辑控制器(Logic Controller) 包括两类元件:1)一类用于控制Test Plan中Sampler节点发送请求的逻辑顺序的控制器(如:If、Switch、Runtime、Loop-控制器);2)另一类用来控制Sampler节点(如:事务、吞吐量-控制器)
3 前置处理器(Per Processors) 用于实际的请求发出之前,对即将发出的请求进行特殊的处理。如:HTTP URL重写修复符,实现对URL重写。当URL中有SessionID信息时,可通过该处理器填充发出请求的实际SessionID
4 后置处理器(Post Processors) 用于对Sampler发出请求后,返回的服务器响应进行处理。一般用来提取响应中特定的数据。类似于LR中的“关联”
5 断言(Assertions) 用于检查测试中得到的相应数据是否符合预期,一般通过设置检查点,用以保证性能测试过程中的数据交互是否与预期一致
6 定时器(Timer) 用于操作之间设置等待时间,等待时间是虚拟测试中常用的控制客户端QPS的手段。类似于LR中的“思考时间”
7 配置元件(Config Element) 用于提供对静态数据配置的支持。如:CSV Data Set Config可将本地数据文件形成数据池(Data Pool)
8 监听器(Listener) 用来对测试结果数据进行处理和可视化展示的一些列元件。经常用到的元件(图形结果、查看结果树、聚合报告…)
PS:该监听器非监听系统资源的元件

五、JMeter元件的作用域和执行顺序

Test Plan树形结构

1.元件的作用域

在JMeter中,元件的作用域是依靠Test Plan的树形结构中元件的父子关系来确定的,作用域的原则:

2.元件的执行顺序

  1. 配置元件(Config Element)
  2. 前置处理器(Per-Processors)
  3. 定时器(Timers)
  4. 取样器(Smapler)
  5. 后置处理器(Post-Processors)
  6. 断言(Assertions)
  7. 监听器(Listeners)

PS:
1)前置处理器、后置处理器、断言等元件对取样器作用,若其作用域内无取样器,则不会被执行
2)若在同一作用域范围内有多个同一类型的元件,则他们将会按照自上而下的顺序执行
3)Test Plan和Thread Group不属于可执行元件

上一篇下一篇

猜你喜欢

热点阅读