JMeter工具使用说明
一、JMeter 简介
JMeter 是 apache 公司基于 java 开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为JMeter是 java 开发的,所以运行的时候必须先要安装 jdk 才可以。jMeter 是免安装的,拿到安装包之后直接解压就可以使用,同时它在 linux/windows/macos 上都可以使用。
JMeter可以做接口测试和压力测试。其中接口测试的简单操作包括做 http 脚本(发 get/post 请求、加 cookie、加 header、加权 限认证、上传文件)、做 webservice 脚本、参数化、断言、关联(正则表达式提取器和处理 json-json path extractor)和 JMeter 操作数据库等等。
二、JMeter安装
步骤一:先检查机器上是否有安装JDK,检查方式,打开cmd,然后输入java -version,如果展示jdk版本,则已安装,注意,需要安装jdk1.8以上。如果提示没找到java命令,请自行安装jdk。
步骤二:安装JMeter
1)打开链接Apache JMeter的官网下载地址(https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.zip)
2)解压JMeter安装包
3)启动JMeter,JMeter安装目录/bin/jmeter.bat,启动后会打开JMeter UI。
三、JMeter用法
1. 手动添加Request
1.1 创建线程组(在此之前可以在Options里面修改语言)
点击Test Plan,右键->添加>线程(用户)>线程组。
根据情况配置线程组参数, 这里可以定义线程组的名称,执行规则,如果需要做压力测试,可以修改线程数(并发数),Ramp-Up时间(多长时间内启动线程),循环次数(循环执行次数),调度器持续时间(执行多长时间后停止、启动延迟)。
1.2 创建Http请求,Http请求是用来请求后台的web服务,类似于模拟浏览器调用,相当于postman
选择线程组 ---> 右键--->添加--->取样器---->HTTP请求
配置HTTP请求,配置名称/协议/服务器名称或IP,配置HTTP请求方式及路径,请求体,(端口根据情况配置)
1.3 创建HTTP信息头管理器
HTTP请求-->右键--->添加--->配置元件--->选择(HTTP信息头管理器)
配置HTTP信息头管理器,这里可以从Fiddler或者浏览器里面抓真实请求的头部信息,Copy之后,点击“从剪贴板添加”,就可以一步填充好。
1.4 设置HTTP Cookie Manager ,此步骤同1.3创建即可
配置HTTP信息头管理器,这里可以从Fiddler或者浏览器里面抓真实请求的头部信息,Copy之后,点击“从剪贴板添加”,就可以一步填充好。
1.5 添加运行结果查看器,这里选择“察看结果树”和“汇总报告”
点击线程组--->右键--->添加--->监听器--->察看结果树/汇总报告,点击绿色的右侧小三角,运行后,就可以看到执行结果了。
2. 录制请求
JMeter的一个很好的功能,就是我们可以通过浏览器录制脚本,即我们配置好代理服务器后,可以在浏览器上操作,发起的请求会通过代理服务器存储到JMeter,这样就省去了手工去拼凑请求数据,设置请求信息,可以大大的提升写脚本的效率。录制好的脚本,可以保存为模板,在每次系统发布之后直接回放,可以高效的验证系统的功能是否完好。下面说一下如何去录制请求脚本。
1)创建一个Thread Group (右键点击: Test Plan -> Add -> Thread Group)
2)创建http 代理服务器 (右键点击"工作台", Add-> Non-Test Elements -> HTTP(S) Test Script Recorder)。这里的Target Controller选择第一步建好的Thread Group。在Requests Filtering Tab页里面添加需要过滤的URL,因为正常的web录制,会有很多的js、html、css等干扰请求,这里我们写了个匹配规则,将这些干扰请求过滤掉 (?i).*\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|xml).*|
3)配置HTTP代理服务器,这里的端口号8888,需要跟后续配置浏览器代理IP的端口号保持一致。
4)设置浏览器代理和安装证书
参照下图设置代理服务器为本地。点击确定
b) 导入证书。同样在Firefox设置界面的隐私与安全下面有个查看证书,打开后点导入,选择JMeter安装目录下面的bin文件夹,里面有个ApacheJMeterTemporaryRootCA.crt(如果没有找到,可以先在JMeter的代理服务器那里点Start,然后弹出的证书信息哪里点ok,再看下bin目录下面是否有生成,生成后先停止录制,再返回来继续导入证书),选择导入,会生成一个_JMeter Root CA for recording的证书,点击确认。
c) 回到JMeter的HTTP代理服务器配置,点击Start,会有个弹窗,点击ok,就会弹出一个录制器的控制台,这个时候,就可以使用火狐打开需要录制的网页,操作需要录制的功能,录制好后,点控制台的Stop按钮。
d) 这个时候就可以在Thread Group里面看到很多的请求,对于很多测试无关的请求,可以直接删掉,对于需要数据联动的请求,可以参考手动添加请求中的正则提取功能,将数据提取成变量,供后续的请求使用,打个比方,addResource中新增数据,返回了数据的ID,在后续的updateResource中,需要根据数据的ID做修改,需要在addResource下面增加一个正则提取,把ID提取出来作为一个变量,在updateResource的request中可以直接使用${resourceId}来使用。
e) 参考手动添加请求中的断言,和查看结果树功能,添加合适的断言、查看结果树,用于验证脚本执行结果。如果有失败的,图标会标称红色的告警。