Jmeter分布式测试

  在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

一、Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

  2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。

  3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

 

二、执行机(slave)配置:

  1、slave机上需要安装Jmeter,具体如何安装这里不详细介绍了。

  2、添加环境变量:JMETER_HOME=D:\B_TOOLS\apache-jmeter-2.13,此处为你Jmeter的路径

  3、启动bin目录下的:jmeter-server.bat,启动成功如下图:

  

  4、上图上标红的IP和端口会在master里配置时用到。IP就是slave机器IP,端口默认是1099,端口也可以自定义,这里我自定义为1000,这个后面会讲。 

  5、多台slave的话,重复1~4步骤就好。  

 

三、调度机(master)配置:

  1、脚本:简单的一个访问百度的脚本: 

  

  2、找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口(这里端口我自定义为100,后面会讲如何自定义):

        remote_hosts=10.13.223.202:1000,10.13.225.12:1000

    多台slave之前用","隔开,我这配置了2台,可以看到标红的这个就是上面截图slave的IP和Port.

  3、打开Jmeter,选择运行,有运程启动、运程全部启动两个选项:

  

  4、选择远程启动-->10.13.225.12:1000

    a) master结果,这里我只启动了10.13.225.12:1000这一台slave,所以只有一个结果(线程数和循环次数都是1):

  

    b) slave控制台信息:

   

  5、选择远程启动-->远程全部启动:

    a) master结果,全部启动,我配置了2台slave,所以有两次执行结果:

  

  

四、自定义端口:

  上面其实已经实现了Jmeter的分布式测试,这部分主要介绍下如何自定义slave端口:

  1、slave:在slave机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888:

      server_port=1888

      server.rmi.localport=1888

  2、启动slave机上的jmeter-server.bat,如下图,端口已经修改为:1888

  

  3、master:修改master机器的jmeter.properties文件:

      remote_hosts=10.13.223.202:1000,10.13.225.12:1888

  4、重启jmeter.bat,如下图,端口已经变了:

  

 

五、其它说明:

  1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。

  2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。

  3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。

 

时间: 2024-09-18 09:25:06

Jmeter分布式测试的相关文章

一种搭建分布式测试环境和批量性能测试的思路

背景 在搜索引擎的测试过程中,经常会遇到以下两个问题: ● 需要搭建和更新分布式测试环境 ● 在性能测试时,我们需要测试不同集群规模和配置下的环境时,如何自动更新测试环境和批量进行性能测试 因此,我们需要设计一个脚本,这个脚本可以帮我来完成这些事. 在这里,我推荐使用Python,理由有: ● 写起来比较快(测试时间本来就比较紧张),不可能用C或者Java了 ● 语法比较清晰,Shell.Perl这些维护起来太乱 ● 自带的库.第三方的库比较丰富 ● 另外,我个人比较喜欢Python的mako模

Jmeter分布式部署文档

很多时候,我们测试时,如果进行大数据量的并发测试时,单个电脑的CPU和内存可能无法承受,这个时候,我们需要进行一个分布式的测试,比如10000个并发,使用三台电脑来进行并发,Jmeter提供了这种功能,你可以很轻松的实现Jmeter的这种分布式测试 1 首先确何所有的电脑上都安装Jmeter 2 在所有电脑上开起Jmeter,开启命令是jmeter-server.bat,而不是以前的jmeter.bat 注意:你所要运行的不要开启,那些用来负载的,才开启服务器模式,这个模式没有界面,只有控制台的

分布式测试框架架构与思考(1)奠基

"工欲善其事必先利其器".无论是哪个行业,这都是一句至理名言,软件测试当然也不例外.这也正是分布式测试框架(下文简称DST)设计的初衷. DST是海量数据项目背景下,为了解决测试集管理.运行.查询和测试执行.控制以及监控.日志数据的收集整理的一个通用型测试与分析平台.这个平台既包含了传统测试框架的特点也包含了自身的开创性思想.作为DST从前端界面到后端服务的亲身经历和开发者,下面我将从技术选型.架构设计.功能点分析.使用场景以及周边支持工具这几个角度来对DST测试平台做一个总结,进一步

