jmeter安装和使用

一、jmeter简介

1.1 jmeter概念

Apache JMeter是Apache组织开发的基于Java的压力测试工具。

1.2 为什么使用Jmeter

开源,免费,基于Java编写,可集成到其他系统可拓展各个功能插件
支持接口测试,压力(负载和压力)测试等多种功能,支持录制回放,
入门简单相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试
多平台支持,可在Linux,Windows,Mac上运行
支持多协议

1.3 Jmeter的作用

接口测试
性能测试
压力测试
Web自动化测试
数据库测试

1.4 Jmeter怎么用

Windows下Jmeter下载安装
登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件
在这里插入图片描述

1.5 安装JAVA环境

安装JDK,配置环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
验证jdk是否配置成功

win+r:进入cmd黑窗口
在这里插入图片描述
在这里插入图片描述

二、jmeter安装使用

2.1 jmeter安装使用

将下载Jmeter文件解压,打开/bin/jmeter.bat
在这里插入图片描述
这里注意,在windows环境下启动时黑窗口一定不要关闭,否则,jmeter无法启动
在这里插入图片描述

在这里插入图片描述

2.2 jmeter的目录结构

在这里插入图片描述
/bin 目录(常用文件介绍)

examples:目录下包含Jmeter使用实例

ApacheJMeter.jar:JMeter源码包

jmeter.bat:windows下启动文件

jmeter.sh:Linux下启动文件

jmeter.log:Jmeter运行日志文件

jmeter.properties:Jmeter配置文件

jmeter-server.bat:windows下启动负载生成器服务文件

jmeter-server:Linux下启动负载生成器文件

/docs目录——Jmeter帮助文档

/extras目录——提供了对Ant的支持文件,可也用于持续集成

/lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录

/licenses目录——软件许可文件,不用管

/printable_docs目录——Jmeter用户手册

第三方插件目录路径:D:\install\jmeter\apache-jmeter-4.0\lib\ext

测windows服务器:
在这里插入图片描述
测linux服务器性能指标:
在这里插入图片描述

三、jmeter快速入门

3.1 jmeter界面了解

首先需要知道所有东西都是基于测试计划去进行操作的,也就是说这个测试计划相当于根目录

组件1:线程

标红的 jp@ 开头的是第三方插件,原本是没有的
在这里插入图片描述
第三方插件主要位置如下:

1)右击添加一个线程组
在这里插入图片描述
2)右击线程组查看监听器–>第三方插件
在这里插入图片描述
3)查看CPU和内存的插件
在这里插入图片描述
4)查看 TPS 的插件
在这里插入图片描述
5)线程组用来测数据库的功能按钮
在这里插入图片描述
6)预期结果和实际结果的对比
在这里插入图片描述
7)接口较多时需要用到定时器,他们之间需要有一个等待的时间
在这里插入图片描述
8)前置处理器—>用户参数:用户的设置在用户参数里配置好了的
在这里插入图片描述
9)后置处理器---->正则表达式提取器:多个接口之间有关联的,第一个接口响应的数据可能是第二接口请求的参数
在这里插入图片描述
10)配置原件:接口和本地数据的关联
在这里插入图片描述
11)监听器:监听接口的返回数据,常用的是察看结果树和聚合报告
在这里插入图片描述

3.2 jmeter简单演示

这里使用免费测试接口—>测qq吉凶 来演示

验证测qq吉凶这个接口通不通,操作如下:

1)比如说你拿到的接口文档如下:
在这里插入图片描述
2)使用jmeter,http请求进行测试
在这里插入图片描述

3)启动进行测试

保存接口脚本
在这里插入图片描述
在这里插入图片描述
4)查看测试结果
在这里插入图片描述
此时证明接口是通的,那么我们就可以进行并发操作了!!!

5)聚合报告参数详解

label:显示接口名字

samples:跑了多少并发(可通过点击线程组进行设置)
在这里插入图片描述
average:平均响应时间,单位是毫秒

median:50%的人请求响应时间

90%line:90%的人请求响应时间

95%line:95%的人请求响应时间

min:最小响应时间

max:最大响应时间

error%:错误率

throughput:吞吐量,单位时间内请求的次数

3.3 jmeter使用详解

3.3.1 线程组了解和使用

1)右击测试计划在取样器中找到线程组并添加
在这里插入图片描述
2)线程属性使用详情(结合察看结果树和聚合报告使用)
在这里插入图片描述
添加一个http请求演示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行结果如下
在这里插入图片描述
在这里插入图片描述
这里设置开启10个线程,规定1秒内完成,循环次数为2,所以最后结果相当于将百度的http请求循环了20次,也就是请求了20次

3.3.2 图形结果和用表格察看结果

1)添加
在这里插入图片描述
2)结合压测使用
在这里插入图片描述
3)清空之前的数据
在这里插入图片描述
4)运行结果如下
在这里插入图片描述
在这里插入图片描述

3.3.3 固定定时器使用

1)添加
在这里插入图片描述
2)设定时间为3秒
在这里插入图片描述
3)运行察看效果

你会明显看到他请求的速度变慢,3秒后请求成功

3.3.4 响应断言和json断言使用

3.3.4.1 响应断言

1)添加
在这里插入图片描述
2)添加你想要的结果,测试响应后的内容中是否包含

在这里插入图片描述
3)运行察看效果

添加无效的关键词的返回结果(报红证明没有)

在这里插入图片描述
添加有效关键词

在这里插入图片描述

3.3.4.1 json断言

聚合报告—QQ测吉凶
1)添加对应的http请求
在这里插入图片描述
2)测试接口通不通
在这里插入图片描述
3)添加json断言
在这里插入图片描述
4)填写对应的断言信息
默认勾选的是正则表达式
在这里插入图片描述
5)运行看效果
在这里插入图片描述
6)修改返回值为错误的并运行看效果
在这里插入图片描述

3.3.5 CSV数据文件设置

这里使用免费测试接口,测试星座运势

https://www.juhe.cn/box/index/id/58

1)添加csv数据文件设置
在这里插入图片描述
2)在本地新建一个txt文件并填入内容
在这里插入图片描述
3)指定本地的txt文件
在这里插入图片描述
4)更改http请求中的参数为自定义参数

使用下方的手动填充参数时,需要勾选编码
在这里插入图片描述
5)运行测试查看结果

是否再次循环处于打开状态(true)

txt文件中的参数有5行及对应的日期

设置循环次数为6次

结果如下:
在这里插入图片描述
在这里插入图片描述
你会发现第6次返回的结果和第1次的结果是一样的

是否再次循环处于关闭状态(false)

在这里插入图片描述
你会发现第6次的结果为空,请求不到数据了

3.3.6 循环控制器

测试百度为例

1)添加循环控制器
在这里插入图片描述
2)将百度请求下拉到(添加到)循环控制器

注意:如果不把请求添加到循环控制器,那么你的循环效果是无效的

无效:

在这里插入图片描述
有效:

在这里插入图片描述
3)添加循环次数并查看效果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.3.7 事务控制器

1)添加
在这里插入图片描述
2)在事务控制器下添加3个http请求
在这里插入图片描述
3)具体使用

勾选Generate parent sample

此时它会将这3个http请求看成是一个整体
在这里插入图片描述
运行结果如下:
在这里插入图片描述
在这里插入图片描述
不勾选Generate parent sample
在这里插入图片描述
此时运行后会请求3次并且加一个事务控制器,也就是显示4项内容

运行结果如下:
在这里插入图片描述
在这里插入图片描述

3.3.8 函数助手使用

在使用过程中,本地建的txt路径粘贴到函数助手,点击生成字符串时有可能会报错,我们可以将报错信息中的路径复制一下重新粘贴到需要粘贴路径的值的位置,其实俩个路径都是一样的,但是报错了,所以我们就用报错中的路径,如果还是不能够解决问题,我们可以将txt文件放在jmeter的bin目录下,这样就能够彻底解决问题了

1)添加http请求以及聚合报告和察看结果树
在这里插入图片描述
2)以测试新闻头条为例

找到函数助手并添加本地txt文件的路径
在这里插入图片描述
选择_CSVRead
在这里插入图片描述
找到本地txt文件的路径
在这里插入图片描述
注意:使用函数助手生成函数字符串时,解析出来的中文是乱码,需要自己上网解决
粘贴到名称对应的值中(值为0,第一个参数)
在这里插入图片描述
粘贴到名称对应的值中(值为1,第二个参数)
在这里插入图片描述
修改http请求中的参数值为生成的字符串
在这里插入图片描述
设置开启的线程数为7(txt文件中参数共6条)
在这里插入图片描述
运行效果如下
在这里插入图片描述

3.3.9 用户自定义变量

1)添加http请求
在这里插入图片描述
2)添加用户自定义变量
在这里插入图片描述
3)调用自定义变量
在这里插入图片描述
4)复制当前http请求,多复制几个,方便看效果
在这里插入图片描述
5)查看运行效果
在这里插入图片描述
你会发现自定义的变量成功了,请求返回的结果都是一样的

6)此时我们可以再更改一下变量试试
在这里插入图片描述
这里改成了上海,之前是温州

7)再次看看效果
在这里插入图片描述
恭喜你,已经会用自定义变量了!!!

3.3.10 正则表达式提取

运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联。关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
在这里插入图片描述
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

示例:
第一个接口返回值可能是第二个接口请求的参数

这里以测试新华字典和成语词典为例

比如:
汉字:为
成语:为所欲为
我们使用正则提取成语的为

1)添加基本请求以及聚合报告和察看结果树
在这里插入图片描述
2)测试俩个接口通不通
在这里插入图片描述
返回结果都是绿色的并且在响应数据中也能看到对应的内容,此时证明这俩个接口都是通的

3)添加正则表达式提取器
在这里插入图片描述
4)编辑正则表达式
在这里插入图片描述

5)调用正则提取器中的引用名称并填在成语词典的请求参数中
在这里插入图片描述
6)运行看看效果
在这里插入图片描述
如果想要对比一下的话,可以再将参数改成"为"

说明:

1.引用名称:

下一个请求要引用的参数名称,如填写title,则可用${title}引用它。

2.正则表达式:

():括起来的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。

3.模板:
在这里插入图片描述
在这里插入图片描述

4.匹配数字:

0代表随机取值,1代表全部取值,通常情况下填0

5.缺省值:

如果参数没有取得到值,那默认给一个值让它取。

3.3.11 传参的使用(get,post,files upload)

get传参
在这里插入图片描述
在这里插入图片描述

post传参
在这里插入图片描述
post传递的是一个json串,而且你在接口文档中复制粘贴的json串可能会出现一些小错误,是开发那边编辑接口文档时不规范造成的,所以说一般情况下我们测接口是不用jmeter的,使用postman更方便!!!
在这里插入图片描述
files upload

用来传文件的
在这里插入图片描述


版权声明:本文为lxp_mocheng原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。