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时间(秒):用于设置线程全部启动的时间。例如,若线程数设置为100,Ramp-Up时间设置为5,表示在5秒内启动100个线程,每秒启动的线程数量为20(100/5)。
循环次数:用于设置线程循环次数。
添加HTTP请求
选中“线程组”并右键单击,在弹出的快捷菜单中依次选择“添加”→“取样器”→“HTTP请求”。
添加完成
向百度发送信息,配置http完成
添加察看结果树
选中“线程组”并右键单击,在弹出的快捷菜单中依次选择“添加”→“监听器”→“察看结果树”
添加完成
执行测试
单击工具栏中的启动按钮“ “,JMeter就会发送请求,并接收百度服务器返回的结果。请求与返回结果的信息可以在察看结果树中查看
返回数据
请求
3、取样器的使用
取样器也称为采样器,它用于模拟用户操作,向服务器发送请求并接收服务器的响应数据。JMeter支持不同类型的取样器,例如HTTP请求、FTP请求、Java请求等,不同类型的取样器可以通过设置参数向服务器发送不同的请求。
以http请求为例
名称:可以给HTTP请求命名。
协议:用于设置HTTP请求的协议。HTTP请求有两种协议,HTTP协议和HTTPS协议
服务器名称或IP:用于设置请求地址,例如www.baidu.com。
端口号:用于设置请求的端口号。HTTP的默认端口号为80,HTTPS的默认端口号为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请求-1和HTTP请求-2,而循环控制器只能控制HTTP请求-1。
9、定时器
定时器用于为请求设置等待时间,使请求暂停一段时间再发送。
同步定时器
同步定时器(Synchronizing Timer)可以阻塞线程,当线程在规定时间内达到一定数量时,这些线程会在同一个时间点一起发送请求。“添加”Ž“定时器”Ž“Bean Shell Timer”
常数吞吐量定时器
常数吞吐量定时器(Constant Throughput Timer)主要用于设置QPS限制,它可以让JMeter按照指定吞吐量发送请求。添加”Ž“定时器”Ž“Constant Throughput Timer”
浙公网安备 33010602011771号