【JMeter系列-7】Linux下执行测试
JMeter不仅能十分便捷地进行接口测试,同时它也是一款优秀的压测工具。但使用JMeter在自己的电脑(下称本机)上运行压测脚本时,一般会有两个瓶颈:
- 网络:本机与服务器之间的网络开销,会严重影响服务的性能表现。而且,本机与服务器一般不在同一个网段,网络瓶颈会更加明显。
- 本机性能:工作所用的笔记本,其性能很难与linux系统服务器的性能相比。而且,在Windows端运行的JMeter相比于Linux端的no-gui 模式,本身性能也会差一些。另外,压测对本机的占用,会影响我们其他工作的开展。
基于以上两点考虑,将压测脚本部署到Linux服务器上运行,是一个很好的选择。在实际的性能测试中,一般会专门申请一台CPU、内存、磁盘指标都较好的linux服务器作为压测机器。
1 环境配置
- 版本情况:Linux版本为Centos7,JMeter使用版本为3.3,JDK版本为1.8。
- JDK配置:
- 将tar.gz格式的JDK安装包通过xshell5上传到/opt目录;
- 将安装包解压;
- 环境变量设置: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
- source /etc/profile使配置修改生效;
- 验证:输入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系统中的安装十分简单:
- 将Jmeter安装包通过xshell导入/usr/local目录;
- 将Jmeter安装包解压缩:tar –zxvf apache-jmeter-3.3.tgz
- 赋予权限:chmod -R 777 apache-jmeter-3.3
- 配置环境变量:vi /etc/profile,在末尾输入:export PATH=/usr/local/apache-jmeter-3.3/bin/:$PATH,保存退出;
- source /etc/profile 使配置生效;
- 检验jmeter是否可以运行:jmeter –v,出现以下信息,说明Jmeter安装配置成功;
no-gui模式运行脚本
一、操作步骤
- 在windows下Jmeter里编写完成脚本,脚本名称:test.jmx;
- 将脚本上传到Linux系统指定目录中,例如:/opt/local/jmeterScripts
- 执行以下命令: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系统中。
- 微信公众平台开发
- BZOJ 1115: [POI2009]石子游戏Kam (阶梯nim)
- php性能监测模块XHProf
- BZOJ 1022: [SHOI2008]小约翰的游戏John (Anti-nim)
- 洛谷P2252 取石子游戏(威佐夫博弈)
- HDU 3032 Nim or not Nim?(Multi-Nim)
- POJ 2311 Cutting Game(二维SG+Multi-Nim)
- js去掉html标签和去掉字符串文本的所有的空格
- php操作memcache的使用测试总结
- linux awk命令详解
- php str_split 解决中文
- PHP汉字转拼音函数
- 51NOD 1185 威佐夫游戏 V2(威佐夫博弈)
- HDU 1527 取石子游戏(威佐夫博弈)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 大数相加
- Hexo+Gitee pages搭建个人博客
- ubuntu设置定时任务的三种方法
- Centos7 离线安装MySQL
- springboot 事务,多张表的操作事务回滚
- 移动硬盘显示盘符但是打不开,提示加密
- GORM V2 模型定义、约定、标签
- 字符串:简单的反转还不够!
- TypeScript 实战算法系列(七):实现图的遍历
- 63. Vue MUI的基本使用
- 初学web自动化测试--笔记1
- R语言作图——Line plot with error
- Python自学成才之路 玩转虚拟环境
- 基于腾讯云的 Rust 和 WebAssembly 函数即服务
- 谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」