==========================================================================================================
写在前面:
因为工作需要,Windows下的自动化测试已经不能满足需求,需要在Linux环境下运行。
主要原因是:因为上班时候,使用Jmeter Windows平台时,会占用大量的网络资源,其他同事上网都会受到影响(也不知道其他公司是这样的情况吗,主要是网慢)
然后,第二个原因是,Windows平台下,加载到一定程度时,资源会被耗尽,而且测试服务器和本地服务器的网段不在一块,测试会经过很多网络链路
所以:结论就是,在linux下,实现服务器对服务器公网的压测。
==========================================================================================================
在Linux服务器上测试,首先,需要部署Jmeter到linux服务器上。
1、配置java环境(网上借鉴别人的)
>>cd /opt/
>>rpm -ivh jdk-7u79-linux-x64.rpm
确认安装成功:
>>rpm -qa|grep jdk
(3)最后修改vi /etc/profile,在文件的最后添加如下内容:
JAVA_HOME=/opt/jdk1.7.0_75
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
(4)保存后,用户退出
(5)再次登录liunx,检查jdk是否安装成功:输入java、输入java -version,能查看到版本即jdk安装成功
2、安装jmeter
(1)直接将 windows使用的jmeter拷贝至opt目录下面,即apache-jmeter-2.13版本
[也可以下载apache-jmeter-2.12.tgz移动到/opt目录下,解压:tar -zxvf apache-jmeter-2.12.tgz]
(2)配置环境变量:vi /etc/profile,输入:
Version 2.13 r1665067
3、编写测试用例jmx
我是在windows的Jmeter模式下,新建一个测试计划,可在测试计划里添加对应的定时器,聚合报告等,保存并上传到linux机器对应目录。
在linux目录下找到你的测试计划,vim打开进行编辑
<stringProp name="ThreadGroup.num_threads"></stringProp> 线程数
<stringProp name="ConstantTimer.delay"></stringProp> 固定定时器的时间间隔
可以在Linux环境下,进行相关的参数调整。
Jmeter安装成功后,jmx文件准备好时,可以使用以下命令,运行压测文件。
下载:同样在jemeter官网下载 对应的安装包,解压后执行:./jmeter -n -t ../ssdb_test.jmx -l ../log.jtl
/root/test/apache-jmeter-3.2/bin/jmeter -n -t test.jmx -l test.jtl
运行测试脚本时可以使用的一些命令:
- -h 帮助 -> 打印出有用的信息并退出
- -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
- -t 测试文件 -> 要运行的 JMeter 测试脚本文件
- -l 日志文件 -> 记录结果的文件
- -r 远程执行 -> 启动远程服务
- -H 代理主机 -> 设置 JMeter 使用的代理主机
- -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
例如:jmeter -n -t test1.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080
4、结果文件即之前保存过的test.jtl格式文件
该文件可以使用 GUI 模式下的聚合报告查看,可以打开 JMeter GUI 界面 -> 测试计划 -> 添加线程组 -> 添加聚合报告 -> 点击 "浏览..." 按钮找到你刚生成的 jtl 文件打开即可统计结果进行分析。
5、需要把log从服务器上下载到本地时,使用:
tar -zcvf JavaTest-500-3-ForEver.tar.gz JavaTest-500-3-ForEver.jtl JavaTest-500-3-ForEver.log
然后将文件使用可视化的界面下载到本地。