Linux下运行Jmeter压测

一、在Linux服务器先安装SDK

1、先从官网下载jdk1.8.0_131.tar.gz,再从本地上传到Linux服务器

2、解压:tar -xzf jdk1.8.0_131.tar.gz,生成文件夹 jdk1.8.0_131

3、在/usr/目录下创建java文件夹,再将 jdk1.8.0_131目录移动到/usr/java中

1)cd /usr/

2)mkdir java

3)mv jdk1.8.0_131 /usr/java

​3、配置java环境变量

1)vi /etc/profile

2)在最后面增加两行

python 复制代码
 export JAVA_HOME=/usr/local/java/jdk1.8.0_131

 export PATH=$JAVA_HOME/bin:$PATH

重启虚拟机后配置才会生效

3)执行命令:source /etc/profile,无需重启,配置的环境变量立马生效

python 复制代码
 或者执行以下命令(必须是root角色,普通角色没有权限)

 # export JAVA_HOME=/usr/local/java/jdk1.8.0_144

 # export PATH=$JAVA_HOME/bin:$PATH

4、查看是否安装成功,执行命令:java-version

二、安装Jmeter

1、将本地的Jmeter文件打包成zip文件:apache-jmeter-3.1.zip,再上传到服务器

2、在服务器解压缩,生成apache-jmeter-3.1目录

1)安装unzip:apt-get install unzip

2)解压缩:unzip apache-jmeter-3.1.zip

3、创建文件夹mkdir apache-jmeter-3.1

3、将apache-jmeter-3.1目录放到 /usr/local/apache-jmeter-3.1下

4、配置Jmeter环境变量。vi /etc/profile,再添加如下变量

python 复制代码
export JMETER_HOME=/usr/local/apache-jmeter-3.1/apache-jmeter-3.1

export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:
复制代码
$CLASSPATH

export PATH= J M E T E R H O M E / b i n : JMETER_HOME/bin: JMETER 
H
​    
 OME/bin:PATH

5、source /etc/profile (让配置文件立马生效)

6、查看是否安装成功,执行命令:jmeter -v

三、接口压测

1、将本地生成的jmx文件上传到服务器指定目录,如:/usr/local/apache-jmeter-3.1/jmx

2、进入该目录下,输入命令:# jmeter -n -t Linux_uat_createOrder5bf60s.jmx -l result.jtl,查看结果

jmeter -n -t -l 示例: jmeter -n -t testplan.jmx -l test.jtl

参数说明:

-n:以NoGUI方式运行脚本

python 复制代码
                 -t:后面接脚本名称

                 -l:后面接日志名称,保存运行结果

3、查看result.jtl,查看运行结果:

也可以将result.jtl发送到windows下Jmeter查看:添加聚合报告,在聚合报告中打开该文件:

4、注意:客户端和服务器的Jmeter版本最好保持一致,不然运行脚本时会报错。

5、还有另一种脚本执行指令:

#jmeter -n -t Linux_uat_createOrder5bf60s.jmx -l result.jtl -e -o /usr/local/apache-jmeter-3.1/result

在/usr/local/apache-jmeter-3.1/目录下要有空的result文件夹,否则会提示错误。

指令执行完成后,将result文件夹整个download到本地。文件夹包含:

打开index.html,可以看到网页版的结果报告:

详情请查阅相关资料,暂不赘述。

四、进阶压测

多台压测机器分布式压测:

举例以41为主机,42、43为从机,对压测环境服务器进行压测。

1、三台Linux服务器都要安装相同版本Jmeter,尽量保证安装路径一致;

2、配置41的jmeter.properties,将两台从机(42、43)的IP、端口号配置上:

目录:/usr/local/apache-jmeter-3.1/apache-jmeter-3.1/bin

配置remote_hosts,去掉前面的注释符#:

3、在三台Jmeter机器上放置同样的jmx脚本,脚本的聚合报告中,设置结果写入文件路径:

/usr/local/apache-jmeter-3.1/jmx/logs/createOrderResultKaTeX parse error: Expected group after '_' at position 2: {_̲_time(YMD)}{__time(HMS)}.jtl

会将压测执行结果放入到/usr/local/apache-jmeter-3.1/jmx/logs目录下,并自动生成带有日期时间戳的jtl文件:

会将压测执行结果放入到/usr/local/apache-jmeter-3.1/jmx/logs目录下,并自动生成带有日期时间戳的jtl文件:

4、在主机41发起压测指令前,需要将42、43两台从机启动:

目录:/usr/local/apache-jmeter-3.1/apache-jmeter-3.1/bin

指令:./jmeter-server

此时说明从机服务已启动。

5、在主机41上执行脚本指令:# jmeter -n -t Linux_uat_createOrder8bf60s.jmx -r

参数说明:-r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器

显示主机41上显示已开始(41不直接压测,远程遥控42、43进行压测)

两台从机也显示收到压测指令,开始压测:

42机器:

43机器:

主机41上显示:end of run,说明压测执行完毕:

执行脚本之后,去目录/usr/local/apache-jmeter-3.1/jmx/logs下找到生成的jtl文件,下载到本地机器Windows环境下可使用jmeter聚合报告查看结果,如图所示:

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
雯宝4 小时前
mnt_init 函数
linux
律宏阔10 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔10 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴10 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千10 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei3710 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei3710 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei3710 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh10 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW10 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux