jemeter使用流程

Jmeter使用流程

下载完成

 

1、JMeter目录

 Bin目录

 

docs目录

docs目录为接口文档目录,该目录主要用于存储JMeter官方的API文档,用于二次开发。在docs/api目录下的index.html文件中,可以查找类名、包名的使用方法。

extras目录

extras目录为扩展插件目录,该目录存储的是JMeter与其他工具集成所需要的一些组件。例如,extras目录下有ant-jemter-1.1.1.jar包,说明JMeter可以集成Apache Ant自动化测试工具。

lib目录

lib目录主要用于存储JMeter依赖的JAR包和用户扩展(第三方)所依赖的JAR包。lib目录下存储的是JMeter自带的JAR包,用户扩展所依赖的JAR包存储在lib目录下的ext文件夹中。

licenses目录

licenses目录存储的是JMeter的软件许可证,在licenses目录下可以查看软件许可证文件。

printable_docs目录

printable_docs目录存储的是JMeter官方的帮助文档,在printable_docs目录下的index.html文件中,可以查看官方的帮助文件。

汉化

 

 

 

2、JMeter简单测试

添加测试计划:每次启动JMeter,主界面都默认有一个空的测试计划。用户也可以在菜单栏单击“文件”在弹出的下拉菜单中选择“新建”选项,添加测试计划。

 

添加线程组:选中JMeter主界面的“测试计划-第一个测试计划”并右键单击,在弹出的快捷菜单中依次选择“添加”→“线程(用户)”→“线程组”。

 

 

setUp线程组:一种特殊类型的线程组,用于执行测试前的初始化操作。setUp线程组的执行顺序在普通线程组之前。

tearDown线程组:一种特殊类型的线程组,用于执行测试结束之后的回收工作。tearDown线程组的执行顺序在普通线程组之后。

线程组:普通线程组,一个线程组可以表示一个虚拟用户组,线程组中可以设置线程数量,每一个线程都可以模拟一个虚拟用户。

 

线程数:用于设置线程数量,即要模拟多少个用户。

Ramp-Up时间(秒):用于设置线程全部启动的时间。例如,若线程数设置为100Ramp-Up时间设置为5,表示在5秒内启动100个线程,每秒启动的线程数量为20100/5)。

循环次数:用于设置线程循环次数。

 

 

 

 

 

添加HTTP请求

选中线程组并右键单击,在弹出的快捷菜单中依次选择添加”→“取样器”→“HTTP请求

 

添加完成

 

向百度发送信息,配置http完成

 

 

添加察看结果树

选中线程组并右键单击,在弹出的快捷菜单中依次选择添加”→“监听器”→“察看结果树

 

添加完成

 

 

执行测试

单击工具栏中的启动按钮“   “JMeter就会发送请求,并接收百度服务器返回的结果。请求与返回结果的信息可以在察看结果树中查看

返回数据

 

请求

 

3取样器的使用

取样器也称为采样器,它用于模拟用户操作,向服务器发送请求并接收服务器的响应数据。JMeter支持不同类型的取样器,例如HTTP请求、FTP请求、Java请求等,不同类型的取样器可以通过设置参数向服务器发送不同的请求。

 

http请求为例

 

名称:可以给HTTP请求命名。

协议:用于设置HTTP请求的协议。HTTP请求有两种协议,HTTP协议和HTTPS协议

服务器名称或IP:用于设置请求地址,例如www.baidu.com

端口号:用于设置请求的端口号。HTTP的默认端口号为80HTTPS的默认端口号为443

 

案例一:要求使用JMeter发送一个GET请求,请求地址为http://www.baidu.com/S?wd=test,要求分别使用路径和参数列表这两种方式传递GET请求参数,如下图所示。

 

 

 

案例二:本案例要求使用JMeter发送一个POST请求,请求地址为https://www.baidu.com/S?wd=test,要求使用消息体数据传递POST请求的参数,如下图所示。

 

 

4、监听器的使用

监听器主要用于监听JMeter的测试结果,监听器可以将测试结果以表格或图形的形式展现给用户,也可以将测试结果保存到文件中,供用户再次分析时使用。监听器可以在测试计划的任何位置添加,包括直接在测试计划下面添加或在线程组下面添加。监听器只能监听、收集同层级或下层级元件的数据,因此,在不同层级添加的监听器的监听范围不同。

 

JMeter 常用的监听器为察看结果树和聚合报告。

 

 

 

 

察看结果树

两种方式添加:在测试计划中添加察看结果树、在线程组中添加察看结果树,这两种结果是一样的。

下面是在测试计划中添加察看结果树,会出现三个http请求

 

取样器结果:可以查看请求的整体性能指标,例如发送请求的线程名称、请求开始时间、加载时间、延迟时间等。

