作者前言
🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言、C++和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂
性能测试工具
- **作者前言**
- jmeter
- jmeter基础配置
- jmeter的使用
- jmeter线程组界面
- HTTP请求默认值
- HTTP信息头管理器
- json提取器
- 用户定义的变量
- Json断言
- 同步定时器
- 事务控制器
- CSV数据⽂件设设置
- jmeter插件
- 梯度压测线程组Stepping Thread Group
- 性能测试报告
jmeter
这是一个性能测试工具,具体的安装过程可以网上寻找,这里就不过多介绍了
jmeter基础配置
第一步找到如下文件
然后点击修改里面的内容,如图
可以永远使用jmeter的中文版
jmeter的使用
第一步打开软件
进入软件后。会看见如下界面:
第二步右键如下:
创建一个线程组,然后右键线程组。在“线程组”下添加“HTTP”取样器,如下:
然后看到如下界面:
下面我们进行测试一下接口,前面我们写过个人博客测试报告。我们就使用这个登入接口,首先找到对
下面我们借助一些postman软件来进行测试,
首先我们输入账号密码区访问这个接口,看看这个接口返回的数据是啥如下:
上面的操作,是在输入错误的密码返回的数据,下面我们借助postman来进行:
如下:
可以看到返回的数据,下面我们使用jmeter来进行操作一下:
运行之后,会提示我们保存,
在postman 中,我们发送请求就会看到结果,而在jmeter需要我们添加结果树,如下:
我们点击运行,然后查看对应的结果树 结果如下:
以上就是jmeter的大致使用
jmeter线程组界面
HTTP请求默认值
创建:
在请求页面的时候,会发现协议+ip+端口号是不变的,在我们创建多个线程访问该页面时,就需要重新配置,很麻烦,所以我们可以进行修改http请求默认值来减少我们配置信息,
如图:
这就是配置出来的一个http请求默认值,
HTTP信息头管理器
这个主要就是lmeter的一个配置元件, 里面可以添加对应的请求头的数据。
如图:
json提取器
在发送请求的时候,往往是需要请求头的,有些请求头的数据是上一个接口返回的数据,而这些数据是改变的,这就需要我们进行提取。
下面我们进行练习一下:
首先我们需要对选择如下:
然后进行点击对应的登入,查看对应的json数据,可以看出
然后输入对应的表达式,如图进行查找出对应的数据
流程:
首先创建出json提取器,分别写入变量名和提取的数据(json表达式)
这里的提取会在同级目录下的所有返回的json数据去寻找,不单单是只找一部分,但是一些情况就是多个请求返回的数据有相同的,就会把最新的数据覆盖旧的,所以说,我们要提取哪个请求的数据,就把该json提取器放入对应要提取的目录下:如图:
然后在需要使用的地方引入变量名,写法:
${变量名}
如图:
用户定义的变量
添加⽅式:线程组—配置元件—⽤⼾定义的变量
当我们访问到博客列表的时候,会有许多的文章,每个文章对应有各自的id,如果需要访问对应的文章,只需修改id就行,可是如果手动的一个个的修改,很不现实,所以我们可以创建id变量,然后使用就行,
注意:json提取定义的变量不能和用户定义的变量名相同,也不能更改json定义的变量(修改不了)
如图:
Json断言
接⼝发送请求成功,响应码为200并不能完全代表接⼝请求成功,我们更多需要关注接⼝响应数据是否
符合预期
配置:
同步定时器
为了达到并发的效果,需要添加同步定时器
在没有添加同步定时器时,线程时谁准备好谁开始的,并不是并发,如图:
当我们设置同步定时器,就有如下:
注意**,如果设置的等待线程数量大于实际的线程的数量或者实际线程数量不是等待线程数量的整数倍,就会一直等待**
还有一种情况就是准备好的线程数量大于需要等待的线程数量,准备好的线程数量就会全部发出,这种清空也会导致最后一次等待过程,线程数量小于需要等待的线程数量,导致一直等待,
需要我们把循环执行点击上永远,只需循环到最后能执行完为止.
事务控制器
JMeter事务控制器的作⽤主要⽤于测试执⾏嵌套测试元素所花费的总时间。这相当于模拟⽤⼾进⾏⼀系列操作的测试
注意:若不添加事务控制器,则⼀个接⼝即⼀个事务。
添加了事务控制器后,可以将多个接⼝统⼀放到⼀个事务控制器下作为⼀个事务
使用:
可以看到把详情页2和博客详情页放在了同一个事务控制器下,变成了一个事务.
然后我们点击聚合报告,
如下:
一个事务的完成时需要详情页2和博客详情页都完成一次,
CSV数据⽂件设设置
添加⽅式:线程组⸺配置元件⸺CSV数据⽂件设置
操作:
读取方式,是一行行读取的,然后我们在登入接口的请求参数设置如下:
我们创建的csv文件的编码格式一定要和设置的一样,否则是访问不到的
jmeter插件
下载Jmeter插件功能:
https://jmeter-plugins.org/install/Install/
然后重启jmeter,下面点击下载两个插件
下载这两个插件
梯度压测线程组Stepping Thread Group
在真实企业压测场景中,我们通常为⼀点⼀点的逐步增加线程数,因此需要安装新的插件来⽀持线程
数的配置
This group will start:启动多少个线程,同线程组中的线程数
First, wait for:等待多少秒才开始压测,⼀般默认为0
Then start:⼀开始有多少个线程数,⼀般默认为0
Next,add:下⼀次增加多少个线程数
threads every:当前运⾏多⻓时间后再次启动线程,即每⼀次线程启动完成之后的的持续时间;
using ramp-up:启动线程的时间;若设置为5秒,表⽰每次启动线程都持续5秒
如图:
thenhold loadfor:线程全部启动完之后持续运⾏多⻓时间
finally,stop/threadsevery:多⻓时间释放多少个线程;若设置为5个和1秒,表⽰持续负载结束之后
每1秒钟释放5个线程
图像意思:
性能测试报告
JMeter测试报告是⼀个全⾯⽽详细的⽂档,它提供了关于测试执⾏结果的详细信息,帮助⽤⼾全⾯评
估系统的性能并进⾏性能优化
Jmeter -n -t 脚本⽂件 -l ⽇志⽂件 -e -o ⽬录
-n : ⽆图形化运⾏
-t : 被运⾏的脚本
-l : 将运⾏信息写⼊⽇志⽂件,后缀为jtl的⽇志⽂件
-e : ⽣成测试报告
-o : 指定报告输出⽬录