Jmeter实验笔记

Jmeter实验

一、基础操作

启动Jmeter

点击bin目录下的,jmeter进行启动
在这里插入图片描述
修改界面语言为中文
在这里插入图片描述
在这里插入图片描述

发起一个最基本的请求

GET请求

线程组,Http请求,察看结果树
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提示:参数、消息体数据这两个按钮是互斥的、只要其中一个有数据,就无法选中另一个了
在这里插入图片描述

清除察看结果树的结果

在这里插入图片描述

察看结果树的作用范围

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

设置请求跟随重定向

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

响应断言-响应文本

判断响应文本中是否有"百度一下"
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

判断响应文本中是否有"百度一下"和"百度两下"
在这里插入图片描述
在这里插入图片描述
判断响应文本中是否有"百度一下"和"你就知道"
在这里插入图片描述
在这里插入图片描述
增加一个断言,判断响应文本中是否有"百度两下",发现响应没有通过断言,因此只有所涉及的断言都为真,察看结果树里才为绿色
在这里插入图片描述

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

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

Json断言

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

看一下正常运行的结果,此接口功能为查询ip归属地
在这里插入图片描述
在这里插入图片描述
获取json内的值的方法
在这里插入图片描述
添加json断言
在这里插入图片描述
json断言1
在这里插入图片描述
在这里插入图片描述
json断言2
在这里插入图片描述
在这里插入图片描述
json断言3
在这里插入图片描述
在这里插入图片描述
json断言4
在这里插入图片描述
在这里插入图片描述

后置处理器(替换token)

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

模板写$1$代表使用第一个分组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
模板写$2$代表使用第二个分组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Jmeter使用函数

在这里插入图片描述

Random函数

在这里插入图片描述
设置线程组循环次数为3,查看运行结果,看到产生了随机数
在这里插入图片描述

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

counter函数

在这里插入图片描述
设置线程组循环次数为3,查看运行结果,看到产生了从1开始的递增1,2,3。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

V函数

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

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

在这里插入图片描述
循环次数设置为3,运行,看到使用V函数达到了目的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Jmeter定时器

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

Jmeter http请求默认值

在这里插入图片描述
填写默认值,类似于编程里函数的缺省参数,若该配置原件作用域内的请求没有填写值的话,就使用默认值,否则就使用填写进去的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行结果
在这里插入图片描述
在这里插入图片描述

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

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

Jmeter http代理服务器

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

Jmeter http cookie管理器(未完善)

Jmeter参数化

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

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

用一个例子来进行说明
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行结果
在这里插入图片描述
在这里插入图片描述
删除测试计划中的-用户定义的变量
在这里插入图片描述
运行结果
在这里插入图片描述
在这里插入图片描述

CSV数据文件设置

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

Jmeter逻辑控制器

一堆堆的、暂时没有需要用到的场景,未学习使用
在这里插入图片描述

Jmeter连接数据库

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

二、性能测试(未完善)

用表格查看结果

聚合报告

基准测试、单交易测试、混合交易测试、系统性能状态监测

基准测试:测试结果作为后续性能测试结果的对照

性能测试常见分类

负载测试:满足系统性能指标(运行状态较好)最大负载量,如电梯的载重量

压力测试:逐渐增加电梯的载重,测试多大的载重会把电梯压塌,获取这个临界值就是压力测试的目标,系统能够承受的极限负载量(超重到多少会塌)

稳定性测试:给系统一定的业务压力(通常以日常的,真实的客户量进行模拟),运行一段时间,检查系统是否稳定

并发测试:多用户同时访问同一应用,测试目的主要是测试资源竞争,互相等待,造成死锁

性能测试常用指标

吞吐量:

并发数:同一时刻向系统发请求的用户数
相对并发:同一时刻同时访问某个应用
绝对并发:同一时刻同时访问某个操作

响应时间:

点击数:

资源利用率:
常见指标:cpu、内存、磁盘、网络

错误率:系统在负载情况下,失败交易的概率,错误率=(失败交易数/交易总数)*100%

TPS:并发数/平均响应时间

QPS:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值