前言
最近在学习重温一门高并发课程之际又把Jmter的基础了解和学习了一遍,这里进行一个基础的认知与记录(下载版本为当前最新版本,没有汉化,不过基础的单词我相信难不倒大家)
正文
下载与安装
首先登录官网JMetre官网,隶属于apache。
然后点击左侧的下载按钮:
选择适合自己电脑的版本,这里我选择了zip到本地进行解压缩。
tgz是对应linux下。zip对应windows。
这里我放在D盘下面(注意路径不要出现中文)进入到如图所示的bin目录下,双击运行jmeter.bat,若是不成功,右键管理员方式进行运行。
成功以后会出现如下图所示情况:
初步压测
- 右击Test Plan(注意点击黑色方框内的内容)表示添加一个线程组。
- NOT: 表示线程的个数,也就是你进行压测时候并发是多少
RP: 表示启动的时间,若是1,表示你的线程启动时间是1s,一般我们设置为0,表示线程同时启动。
LC:表示循环的次数。循环访问多少次。 - 添加请求默认值,这里我对自己本地的请求地址进行压测
goods/to_list可能以后都还是会请求同一个主机的相同地址,所以先进行一个http请求默认值的设置。进行如下配置,以后http请求就不需要重复填写主机和端口号。 - 添加测试用例
如图所示我们在日后的添加中也不用添加上面的请求信息。 - 进行压测监听
- 进行小型测试,这里我们调大线程数目和循环次数。调整线程数1000,循环次数10次。可以看到qps为116,表示这个接口可以承担的访问量为116次/秒。
以下是图形分析景象(这里我也看不是很明白,才疏学浅):
设置变量
以上我们分析了普通的压测就是不设置任何的变量,对接口进行压测处置,下面我们进行比较处置,看设置变量后会有什么变化。
- 首先对于本代码来说前面有提到,将token会带回来放到cookie中,所以这里可以添加参数进行一个压测处置(PS 对于上一篇提到这里的token的博客跳转链接讲的感觉不是很好,后期会出一篇文章具体讲解一下)。
- 如何带参数压测:
- 查看结果
Emmm 差距有点大,感觉是对于第一个接口,访问数据库+redis缓存,对于第二个接口,没有访问MySqL本地数据库,才会导致差距如此大(当然这都不是大家关注的地方。) - 添加多个用户访问。
对于本次压测来说,这里模拟的却只是一个token(表示一个用户)那在我们日常的压测中如何模拟多个用户呢?
如图所示,我们将所要模拟的数据写到配置文件中,用我们设定的分割符号分割,就能在配置文件中写上我们要参与模拟的用户来达到多用户的压测。
如下是配置文件中的内容。
完成以后,在对应的value地方就不用写上所有的值,只需要写上变量名字即可。
总结
以上就是利用jmeter进行简单的压测测试,限于本人在此项目中学习到的,日后会继续深入了解学习一下,到时再出具体的文章进行讲解与介绍。