性能测试之Jmeter学习(十)

分布式部署(转载)

  一、分布式介绍:

  Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制。

  那么,是如何实现多台负载机同时运行的呢?当然不会多个人坐在多台负载机面前,一喊开始,大家同时启动jmeter。这种方式很笨,也很难达到真正的同步。其实,我们通过单个jmeter 客户端就可以控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。

  

  

  通过远程运行jmeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力,一个jmeter客户端实例,理论上可以控制任意多的远程jmeter实例,并通过他们收集测试数据。这样一样,就有了如下特性:

*   保存测试采样数据到本地机器

*   通过单台机器管理多个jmeter执行引擎。

*   没有必要将测试计划复制到每一台机器,jmeter GUI客户端会将它发往每一台jmeter服务器。

*   每一台jmeter远程服务器都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划。

  在1.4G Hz~3GHz 的CPU 、1GB 内存的 JMeter 客户端上,可以处理线程 100~300。但是Web Service 例外。XML处理是 CPU 运算密集的,会迅速消耗掉所有的CPU 。一般来说,以XML技术为核心的应用系统,其性能将是普通Web 应用的 10%~25% 。另外,如果所有负载由一台机器产生,网卡和交换机端口都可能产生瓶颈,所以一个JMeter 客户端线程数不应超过 100 。

  采用JMeter 远程模式并不会比独立运行相同数目的非GUI 测试更耗费资源。但是,如果使用大量的JMeter 远程服务器,可能会导致客户端过载,或者网络连接发生拥塞。

  

  二、分布式部署操作步骤:

  

(1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 

(2) 运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器192.168.9.99 和192.168.9.130 作为agent)

(3)在controller机器的jmeter的bin目录下,找到jmeter.properties 文件,编辑该文件:

查找:
remote_hosts=127.0.0.1
修改为:
remote_hosts=192.168.9.99:1099,192.168.9.130:1099

  (4)启动controller 机子上的jmeter应用jmeter.bat,选择菜单“运行”--->“远程启动”,来分别启动agent ,也可以直接选择“远程全部启动”来将所有的agent启动。

  其它说明:

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

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

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

  

时间: 2024-10-29 19:07:53

性能测试之Jmeter学习(十)的相关文章

性能测试之Jmeter学习(六)

本节介绍使用BadBoy录制web脚本 Badboy是一款不错web自动化测试工具,利用它来录制脚本,并且录制的脚本可以直接保存为JMeter文件来使用. 下载地址:http://www.badboy.com.au/download/add,国外的网站,打开比较慢或根本打不开,可以使用vpn方式打开. 1.打开badboy工具,在地址栏目中输入被测试项目的地址,如http://www.126.com 注意:badboy正常状态下是录制状态,为红色按钮,如图 录制完成后,点击工具栏旁边黑色按钮,结

性能测试之Jmeter学习(三)

一.Jmeter执行顺序规则: 元件执行顺序的规则很简单,在同一作用域名范围内,测试计划中的元件按照如下顺序执行. (1)配置元件(config elements ) (2)前置处理程序(Per-processors) (3)定时器(timers ) (4)取样器(Sampler) (5)后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空). (6)断言(Assertions)(除非Sampler 得到的返回结果为空). (7)监听器(Listeners)(

性能测试培训:Ajax接口级性能测试之jmeter版

性能测试培训:Ajax接口级性能测试之jmeter版 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest认为工具不是问题,jmeter还是loadrunner都是工具级别的,真的提高性能测试水平,还是需要具备一定架构知识,网络知识,服务器方面的知识,poptest通过大量的实战案例的讲解提高学员的实战经验,尽快上手性能测试.(大家对课程感兴趣,请加qq:908821478) 1.  被测程序环境部署 对于自动化测

微信小程序性能测试之jmeter踩坑秘籍(前言)

最近要做个微信小程序的性能压测,虽然之前只做过web端的,但想一想都是压后端的接口,所以果断答应了下来,之前对jmeter都是小打小闹,所以趁着这次机会好好摆弄摆弄. --------------------------------------------------------------------------------踩坑前总结哈理论,这篇写给自己的----------------------------------------------------------------------

性能测试之JMeter远程模式

事实上,你的JMeter客户端机器是不能表现出完美的压力请求,来模拟足够多的用户或由于网络限制去向服务施加压力,一种解决方法是通过一个JMeter去控制多个/远程JMeter.通过运行JMeter的远程模式,你可以通过多个低配制的电脑复制测试计划用于模拟一个大数据量的压力并发在服务器上.一个JMeter客户端实例可以控制多个远程JMeter实例,并收集所有数据信息.特点如下: · 保存测试样例在本机电脑 · 通过一台机器来管理多台JMeter测试机 · 不需要复制测试计划到每一台JMeter测试

【转】jmeter学习笔记——一种简单的数据库性能测试方法

前提条件:一个数据库:test   数据库下面有一张表:user   表中有两个字段:username.passworld . 要求:往数据库内大批量插入数据,1000/s 其实和之前的方法一样,为了简单,我还是把截图贴出来吧. 1.创建一个测试计划,将我们所使用的数据库驱动包导入. 2.添加一个线程组,并设置我们的虚拟用户数.启动时间.和循环次数 3.创建一个线程,并在线程下面,创建一个JDBC Connection Configuration ,设置相关信息. 4.创建一个JDBC Requ

性能测试之-wrk(转)

性能测试之-wrk(转) 转载地址:http://zjumty.iteye.com/blog/2221040 http://www.cnblogs.com/rainy-shurun/p/5867946.html 测试先行是软件系统质量保证的有效手段. 在单元测试方面, 我们有非常成熟的 xUnit 方案. 在集成测试方面, 我们 selenium 等自动化方案. 在性能测试方面也有很多成熟的工具, 比如 LoadRunner, Jmeter 等. 但是很多工具都是给专门的性能测试人员使用的, 功

软件测试之loadrunner学习笔记-02集合点

loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行随着时间的推移,并不能完全达到同步.这个时候需要手工的方式让用户在同一时间点上进行操作来测试系统并发处理的能力,而集合点函数就能实现这个功能. 可通过将集合点插入到 Vuser 脚本来指定会合位置.在 Vuser 执行脚本并遇到集合点时,脚本将暂停执行,Vuser 将等待 Controller 或控

深度学习十大顶级框架

2015 年结束了,是时候看看 2016 年的技术趋势,尤其是关于深度学习方面.新智元在 2015 年底发过一篇文章<深度学习会让机器学习工程师失业吗?>,引起很大的反响.的确,过去一年的时间里,深度学习正在改变越来越多的人工智能领域.Google DeepMind 工程师 Jack Rae 预测说,过去被视为对于中型到大型数据集来说最佳的预测算法的那些模型(比如说提升决策树(Boosted Decision Trees)和随机森林)将会变得无人问津. 深度学习,或者更宽泛地说——使用联结主义