Jmeter分布式压测

一、前提:

3台服务器,IP分别为:A、B、C

操作系统:不限(windows\linux均可)

二、操作步骤:

1.分别在3台服务器上安装java运行环境,jdk 1.6或更高


2.分别配置好java的环境变量

windows下:

新建变量:

变量名:ClASSPATH          变量值:,;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

变量名:JAVA_HOME       变量值:JDK的安装路径,如C:\Program Files\Java\jdk1.6.0_26

PATH已存在,修改下即可    变量名:Path,在已有的变量值前增加:%JAVA_HOME%/bin;%JAVA_HOME%/jar/bin;

检测是否配置成功:

最后在cmd中运行  javac  、java 、 java -version  如果能正确打印出来,就说明配置java成功

linux是修改 /etc/profile文件,增加以下文本即可:

export JAVA_HOME=/usr/share/jdk1.6.0_14 (安装目录)
export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3.将Jmeter安装包拷贝到3台机器的任意目录下

如:从官网下载Jmeter-2.13版本,apache-jmeter-2.13.zip,将其解压,放置D盘根目录(哪儿都成)

注:各个服务器安装的版本要一致,使用的jar也要一致,否则会报错;

4.假定设置A为ctroller,B、C为agent

windows环境下,则需要修改A的jmeter的bin目录下的jmeter.properties中的remote_hosts,Linux则不用

如:remote_hosts=127.0.0.1,192.168.60.243:1099,192.168.60.212:1099

其中:

a.若本机同时也要参与并发,则写上127.0.0.1,否则不用;

b.192.168.60.243和192.168.60.212分别为B和C的IP;

c.1099为默认端口号;

d.各IP间用逗号分隔

5.配置测试计划

windows下用gui模式去编辑测试计划,存为jmx文件

注:

若是给linux下运行,则不加任何监听器,只在运行命令处添加写文件

windows下,也可以只添加Simple Data Writer监听器,写明路径,去掉其它监听器,消耗的资源更小

6.启动服务

windows下,A、B、C均启动jmeter-server.bat,若A只作controller不参与并发,则不用启;

linux下,A、B、C均启动jmeter-server,若A只作controller不参与并发,则不用启;

7.执行脚本

windows下,点击run->remote start all,或者快捷图标,若想执行单台,则点击run->remote start 列表下对应的IP

linux下,在bin目录下运行命令: ./jmeter -n -t sql.jmx -R A服务器ip1,B服务器ip,C服务器ip -l result.jtl

其中:

-n 表示nogui模式执行

-t 表示测试计划的文件,即后面的sql.jmx(自定义文件名)

-R  表示要远程的机器的IP(不需要端口号)

-l 表示结果保存的路径(自定义,需要注意的是本文件jmeter不会自动创建,需要在运行前手动创建好)

8.查看结果

windows下,直接在各种监听器下查看即可

linux下,把result.jtl放到windows下,用Jmeter打开,用各种监听器来查看(在任意testplan中添加任意监听器,点击右侧页面中的brower,打开result.jtl文件,jmeter会自动分析,并给出结果)

问题:

jmeter 2.13给出的result.jtl第一行是空的,少了各项的名称,可以将以下一行添加至文本第一行,即可打开:

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,bytes,grpThreads,allThreads,Latency

也可以直接将第一行的空行删掉即可分析,它会走默认的配置项,经验证是正确的;

另外,分析结果的时候,每分析完一个文件,就得清一下结果,否则相同label的会叠加到一起,结果就是叠加后的错误结果;或者可以将label即各request名称设为不同,则不会叠加


三、说明:

1.jmeter不会在执行期间做负载均衡,而是每一台机器都完整地执行整个测试计划,所以Jmx里若设置了并发500,则所有机器各并发500:如3台,则并发1500

2.如用到了本地文件参数化,则需要把文件上传到3台机器上,且路径一样

3.我自己的机器4g内存,跑500没问题,远程一台共跑2台并发1000也没问题

4.远程会比单台更耗资源,所以远程多台时若controller所在服务器性能不好,可能产生内存溢出或网络阻塞等问题

5.linux压测时,最好不要加任何的监听器,因为太耗性能了,只存jtl结果文件即可,结束后再用监听器进行分析

时间: 2024-10-18 13:08:21

Jmeter分布式压测的相关文章

接口测试学习——jmeter分布式压测

