【转】使用Jmeter多台agent做并发测试

在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,这时可以使用Jmeter提供的分布式功能来启动多台电脑来分压测试。

一、Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。

  2、执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。

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

二、代理机(Agent)配置:

1、Agent机上需要安装JDK、Jmeter,并且配置好环境变量。

2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.8.149

3、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,1099是端口号,可以随意自定义。

4、打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。

三、控制机(Controller)配置:

1、Controller机上需要安装JDK、Jmeter,并且配置好环境变量。

2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址

3、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,192.168.8.174:1099,1099是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。

4、打开jmeter-server.bat文件,设置完成了。

开始添加线程组和请求来运行查看结果:

1、打开jmeter.bat文件,添加线程组,编辑线程数,这里设置100个线程数,循环2次,就是一台机器发送100*2=200个请求。

2、添加HTTP请求,这里以访问淘宝为例。

3、添加察看结果数和聚合报告,点击运行,可以选择远程启动或者远程全部启动,如果是点击远程启动,可以选择任意一台电脑来运行,如果是点击远程全部启动就会运行控制机和所有的代理机。

4、这里以点击远程全部启动为例。运行结束后,查看聚合报告,每台电脑设置的线程数为200,这里一共是两台电脑,所以是200*2=400个线程数。

文章系转载,侵权请联系删除

原文地址:https://www.cnblogs.com/xxbktest/p/10729306.html

时间: 2024-08-29 01:27:05

【转】使用Jmeter多台agent做并发测试的相关文章

Jmeter做并发测试(设置集合点)

集合点:让所有请求在不满足条件的时候处于等待状态. 如:我集合点设置为50,那么不满足50个请求的时候,这些请求都会集合在一起,处于等待状态,当达到50的时候,就一起执行.从而达到并发的效果. 那么Jmeter中可以通过同步定时器 Synchronizing Timer 来完成. Number  of Simulated Users to Group by:按组分组的模拟用户数. timeout in milliseconds:Timout的意思是等待请求多久后,不管线程数有没有到达设置的并发数

Jmeter设置集合点(并发测试)

什么是集合点? 让所有请求在不满足条件的时候处于等待状态. 如何实现? 使用jmeter中的同步计时器Synchronizing Timer来实现 集合点的位置 因为集合点是在取样器sampler(例如HTTP访问)之前,所以同一节点下的同步定时器也在取样器Synchronizing Timer之前执行,无论位置在前或后都一样. 一个线程组中存在多个取样器,如果同步计时器和这些取样器都在同一节点下,则同步计时器同时作用于这些取样器. 如果想让定时器单独作用于某一个取样器,那么请在这个取样器的子节

白盒测试中如何实现真正意义上并发测试(Java)

在这个话题开始之前,首先我们来弄清楚为什么要做并发测试? 一般并发测试,是指模拟并发访问,测试多用户并发访问同一个应用.模块.数据时是否产生隐藏的并发问题,如内存泄漏.线程锁.资源争用问题. 站在性能测试的角度,并发测试不是为了获得性能指标,而是为了发现并发引起的问题. 那么并发对应的技术实现到底是怎样的呢? 简单地说,并发是指多个进程或线程在某一时刻同时处理指定的操作,有点类似于性能测试中集合点的概念,讲究同时性. 普及到这里,接下来讨论技术实现: 最近在项目里面发现一些开发人员做动态测试模拟

并发测试概念普及

并发测试分为两种情况: 1.点层面的并发,例如,在中午12点这个时间点,大家同时订午饭 2.线层面的并发,例如,在中午12点到13点这个时间段内,大家可能干不同的事情,但同时都对服务器产生压力. 并发测试不等于性能测试 并发测试不仅存在于性能测试中,希望测试时在考虑是否要做并发测试时,不单单局限于考虑性能需求的角度. 并发测试的分类 并发测试不仅仅是性能测试,它存在于各个测试阶段中,并且测试目的各不相同. (1)对于功能并发测试,要先考虑测试单业务功能场景的并发测试,再进行混合业务功能场景的并发

如何用Jmeter做压力测试 --- 转

Jmeter是一个性能测试工具,同loadrunner类似,他功能较多,我们常用的功能是用jmeter模拟多浏览器对网站做压力测试.    下载jmeter地址 :http://jakarta.apache.org/我们一般的网站,在进入业务功能前先需登录,然后才能访问业务功能.下面介绍如何用jmeter登录系统再对主业务做压力测试.1 运行jmeter    2 左边树将出现测试计划.工作台两根节点.3 选择测试计划,按右键->添加->threads(users)线程组    线程组能设置以

(转)学习使用Jmeter做压力测试(三)--数据库测试

数据库测试 JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本. 根据脚本,JMeter可通过线程组来模拟真实用户对Web服务器做压力测试.本文描述使用JMeter进行数据库测试的过程.创建测试计划,模拟 并发用户发送SQL请求到数据库.测试数据库. 性能测试的目标是找到系统的性能瓶颈.本文将通过构造测试场景,完成对数据库的测试. 场景: 1.单用户: a.SQL语句优化:    b.数据库约束检查:   c.分页查询

【转】学习使用Jmeter做压力测试(三)--数据库测试

JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本.根据脚本,JMeter可通过线程组来模拟真实用户对Web服务器做压力测试.本文描述使用JMeter进行数据库测试的过程.创建测试计划,模拟并发用户发送SQL请求到数据库.测试数据库. 性能测试的目标是找到系统的性能瓶颈.本文将通过构造测试场景,完成对数据库的测试. 场景: 1.单用户: a.SQL语句优化:    b.数据库约束检查:   c.分页查询: 2.并发用户

Jmeter对HTTP请求压力测试、并发测试

最近公司需要开发一个简单的报名系统,供外网用户提供报名服务,由于我们公司是个初创的微型公司,开发人员都是刚毕业不久,开发经验相当缺乏. 对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomcat 7.0 Jdk:7.0 CPU:8核 2.9GHz两个 内存:16G 报名应用系统:只需要向外提供一个报名和找回报名号的接口. 我们需要:测试服务器能同时承受多

Jmeter + Badboy进行脚本录制 对 Webtours进行多用户并发测试

我们这里使用Loadrunner自在的Webtours订票系统,进行脚本录制. 第一步:录制脚本 1.打开Badboy,输入Webtours地址,然后访问,使用默认的用户名和密码完成一次购票流程!(这里我是把Webtours安装在了我的Windows本机上面的,所以显示启动了Webtous的服务!) 启动Webtours服务: 打开Badboy,输入地址,访问:(启动Badboy以后,会看到左上角默认recording状态,是默认开启脚本录制的,所以直接访问就好.左侧Script一栏就是我们要录