分布式测试框架架构与思考(1)技术选型

"工欲善其事必先利其器".无论是哪个行业,这都是一句至理名言,软件测试当然也不例外.这也正是分布式测试框架(下文简称DST)设计的初衷. DST是海量数据项目背景下,为了解决测试集管理.运行.查询和测试执行.控制以及监控.日志数据的收集整理的一个通用型测试与分析平台.这个平台既包含了传统测试框架的特点也包含了自身的开创性思想.作为DST从前端界面到后端服务的亲身经历和开发者,下面我将从技术选型.架构设计.功能点分析.使用场景以及周边支持工具这几个角度来对DST测试平台做一个总结,进一步

服务器-jmeter压力测试的一些问题(太多了所以没办法整理个标题出来)

问题描述 jmeter压力测试的一些问题(太多了所以没办法整理个标题出来) 刚刚发了个问题,发现标题的问题已经有好心人给我回复了,其他的问题大概大家都不会想到要看,所以另开一个说一下!求各种大神拯救一下我这个卡死在这里的新人吧QAQ再不交活领导会手撕实习生的23333唔,是这样的. 最近领导给我的任务是用JMeter给我们的手游服务器端做压力测试,其中注册,登陆和验证都是http协议的,之后的一些类似创建角色的命令都是socket协议的,现在我要完成一个流程就是:注册---->用注册的账号登陆-

谈分布式测试体系构建

自谷歌提出云计算概念之后,大数据领域的发展就逐渐加速日新月异,云计算具体到实例,可以归纳为调度.均衡.容错.监控.运维等一整套操作海量数据的方案.有别于传统小规模或孤立体系产品,云计算生态圈存在错综复杂的系统级别关联,并行其中的不同架构和模块流转于超大规模的分布式软硬体资源中,很难划分出明显的界限.对于这样的产品体系,传统领域的测试方案要么逐渐失效,要么作用域缩减到仅能覆盖体系末端.为了保证大数据平台的可靠性.稳定性和高性能,亟需构建一套与之相匹配的测试体系来衡量产品是否合格. 存在的问题 业界

线程-jmeter压力测试的并发数概念

问题描述 jmeter压力测试的并发数概念 我在学习jmeter压力测试java web程序,现在的要求是"调整并发数,压到程序挂为止",我不知道什么是并发数. jmeter建好线程组后,有两个参数,一个是线程数,一个是循环次数. 我刚开始是把循环次数设置为1,不断提高线程数来进行压力测试的,线程数一直提高到1700才能出现error. 但是有大神跟我说线程数一般都只提高到100,不可能提高到1600. 要是这样的话,我就应该在循环次数上下功夫了,那么我想问这个并发数到底是和哪个有关,

JMeter远程测试,每个实际测试人员都要学习的

详解JMeter远程测试(1) 如果运行JMeter客户端的机器性能不能满足测试需要,那么测试人员可以通过单个JMeter GUI客户端来控制多个远程JMeter服务器,以便对服务器进行压力测试,模拟足够多的并发用户.通过远程运行JMeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力.一个JMeter GUI客户端实例,理论上可以控制任意多的远程JMeter实例,并通过它们收集测试数据,如图11-3所示.这样一来,就有了如下特性: 保存测试采样数据到本地机器.

分布式测试执行

1 相关说明 1.1 背景简介 随着一个产品的自动化工作不断深入,自动化的case积累数量持续增长,绝大部分毫无依赖关系的case由于串行运行,测试执行时间达到小时界别,且不易于优化.另外,ci运行时所需机器资源的抢占互斥,运行机器的不稳定等问题也逐渐扩大. Hadoop分布式测试执行方案正是为了解决以上问题而产生,通过分布式执行,可以达到并行运行,提高执行效率的目的:另外,hadoop提供调度,重试等机制功能,可以提供给用户一个相对透明的计算资源池,减少用户对机器运行环境的依赖. 1.2 分布