前面讲过在Windows执行性能测试的方法,就是这篇了《jmeter - 一个完整的接口测试的脚本》,
在Windows执行性能测试之前,首先要有1个性能测试脚本嘛,
但是这个性能测试脚本是不是直接可以在Linux上面使用?当然可以了。
那什么时候不可以呢?参数化的时候不可以,因为需要读本地的.csv文件,路经需要修改一小下。
因此,才有了另一篇《Jmeter - 构建1个可供Linux使用的Jmeter测试脚本 - 共3个步骤》。
那么,已经讲到:已经构建好了可供Linux使用的Jmeter测试脚本。
于是本篇文档就讲一下怎么在Linux使用这个"可供Linux使用的Jmeter测试脚本"。不可能像在Windows那样操作嘛,那样的话基本也就不用写了,所以还要写一下。
准备工作
//上传文件的操作:上传测试脚本文件(testPlanForLinux.jmx)、参数化数据文件(moives.csv)
//在jmeter安装文件的bin目录,上传这2个文件
操作1:$cd /home/userName/jakarta-jmeter-2.5/bin/ //Linux命令是:cd
操作2:上传movies.csv //Linux命令是:rz
操作3:上传testPlanForLinux.jmx //Linux命令是:rz
//上传文件的操作:上传统计测试结果的脚本文件(就是那几个写好的.awk脚本文件,用awk写的。)
//在测试结果目录,上传这3个文件
//我们在Jmeter里设置的测试结果文件保存路径是:../../result/testResult.csv
操作1:$cd /home/userName/result //Linux命令是:cd
操作2:上传getNUM.awk、success.awk、timeattribute.awk //Linux命令是:rz
//删除文件的操作
//在测试结果目录,在执行下1次性能测试之前,必须要删除前1次性能测试结果文件
//为什么要清除?因为我们每次执行1轮性能测试,只对本轮结果来作统计。留着旧数据没用。
操作方法1:$rm testResult.csv
操作方法2:$echo "" > /home/username/jakarta-jmeter-2.5/ testResult.csv
//在测试服务器 [ 就是被压的那台nginx服务器,如果直接删除(rm)掉结果文件,可能引起无法继续写入结果至”结果文件”,所以“操作方法2”是一个保守而稳妥的方法。]
执行测试
$cd /home/userName/jakarta-jmeter-2.5/bin/
$./jmeter -n -t testPlanForLinux.jmx
- -n告知JMeter采用非图形化运行JMeter脚本
- -t指定要运行的脚本文件
如果Linux系统提示性能测试脚本无法被执行,请参考以下常见的权限问题:
- ”su”与”su –“有区别,记住最好使用”su –“。
[ 执行”su –“时,表示该用户想要变换身份成为root,且使用root的环境设置参数文件。]
- 在jakarta-jmeter-2.5/bin目录,使jmeter文件的权限最大化。 //Linux命令是:$chmod 777 jmeter
- 也有可能是测试机没安装java,所以安装java即可。[ 参考《Jmeter-安装JDK- 配置Jmeter运行的环境 - 是使用Jmeter的前提》]
实时监控测试的方法
//进入到测试结果目录
操作:$cd /home/userName/result
//看看每1行返回结果。如果返回200,说明hosts是正确的,脚本也是正确的。
操作:tail –f testResult.csv
操作:如果需要中止实时查看,则执行快捷键 Ctrl + C
//实时查看返回结果总数目。比如在跑脚本的过程中执行一下,看看当前已经返回了多少条记录。再比如肯定要在脚本跑完后,看看总共返回了多少条记录。
操作:wc –l testResult.csv