【JMeter系列-7】Linux下执行测试

JMeter不仅能十分便捷地进行接口测试,同时它也是一款优秀的压测工具。但使用JMeter在自己的电脑(下称本机)上运行压测脚本时,一般会有两个瓶颈:

  1. 网络:本机与服务器之间的网络开销,会严重影响服务的性能表现。而且,本机与服务器一般不在同一个网段,网络瓶颈会更加明显。
  2. 本机性能:工作所用的笔记本,其性能很难与linux系统服务器的性能相比。而且,在Windows端运行的JMeter相比于Linux端的no-gui
    模式,本身性能也会差一些。另外,压测对本机的占用,会影响我们其他工作的开展。

基于以上两点考虑,将压测脚本部署到Linux服务器上运行,是一个很好的选择。在实际的性能测试中,一般会专门申请一台CPU、内存、磁盘指标都较好的linux服务器作为压测机器。

1 环境配置

  • 版本情况:Linux版本为Centos7,JMeter使用版本为3.3,JDK版本为1.8。

  • JDK配置:

    1. 将tar.gz格式的JDK安装包通过xshell5上传到/opt目录;
    2. 将安装包解压;
    3. 环境变量设置:vi /etc/profile,在文件最后面添加下面一段内容,保存后退出:
      export JAVA_HOME=/opt/jdk1.8.0_131
      export PATH=$JAVA_HOME/bin:$PATH
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    4. source /etc/profile使配置修改生效;
    5. 验证:输入java –version,出现以下信息,说明JDK安装配置完毕;
      在这里插入图片描述
  • 注意事项:
    安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息:

java version "1.6.0"
OpenJDK  Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)

最好还是先卸载掉openjdk,在安装sun公司的jdk
1.先查看 rpm -qa | grep java,显示如下信息:

java-1.4.2-gcj-compat-1.2.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

2.执行下列命令,删除原有JDK:

rpm -e --nodeps java-1.4.2-gcj-compat-1.2.2.0-40jpp.115
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

如果出现“找不到openjdk source”,使用下列命令进行删除:

yum -y remove java java-1.4.2-gcj-compat-1.2.2.0-40jpp.115
yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

JMeter安装

JMeter在linux系统中的安装十分简单:

  1. 将Jmeter安装包通过xshell导入/usr/local目录;
  2. 将Jmeter安装包解压缩:tar –zxvf apache-jmeter-3.3.tgz
  3. 赋予权限:chmod -R 777 apache-jmeter-3.3
  4. 配置环境变量:vi /etc/profile,在末尾输入:export PATH=/usr/local/apache-jmeter-3.3/bin/:$PATH,保存退出;
  5. source /etc/profile 使配置生效;
  6. 检验jmeter是否可以运行:jmeter –v,出现以下信息,说明Jmeter安装配置成功;
    在这里插入图片描述

no-gui模式运行脚本

一、操作步骤

  1. 在windows下Jmeter里编写完成脚本,脚本名称:test.jmx;

  2. 将脚本上传到Linux系统指定目录中,例如:/opt/local/jmeterScripts

  3. 执行以下命令:jmeter -n -t /usr/local/jmeterScripts/test.jmx -l /usr/local/testResult/test.jtl

    -n表示以nogui方式运行测试计划
    -t表示测试计划,后面跟测试计划名称
    -l表示测试结果,后面跟测试结果文件名称
    在这里插入图片描述
    当控制台出现上图,说明脚本成功运行。

    出于方便考虑,将启动命令写入脚本start.sh中:

    #!/bin/bash
    jmeter -n -t /usr/local/jmeterScripts/test.jmx -l /usr/local/testResult/test.jtl
    

脚本运行结束后,会在testResult目录下生成一个test.jtl文件,将这个文件导出到windows端JMeter中的聚合报告中,即可查看测试详情。
在这里插入图片描述
二、注意事项
如果使用参数化策略,将参数化文件放入Linux系统中Jmeter安装文件的bin目录下,同时脚本参数化设置中,文件路径只写文件名即可。
在这里插入图片描述
以往这种方法是正常的,但在最近的实践中,遇到了诡异的问题,参数化文件被报不存在的错误:
在这里插入图片描述
解决方案是:在Filename处填写参数化文件在Linux系统下的绝对路径,当然这个输入框是不允许输入Linux路径格式的,需要通过引用变量的方式赋值。
在这里插入图片描述
用户定义的变量中填写参数化文件的完整路径:
在这里插入图片描述
其他可能遇到的问题就是,脚本中引用了一些jar包或者使用了插件,而linux中的JMeter安装包中未含有这些资源,最简单的解决方案就是将包含完整资源的windows端JMeter安装包压缩后上传到Linux系统中。

发布了40 篇原创文章 · 获赞 61 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/mu_wind/article/details/95733081
今日推荐