前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JMeter系列-7】Linux下执行测试

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

作者头像
云深i不知处
发布2020-09-16 10:08:44
1.7K0
发布2020-09-16 10:08:44
举报
文章被收录于专栏:测试基础

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 ,会有下面的信息:
代码语言:javascript
复制
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:

代码语言:javascript
复制
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”,使用下列命令进行删除:

代码语言:javascript
复制
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系统中。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 环境配置
    • JMeter安装
      • no-gui模式运行脚本
      相关产品与服务
      云服务器
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档