本文使用Jmeter工具进行接口的并发压力测试,通过nmon工具进行服务器资源消耗情况进行监控,nmon是一款开源性能监控工具,用于监控linux系统的资源消耗信息,并能把结果输出到文件中,然后通过nmon_analyser工具产生数据文件与图形化结果。
Jmeter安装
jmeter是在jdk环境下运行,首先安装jdk
安装JDk的步骤如下:
点击下载的JDK文件jdk-7u13-windows-i586.exe,点击下一步直至安装完成,然后开始配置环境:
点击我的电脑----属性----高级----环境变量----在系统变量中----点击新建,
在变量名中输入:JAVA_HOME
变量值中输入:C:\ProgramFiles\Java\jdk1.7.0_13
再次点击新建:
在变量名中输入:CLASSPATH,
变量值中输入:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;
然后再系统变量中找到Path,点击编辑,在变量值中加上:
%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;(如果前面没有“;”需要加上)
配置完成之后,点击确定保存,然后cmd打开命令窗口输入:java或者javac,出现大串字符串表示配置成功。
也可以输入:java-version 查看java版本来查看是否配置成功
安装jmeter很简单,只要将下载的zip包解压缩到指定文件夹下即可,例如将zip包解压缩到E盘根目录下面
bin目录下双击jmeter.bat 或者双击桌面jmeter快捷方式 成功打开
添加线程组,
添加http请求
添加具体http内容(以订单情况接口为例)
添加察看结果树
添加聚合报告
设置并发数、持续时间
添加断言
断言的内容,可以从接口请求的结果里获取,如下图中内容
Xshell 连接被压服务器地址(做压力测试前,一定要清楚被压服务器是哪个?是一台还是多台)
因服务器为外网地址,与被压服务器不通,所以需要连接VPN
Nmon安装
Nmon安装成功
Xshell 连上被压服务器后,将nmon文件导入被压服务器至/根目录下(rz)
Chmod -R 777 nmon(分配最高权限)
创建一个文件夹,存放结果
Mkdir result
Chmod -R 777 result
当执行压力测试过程中(脚本一启动),随后在被压服务器执行以下指令:
./nmon -s5 -c60 -f -m /result
Nmon 执行完毕后,从result目录中查找nmon文件并重命名
然后sz导出至桌面
参数解释:
-s5 每 5 秒采集一次数据。
-c60 采集 60 次,即为采集十分钟的数据。
-f 生成的数据文件名中包含文件创建的时间。
-m 生成的数据文件的存放目录。
这样就会生成一个 nmon 文件,并每五秒更新一次,直到五分钟后。
生成的文件名如: <hostname>_090824_1306.nmon ,"<hostname>" 是这台主机的主机名。
本次生成文件如下文件yunapp2_190726_1402.nmon
测试完成后,可将文件进行相应修改,便于后期整理报告
结果分析
通过后台监控和定期监控,我们可以得到扩展名为nmon的监控文件,这些文件记录着系统资源的数据,需要配合分析工具(nmon analyser)进行解读。
1、将/usr/bin/result/文件夹下生成的命令通过sz命令下载到本地
2、在本地打开nmon analyser v34a.xlsm
3、点击界面上的Analyse nomn data按钮,将下载的下来的文件添加进去
最后会生成一个xlsm文件,入下图:
CPU利用率为53.4%,如上图所示
内存占用计算公式为:(B2-F2-K2-N2)/B2*100%
计算出一条信息后,再计算出平均值,即为本次性能测试服务器内存的占用情况:17.27%
每个接口测试需要多测试几次,求一个平均值,这样更符合实际情况