分布式压测我理解的就是有一台主控机和几台压力机.主控机通过远程控制压力机启动测试,来实现系统不同级别访问量情况下的性能验证.操作步骤如下: 1.启动jmeter自动化工具,界面显示如下图所示. 2.在"测试计划"单击鼠标右键,选择[添加]->[Threads(Users)]->[线程组],添加一个线程组. 3.添加线程以后,设置线程组. "线程组"可以类似于虚拟用户组,设置"线程数"为100,即我们要测试的是100个用户并发的情况:&

jmeter分布式压测(简单版)

需要使用jmeter模拟大并发的情况时,单台压测机不能满足需求,可进行分布式压测. 简单来说就是,多台机器同时安装jmeter,选择一台机器作为调度机,其他作为压力机.进行相应的配置后,就可以用调度机操控压力机发起请求. 如何配置(以Windows为例): 1.压力机: 1)执行当前压力机下jmeter安装包bin目录下的jmeter-server的批处理文件,此时该机器上启动一个java进程,并随机分配端口,监听来自调度机的请求. 但是这里我们需要配置成固定端口方式,否则调度机远程启动压力机时

第一周:jmeter分布式压测简介

在我们日常的测试工作中经常会需要对系统进行压测,一般来说,使用jmeter一台电脑支持的最大并发数 为200,那么当我们压测时需要更大的并发数时,我们就需要使用多台电脑来进行分布式压测. 第一步:首先要准备多台电脑,全部安装了jmeter,并且这些电脑都能互相ping通. 第二步:修改主机中jmeter的配置文件,在jmeter的bin目录下找到jmeter.properties文件,编辑该文件,找到 remote_hosts字段,在该字段后面添加其他电脑的IP地址,其中端口号默认为1099.

jmeter分布式压测----windows

当单台负载机进行压测不足以满足对服务端并发的情况时,就会需要使用多台负载机同时进行对服务端压测,这个时候,jmeter的分布式的方法就会被广泛使用. *******************************************************************************************************************************************************************************

jmeter分布式压测实践及踩坑记录(linux压力机)

1.分布式机器需要调度机以及压力机都安装好jmeter 1) 因为本机是mac,所以直接把本机器的jmeter压缩打包,上传到服务器解压即可.或者在服务器上自行下载安装jmeter.配置压力机的jmeter系统变量: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } vim /ect/profile export JMETER_HOME=/home/souche

jmeter 分布式压测

1.配置主机名称 查看主机名 hostname 配置主机别名 vim /etc/hosts 2.分布式主机也需要配置主机别名 3.每个主机上必需有JAVA环境和jmeter环境 4.如果脚本有参数文件,需传到相同的目录下,如果有lib包,也要传到相同的目录下 5.启动jmeter/bin目录下启动jmeter-server,先./jmeter-server看是否启动成功,如果启动成功,可使用nohup ./jmeter-server 6.进入到jmeter目录下,将两台机器上的jmeter下所有

JMeter分布式压测-常见问题之(Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception )

问题描述: 在Linux环境启动jmeter-server时抛出了如下异常: 问题描述: 1.可能监听的端口被占用,修改端口号2.Server相关的rmi配置需要调整 解决方案: 在目录/apache-jmeter-5.2.1/bin下,用vi编辑器打开名为jmeter.properties的文件找到server.rmi.ssl.disable=false,改为true,并把前面的#去掉 保存配置调整,重新启动jmeter-server即可恢复正常. 原文地址:https://www.cnblo

DAY2-jmeter分布式压测,charls操作基础,python基础

jmeter 分布式压测 jmeter可以用来做分布式压测,需要做的是: 1. 在目标压力机上安装jmeter,并且在jmeter根目录下的bin目录下启动Jmeter-server 2. 在本地的jmeter的bin目录下找到jmeter properties文件,修改 remote hosts为目标压力机的host 3. 启动->远程启动 jmeter在linux上运行 由于现在大部分的server都为linux系统,在这种情况下,如果想要做jmeter压测: 1. 将准备好的脚本放到目标机

JMeter在linux上分布式压测步骤(二)

哈喽,我又来了~ 前提:三台linux虚拟机,一台作为master,另外两台作为slave. 一.server端 1.修改1099端口,client和server通信的端口,可以不修改,默认就是1099 2.启动jmeter-server (这里启动的时候可以看到ip后面的端口不是1099,这里不用管,1099是client和server的通信端口,和这个没有关系) 二.client端:配置master和slave 1.进入到jmeter的bin目录下,打开jmeter.properties c