前言
jmeter是apache的一个开源压力测试工具。
话说,实在很好奇开发出来的程序性能如何。所以抽空配置一下jmeter,后续还会有实际压测例子。
对了,可以先看看文章,参考:
Jmeter环境搭建与使用(Linux)
这里先预告一下,
下面这个网站看起来是相当专业的,
Web Framework Benchmarks
第一页,json格式化性能:
额,前面几个看不到spring,spring在这里呢:
单条数据库查询:
额,spring在后面呢:
写完这篇文章以后,下一个目标是,重做benchmark试验----当然就针对java web框架,譬如:vert.x还有spring什么的,还spring一个正名。额,当然用的是自己的渣渣机器,然而没问题,只要得出胜负就可以了。
配置
在官网下载jmeter,额,这里:
sudo wget http://mirrors.shu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.0.tgz
解压缩到目标文件:
sudo mkdir -p /usr/local/jmeter/
-- 解压到目标目录:
sudo tar -zxvf apache-jmeter-5.0.tgz -C /usr/local/jmeter/
可以得知,文件现在的jmeter的正式目录是:
/usr/local/jmeter/apache-jmeter-5.0/
好了,将bin路径加入到环境变量中去:
sudo vim /etc/profile
写入以下内容:
#配置jmeter
export PATH=/usr/local/jmeter/apache-jmeter-5.0/bin:$PATH
然后,
source /etc/profile
再试试能不能运行jmeter:
jmeter -v
成功运行,嗯,这样就配置好了。
进行一个单机web网站测试
受测网站准备
好了,作为程序员,身边肯定会有一些网站可以随便开启随便测试的,下面我就随便测试其中一个网站,是前几篇博文提到的fileserver webapp:
测试的接口是这个。
测试计划
在命令行输入:
jmeter
可启动客户端,
好了,现在来制定测试计划
下面部分照着
使用 JMeter 进行压力测试
来做,尤其是,我压根没办法截取菜单的图片,直接引用
1.创建线程组
在“测试计划”上右键 【添加】–>【Threads(Users)】–>【线程组】。
然后,额,根据他的来是500的,这个恐怕有点高了,不过没关系,设为500:
设置线程数和循环次数。我这里设置线程数为500,循环一次。
2.配置元件
在我们刚刚创建的线程组上右键 【添加】–>【配置元件】–>【HTTP请求默认值】。
配置我们需要进行测试的程序协议、地址和端口
譬如,我本地的是:
当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可。
3.构造HTTP请求
在“线程组”右键 【添加-】->【samlper】–>【HTTP 请求】设置我们需要测试的API的请求路径和数据。
根据实际情况,应该这样:
注意,参数不要有空格等特殊符号—除非你将空格自己手动转为url认可的编码。
4.添加HTTP请求头
这个。。也加上去。。
5.添加断言
在我们刚刚创建的线程组上右键 【添加】–>【断言】–>【响应断言】。根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息
好了,按实际情况,
6.添加察看结果树
在我们刚刚创建的线程组上右键 【添加】–>【监听器】–>【察看结果树】。直接添加,然后点击运行按钮就可以看到结果了。
实际响应情况:
7.添加Summary Report
在我们刚刚创建的线程组上右键 【添加】–>【监听器】–>【Summary Report】。直接添加,然后点击运行按钮就可以看到结果了。
实际情况:
8.测试计划创建完成
记得点保存。
执行测试计划
先参考:
实际情况:
本地的保存地址为:
/home/too-white/测试计划/file-server-web-app-test1.jmx
实际命令为:
cd /home/too-white/测试计划/
mkdir -p testplan/webreport
jmeter -n -t file-server-web-app-test1.jmx -l result.txt -e -o testplan/webreport
执行结果:
话说不知道为什么每次都要source /etc/profile才能识别到jmeter的目录
附录
JMeter学习(一)工具简单介绍
该文章的部分内容