起因
测试美眉对性能压测很感兴趣,说想试试jmeter,问有没有保姆级的jemter教程。我思考了一下决定亲手写一个。
什么是jmeter
jmeter是一款压力测试工具。
ok,那我们先搞清楚什么压力测试?
打个比方,有个网站:www.xiaoxiaoguo.cn,我想知道这个网站能不能同时承受10个人访问的话,要怎么做呢?最简单的办法就是找10个人,喊3,2,1,然后这个10个人同时操作电脑打开网站。找10个人应该不是很难,但假如要测试100个人,1万个人呢?这个方法就不行了。
在实际的测试工作中,我们也不会采用这种人工的方式来测试网站的承受能力,而是通过软件来完成,jmeter就是这样一款帮你模拟1万个人同时访问的软件。
jmeter安装
jmeter是开源的,不收费。官网是https://jmeter.apache.org/,认准这个网址,不要跑错地方了。
确保安装了java
首先确定电脑上安装了java,打开终端,输入命令:
java -version
如果有类似如下的提示,就表示安装了:
java version "13.0.2" 2020-01-14
Java(TM) SE Runtime Environment (build 13.0.2+8)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
如果提示命令未找到command not found,或者版本低于8,则可以参考这个文章安装一下
https://blog.csdn.net/u012934325/article/details/73441617
安装jmeter
打开官网 https://jmeter.apache.org/ ,点击左侧的 Download Releases
选择下载Source,下载apache-jmeter-5.4_src.zip
下载完成后,解压,双击bin目录下的jmeter图标,就能打开使用了。
jmeter界面介绍
打开jmeter,界面长这样:
看到这么多按钮,不要慌,我们慢慢来。
上面的按钮就是脚本保存,剪切复制等。用的多的是开始结束按钮(绿色箭头那个),清除测试结果按钮(齿轮扫把那个)。重新测试时,我们要清除之前的测试结果,确保新的测试结果是独立的。
左侧的“测试计划”这个名称可以随便修改,当有多个测试计划时,名称能区分出来即可。
这里我把它改为测试示例,点击保存按钮,如果是第一次保存,会弹一个窗口,让你选择一个目录用于存放这个测试脚本。
选择好对应的目录,点击保存即可。
jmeter使用
接下来就进入正题,让我们开始使用jmeter吧。
右击左侧的测试示例,点击添加,选择 线程-线程组
这里就相当于就是添加了一个用户群。这个线程组的名称也可以随便改,这里我把它改为一百个人,把线程数改为100,相当于找到了100个人。
100个人找到了,接下来我们就要给这些人安排活了。
右击一百个人,点击添加 - 取样器 - HTTP请求
添加后,就能看到干活的界面了
给这100个人安排什么活呢?让他们同时访问这个地址吧:
https://img-home.csdnimg.cn/data_json/toolbar/toolbar1217.json
名称改为访问网站,我们测试的是https接口,协议就填https,域名填img-home.csdnimg.cn,端口写443,方法写GET,路径写data_json/toolbar/toolbar1217.json,填好后点保存即可。
之后点击绿色箭头就开始压测了。
可以看到右上角有个100,这就是我们安排的100个人了,当左侧数字变为0时,就表示这100个人都干完了。
但我们不好检查这100次的访问结果,所以接下来我们要请一个监工,把结果记录来,方便我们分析查验。
右击访问网站,选择添加 - 监听器 - 察看结果树
此时在左侧会看到一个结果树。
再次点击运行,就可以在结果树中看到每次的请求结果
这个100个结果如果一个个去看,看的眼都花了。如果是1万个人的话,那不是要上天了。所以我们再请一个统计的人来,让他帮我们统计。
右击访问网站,选择监听器 - 汇总报告
再点击运行,执行完成后,点击汇总报告就能看到汇总的数据了:
通过这些值,我们就能对网站或接口的性能做出评估。
后续
通过前面的步骤,我们就会使用jemter来测试网站或接口了。
接下来如果有兴趣,可以进一步去试试这些:
接口自动传参
接口联动(将上一个接口的结果返回给下一个接口)
使用jmeter命令行测试,而不是jmeter界面
分布式测试(配置多台jemter,模拟几万人同时访问,爽歪歪)
``
![](https://img-blog.csdnimg.cn/20201210165808753.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIzNzU5MjQ=,size_16,color_FFFFFF,t_70#pic_center#pic_center#pic_center)