请求:其下有两个子选项卡,分别是“Request Body”“Request Headers”“Request Body”为请求体,可以查看请求体信息;“Request Headers”为请求头,可以查看请求头信息。

响应数据:其下也有两个子选项卡,分别是“Request Body”“Request Headers” “Response Body”为响应体,可以查看响应体数据;“Response Headers”为响应头,可以查看响应头数据。

 

聚合报告

聚合报告用于测试结束后,收集系统各项性能指标,例如响应时间、并发数、吞吐量等。添加聚合报告的方式与添加察看结果树的方式相似,首先选中JMeter主界面的测试计划或线程组并右键单击,在弹出的快捷菜单中依次选择添加”Ž“监听器”Ž“聚合报告,聚合报告界面如下图所示。

 

聚合报告界面

 

 

5、配置元件的使用

配置元件常用的参数化工具有用户定义的变量、HTTP 信息头管理器、HTTP 请求默认值、CSV 数据文件设置和计数器。

用户定义的变量可以被其作用域范围内的所有元件引用。如果在测试计划中需要使用用户定义的变量,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择添加”Ž“配置元件”Ž“用户定义的变量,会添加一个用户定义的变量界面

示例

 

 

结果

 

 

CSV数据文件设置

使用JMeter进行测试时,如果参数数据较多,可以将参数写入文件中,设置CSV数据文件可以从文件中读取参数。如果想要在测试计划中对CSV数据文件进行设置,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择“添加”Ž“配置元件”Ž“CSV Data Set Config

 

 

 

计数器

JMeter进行测试时,当需要引用大量的测试数据并要求测试数据能够自增且不能重复时,则可以使用计数器来实现。

 

 

结果

 

 

 

6、断言的使用

响应断言

响应断言可以对任意格式的响应数据进行断言。如果想要在测试计划中使用响应断言的方式进行断言,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择添加”Ž“断言”Ž“响应断言

 

 

JSON断言

JSON断言用于对JSON格式的响应结果进行断言。如果想要在测试计划中添加JSON断言,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择添加”Ž“断言”Ž“JSON断言

 

 

相应数据

 

 

断言持续时间

断言持续时间主要用于断言请求的响应时间是否满足要求。如果在测试计划中需要添加断言持续时间,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择添加”Ž“断言”Ž“断言持续时间

 

 

 

 

 

 

 

 

 

 

 

 

7前置处理器的使用

下面以用户参数为例,讲解前置处理器的使用。首先选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择添加”Ž“前置处理器”Ž“用户参数,会添加一个用户参数界面

 

 

请求结果

 

 

8、后置处理器

正则表达式提取器

正则表达式表是一种文本模式,它可以使用普通字符和特殊字符(元字符)描述一个字符串规则,用于匹配一系列符合该规则的字符串。正则表达式通常用来检索、替换符合特定规则的字符串。例如,“a.”中的元字符“.”表示任意字符,则“a.”可以匹配“aa”“ab”“ac”“a1”等任何满足包含两个字符且第1个字符是a的字符串。

 

配置正则表达式提取器

添加”Ž“后置处理器”Ž“正则表达式提取器

 

 

结果

 

 

XPath提取器

XPath提取器用于提取HTML格式的响应数据,添加”Ž“后置处理器”Ž“XPath提取器

 

 

 

 

 

 

 

 

 

JSON提取器

JSON提取器用于提取JSON格式的响应数据

 

 

 

结果

 

 

 

 

8、逻辑控制器

如果(If)控制器

如果(If)控制器用于控制测试请求是否执行(如果条件成立时执行,条件不成立时不执行)。

添加”Ž“逻辑控制器”Ž“如果(If)控制器”

 

 

 

 

 

循环控制器

循环控制器可以通过设置循环次数,实现循环发送请求。“添加”Ž“逻辑控制器”Ž“循环控制器”

 

如果线程组循环次数设置为3,循环控制器的循环次数设置为4,则HTTP请求-1的循环次数为12(即3´4),HTTP请求-2的循环次数为3。线程组可以控制HTTP请求-1HTTP请求-2,而循环控制器只能控制HTTP请求-1

 

 

 

 

 

9、定时器

定时器用于为请求设置等待时间,使请求暂停一段时间再发送。

同步定时器

同步定时器(Synchronizing Timer)可以阻塞线程,当线程在规定时间内达到一定数量时,这些线程会在同一个时间点一起发送请求。“添加”Ž“定时器”Ž“Bean Shell Timer

 

 

 

常数吞吐量定时器

常数吞吐量定时器(Constant Throughput Timer)主要用于设置QPS限制,它可以让JMeter按照指定吞吐量发送请求。添加”Ž“定时器”Ž“Constant Throughput Timer

 

posted on 2025-05-16 21:56  临江柔  阅读(52)  评论(0)    收藏  举报