Linux下Jmeter安装与实战

1、JDK的安装:https://blog.csdn.net/gufenchen/article/details/105581495

这里面记录的jdk的安装方法;

2、Jmeter的安装:Jmeter下载地址:https://jmeter.apache.org/download_jmeter.cgi

3、在linux系统下创建:

a、mkdir  /usr/local/jmeter

b、将Jmeter安装包解压到这里:unzip apache-jmeter-5.1.1.zip

c、删除 安装包:rm -f apache-jmeter-5.1.1.zip

4、配置环境变量:在/etc/profile最后一行:unset i后面加入:下面一段保存。

export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.1.1
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH

5、执行:source /etc/profile 使配置生效。

6、验证jmeter是否安装成功:jmeter -v

7、执行压测:jmeter  -n  -t  post.jmx  -l  test.jtl 

参数说明:

-h 帮助 -> 打印出有用的信息并退出

-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter

-t 测试文件 -> 要运行的 JMeter 测试脚本文件

-l 日志文件 -> 记录结果的文件

-r 远程执行 -> 启动远程服务

-H 代理主机 -> 设置 JMeter 使用的代理主机

-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

注意:如果未设置Jmeter的环境变量则在执行脚本的时候需要检查当前目录是否是jmetet的bin 目录下

运行示意图:

post.jmx可以事先在Widnows系统下用图形界面配置好,在导入Linux系统中,运行结果,test.jtl也需要保存之后,在widows系统下导入图形界面jmeter中进行查看。

8、Jmeter分布式压测背景:

a、GUI、非GUI的区别
首先,我们知道Jmeter有两种运行方式,GUI、非GUI。
GUI:在Windows系统上运行,图形化界面,方便查看测试结果,但是消耗压力机资源较高,容易卡死,有并发限制。
非GUI:通过命令行运行,无图形化界面,不方便查看测试结果,但是消耗压力机资源较低,可以支持较大并发。

b、通过cmd命令行,或者是在Linux上使用Jmeter进行性能测试时,能够大大缩减所需要的系统资源;但是需要将jmeter脚本上传到Linux上使用命令行方式运行,如果脚本经常改动就要频繁上传;测试完成后要把结果数据下载到本地GUI环境中查看,当结果文件较大时,下载要花费大量时间,总是有很多不方便

c、通过Jmeter远程启动功能,把一台windows机器做为控制器,远程控制其它多个windows或linux压力机,从而把压力分散到多台机器上,实现高并发功能;并在master上收集测试结果。

9、Jmeter分布式压测原理:

a、客户端机器(window系统)作为一个控制器controller,控制多台slave机器的操作。
b、Controller和slave机器上最好装有相同版本的jdk和jmeter,并配置好环境变量,安装和配置方法跟windows环境类似。
c、controller通过GUI界面启动slave机器,将jmeter压测脚本发送给每台启动的slave,slave获得脚本后开始执行。slave本地不需预先存储脚本,但是需要有脚本中的依赖文件(如csv文件等)。
d、各台slave执行完成后,将结果传回给controller,controller收集后整合显示出来。

10、Jmeter分布式压测配置:

a、在slave(Agent)机配置:

在jmeter安装目录的bin目录下找到:jmeter.properties 文件打开:vim jmeter.properties

修改这三处配置:

remote_hosts=xx.xx.xx.xx     (xx.xx.xx.xx是你的Linux系统的ip地址)

server_port=1029 是jmeter(与远程主机也就是master通信的端口号;必须与master一致,默认是1099);

将server.rmi.ssl.disable=false改为true;

保存之后,执行:./jmeter-slave会错:

异常信息:服务器启动异常:java远程方法调用抛出异常:无法启动服务。localhost.localdomain是一个本地环回地址

解决方法有两种:

其一:

使用终端命令:

./jmeter-server -Djava.rmi.server.hostname=10.20.80.135

其二:在Jmeter的bin目录下:打开:vim jmeter-server文件,修改如下:

RMI_HOST_DEF=-Djava.rmi.server.hostname=10.20.80.135

在此执行:./jmeter-server  成功运行:等待master机的控制;

如果要使远程master控制slave机需要将防火墙关闭;

b、Master机(Control)配置:

在Windows系统下,找到Jmeter的安装路径,在bin目录下打开:Jmeter.properties文件;

找到:remote_hosts=修改如下;该ip即slave机的ip地址;端口与slave机端口相同;

设置成:server.rmi.ssl.disable=true

保存之后、启动jmeter;

c、Master机(Control)机远程控制slave机:

启动jmeter之后;

运行-->启动运程主机-->选择要运行的远程slave也可以全部启动,即可完成对远程服务器的控制;

 

压测时,master会把jmx脚本内容发给所有的slave,由slave执行压测任务。但是数据文件不会被master发给slave,因此过程中如果需要从csv中获取数据,需要提前放到slave机器里去,或者slave机器可以连接读取的文件服务器等

注意事项:

1、修改配置文件后必须重启jmeter才能生效

2、在控制机上远程启动之前,必须先运行slave机的jmeter-server.bat

3、当jmeter脚本中需要依赖csv等数据文件时,该文件需上传至slave机,并需要设置正确的路径。

4、先配置一个slave机成功后,再依次配置多个slave机

5、当slave机是linux系统时,一般只配置一个slave机即可,除非并发特别大时,才需要配置多个slave.

6、分布式运行时,总并发数是脚本中设置的线程数 *  slave机的个数,如线程数设置为10,使用3个slave机运行,则总并发数是30.

  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值