> 文章列表 > Jmeter实验笔记

Jmeter实验笔记

Jmeter实验笔记

Jmeter实验

一、基础操作

启动Jmeter

点击bin目录下的,jmeter进行启动
Jmeter实验笔记
修改界面语言为中文
Jmeter实验笔记
Jmeter实验笔记

发起一个最基本的请求

GET请求

线程组,Http请求,察看结果树
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
提示:参数、消息体数据这两个按钮是互斥的、只要其中一个有数据,就无法选中另一个了
Jmeter实验笔记

清除察看结果树的结果

Jmeter实验笔记

察看结果树的作用范围

Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记

设置请求跟随重定向

Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记

响应断言-响应文本

判断响应文本中是否有"百度一下"
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记

判断响应文本中是否有"百度一下"和"百度两下"
Jmeter实验笔记
Jmeter实验笔记
判断响应文本中是否有"百度一下"和"你就知道"
Jmeter实验笔记
Jmeter实验笔记
增加一个断言,判断响应文本中是否有"百度两下",发现响应没有通过断言,因此只有所涉及的断言都为真,察看结果树里才为绿色
Jmeter实验笔记

响应断言-响应代码(状态码)

测试发现,判断响应代码是以最后一个响应包的状态码为判断依据
先单纯的请求一个存在重定向的网址
Jmeter实验笔记
Jmeter实验笔记
开始断言响应代码,由下可见,是以重定向后最后一个请求的状态码为判断依据
Jmeter实验笔记
Jmeter实验笔记
关闭跟随重定向,断言302遍通过了
Jmeter实验笔记
Jmeter实验笔记

Json断言

通过测试发现,响应数据为json格式的情况,依然可以使用上面的响应断言来进行断言。

看一下正常运行的结果,此接口功能为查询ip归属地
Jmeter实验笔记
Jmeter实验笔记
获取json内的值的方法
Jmeter实验笔记
添加json断言
Jmeter实验笔记
json断言1
Jmeter实验笔记
Jmeter实验笔记
json断言2
Jmeter实验笔记
Jmeter实验笔记
json断言3
Jmeter实验笔记
Jmeter实验笔记
json断言4
Jmeter实验笔记
Jmeter实验笔记

后置处理器

先写出正则"city":"(.?)",匹配出所需要的东西,对于需要的内容,(.?) 这个括号得用,因为在正则表达式处理器中,需要选择要提取哪个分组,所以在正则表达式中得用括号来形成分组
Jmeter实验笔记
配置正则表达式处理器
Jmeter实验笔记
常规配置
引用名称,是把匹配的结果定义为一个变量,后续调用方式为${city}
$1$代表第一个分组,在这里我们也只写了一个分组
匹配数字1代表匹配到matchs中的第1个match
Jmeter实验笔记
Jmeter实验笔记
运行正确,前一个请求的响应数据,被匹配出来后,代入到后一个请求中
(这个在每次请求都需要更新token的情况,就可以用了)
Jmeter实验笔记
Jmeter实验笔记
再测试一下正则表达式提取器的细节
Jmeter实验笔记

模板写$1$代表使用第一个分组
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
模板写$2$代表使用第二个分组
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记

Jmeter使用函数

Jmeter实验笔记

Random函数

Jmeter实验笔记
设置线程组循环次数为3,查看运行结果,看到产生了随机数
Jmeter实验笔记

Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
但是第三个请求,红色的没有成功,由于请求频率太快了,在这里尝试加入一个定时器,三个请求都获得了正常的响应
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记

counter函数

Jmeter实验笔记
设置线程组循环次数为3,查看运行结果,看到产生了从1开始的递增1,2,3。
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记

V函数

在测试计划中,添加用户定义的变量
Jmeter实验笔记
单纯的调用变量
Jmeter实验笔记
使用到了address_1的值
Jmeter实验笔记
现在想依次使用 address_1、address_2、address_3
若像下面这样,则不能达到我们的目的
Jmeter实验笔记
Jmeter实验笔记
所以要使用V函数

填入
address_${__counter(false,)}
生成
${__V(address_${__counter(false,)},)}

Jmeter实验笔记
循环次数设置为3,运行,看到使用V函数达到了目的
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记

Jmeter定时器

在第HTTP请求2中加一个固定定时器,设置线程延迟5秒,便会在发起HTTP请求2之前,等待5秒
Jmeter实验笔记
Jmeter实验笔记
添加一个监听器-用表格查看结果,这样比较直观
Jmeter实验笔记
Jmeter实验笔记
把线程组的线程数改为2(也就是代表2个用户),看看情况
Jmeter实验笔记
可以看到每个线程的http请求2,在发起请求之前,都会等待5秒
Jmeter实验笔记
Jmeter实验笔记

Jmeter http请求默认值

Jmeter实验笔记
填写默认值,类似于编程里函数的缺省参数,若该配置原件作用域内的请求没有填写值的话,就使用默认值,否则就使用填写进去的值
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
运行结果
Jmeter实验笔记
Jmeter实验笔记

Jmeter http信息头管理器

以下面这个请求包为例

GET /-0U_dTmfKgQFm2e88IuM_a/ps_fp.htm?pid=superman&fp=undefined&im=undefined&wf=undefined&br=3&qid=0xe19b53a60000a467&bi=E00733E6DB1132C3BDB30C1FCBD4AC01:FG=1 HTTP/1.1
Host: sp3.baidu.com
Cookie: BAIDUID=E00733E6DB1132C3BDB30C1FCBD4AC01:FG=1; BIDUPSID=E00733E6DB1132C3593AA4A3AB7EB685; PSTM=1681867541; H_PS_PSSID=38515_36552_38470_38351_38364_38468_38486_37926_37709_38356_26350; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; BDRCVFR[gltLrB7qNCt]=mk3SLVN4HKm; delPer=0; PSINO=7; BA_HECTOR=21a52h0lal252520ah01a4ag1i3umqt1m; ZFY=:AUQpANihlHKS9ZwOdYuA:BQo:AV:AV:AxnBTg33OUIk8iOc:C
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0
Accept: image/avif,image/webp,*/*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: https://www.baidu.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
Te: trailers
Connection: close

添加信息头管理器,它的作用范围则是它自己的作用域
Jmeter实验笔记
复制请求包里所需要的请求头信息,点击从剪切板添加,便会自动填充
Jmeter实验笔记
Jmeter实验笔记
运行结果,请求头带入到了请求中,但是比较奇怪的是,cookie放到了request body中,不知道为什么会这样
Jmeter实验笔记

Jmeter http代理服务器

想要抓取https的包,得把Jmeter的证书导入到浏览器里,自行百度。
配置代理服务器
Jmeter实验笔记
目标控制器,指定抓到的数据包,放到哪个线程组
Naming scheme,接口显示的内容格式
Jmeter实验笔记
设置过滤的数据包类型,点击添加后,在后面加上.* 过滤才生效
Jmeter实验笔记
点击启动
Jmeter实验笔记
配置浏览器代理
Jmeter实验笔记
刷新页面,得到抓包结果
Jmeter实验笔记
添加察看结果树,运行一下,可看到运行结果
Jmeter实验笔记

Jmeter http cookie管理器(未完善)

Jmeter参数化

JMeter中常用的参数化方式:
1、用户参数(User Parameter):适用于参数取值范围很小,需要少量测试数据时使用。
2、用户自定义变量(User Defined Variables):更多用于设置全局变量,常用于数据库地址,测试环境、开发环境地址等常量配置。
3、CSV数据文件设置(CSV Data Set Config)。

用户参数和用户自定义变量

用一个例子来进行说明
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
运行结果
Jmeter实验笔记
Jmeter实验笔记
删除测试计划中的-用户定义的变量
Jmeter实验笔记
运行结果
Jmeter实验笔记
Jmeter实验笔记

CSV数据文件设置

Jmeter实验笔记
准备测试数据,我这里使用的是Tab键分隔的
Jmeter实验笔记
给每一列,定义为一个变量,至于其它的选项,等用到的时候,再自行选择
Jmeter实验笔记
Jmeter实验笔记
有5行数据,线程数设置为5,刚好把txt里的数据用完
Jmeter实验笔记
运行结果
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记

Jmeter逻辑控制器

一堆堆的、暂时没有需要用到的场景,未学习使用
Jmeter实验笔记

Jmeter连接数据库

访问https://downloads.mysql.com/archives/c-j/,下载Jmeter连接数据库需要用到的驱动程序,所需下载的版本,与mysql的版本有关,自行查看版本对应关系后选择匹配版本进行下载,以下为下载结果,把jar文件放到jmeter的bin目录下
Jmeter实验笔记
Jmeter实验笔记
启动数据库
Jmeter实验笔记
使用Jmeter配置连接
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
Jmeter实验笔记
运行结果
Jmeter实验笔记
Jmeter实验笔记

二、性能测试

用表格查看结果