一、简单了解
The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.
官网网站为:
https://jmeter.apache.org/
安装
l 官网:http://jmeter.apache.org/download_jmeter.cgi
l 下载完成后直接解压缩即可,无须安装(前置条件,本机需要有java运行虚拟机环境)。
l 点击bin目录下的jmeter.bat文件即可启动jmeter.
帮助文档:
https://jmeter.apache.org/usermanual/get-started.html
插件安装
访问:https://jmeter-plugins.org/install/Install/
下载后存放位置:
1) 下载成功后将jar包放到jmeter的 lib/ext目录下,重启jmeter即可
2) 验证插件可以使用
查看插件
二、初步功能测试介绍
步骤一:新建线程组 【Thread Group】
步骤二:添加请求类型【sampler】
步骤三:增加结果参看树【view results tree】
1、添加线程组
TestPlan-->右键-->add-->Threads(Users),添加Thread Group
解释:Threads(Users):
这个两个组件在工作中不是必须的,setUp Thread Group用来做初始化的工作,Thread Group是工作常用组;tearDown Thread Group用来做清理工作;
2、添加Sampler(演示使用HTTP Request)
选中group,右键-->add-->Sampler-->选择要测试的协议类型,以HTTP Request为例
显示:
说明:
Protocol[http]:不写就是默认的HTTP
Server Name or IP:www.7dtest.com 【默认不需要带http://】
Port Number:HTTP默认为80
Path:/表示根目录
Paramters:分两种方式一种为key-->value与json两种方式,如果测试文件上传参考性能工具之Jmeter上传与下载介绍
3、添加查看结果
选中TestPlan-->右键-->add-->Listener-->View Results Tree,
点击请求:
弹出警告:
为你是否保存之后运行
结果如下:
结果查看几种方式:
View Results Tree组件可以很方便的查看请求的数据,响应的数据,当出现问题的时候可以用来分析问题,在jmeter中使用的频率很高
l Filename:可以将执行结果保存到Filename指定的文件中,注意:默认保存在jmeter的bin目录下。如果勾选了后面的Errors,那么只保存错误信息;如果勾选了Success,那么只保存执行成功的信息;都不勾选的话保存所有的信息
l Browser:可以打开之前保存过的测试文件,将测试信息显示到下面的result栏中。如果勾选了后面的Errors,那么只显示错误信息;如果勾选了Success,那么只显示执行成功的信息;都不勾选的话显示所有的信息
1、Text:默认的显示方式,原始的HTML文本
2、HTML:以类似浏览器的格式查看响应数据
3、RegExp Tester:支持正则用来做检查点或者关联使用
如:<title>(.*?)</title>
[1][0]:表示整个匹配的表达式
[1][1]:表示分组中的内容
4、XPath Tester:xpath方式提取内容
参考语法:[https://www.w3school.com.cn/xpath/index.asp]
l Use Tidy?:当需要处理的页面是HTML格式时,必须选中该选项,当需要处理的页面是XML或XHTML格式(例如,RSS返回)时,取消选中该选项。
l Reference Name:存放提取出的值的参数。
l XPath Query:用于提取值的XPath表达式。
l Default Value:参数的默认值
5、JSON PATH Tester 使用方式为:
如果:$.extend.pageInfo.pageSize
参考java代码如:
/**
* 通过json获取值
* 李文 2020-03-25
* @param json
* @param path
* @param filter
* @return
*/
public static Object jsonPath(String json, String path, Filter... filter) {
try {
return filter.length == 0 ? JsonPath.parse(json).read(path, new Predicate[0]) : JsonPath.parse(json).read(path, new Predicate[]{filter[0]});
} catch (PathNotFoundException var4) {
log.error(var4.getMessage());
return null;
}
}
以上取值待遇也是按$.开头取值;
6、Scroll automatically:请求很多时可以自动滚屏
如果勾选会自动滚屏
View Results Tree试图为:
sampler result:
说明:
Thread Name: Thread Group 1-1:Thread Group 2线程组的编号,1是线程组内线程的编号
Load time: 整个请求的执行时间
Connect Time: 连接时间
Latency: 延迟时间
Size in bytes: Headers size in bytes + Body size in bytes
Sent bytes:发送的字节数
request 请求数据
response data 响应数据
聚合报告简单说明使用
图:
运行结果:
说明:
打开文件如:
简单说明:
改图配置可以根据实际情况选择