分布式性能测试

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版本和插件最好都一致,否则会出一些意外的问题。

 


作者:Glen.He 
出处:http://www.cnblogs.com/puresoul/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/jackferrous/p/6626452.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互斥锁pthread_mutex_t的使用

1. 互斥锁创建 有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下: pthread_mutex_t mutexPTHREAD_MUTEX_INITIALIZER; 在LinuxThreads实现中,pthread_…

无效设备解决办法

touch /etc/ini.d/FirstLoadkill 杀死枪弹柜程序 或重启reboot转载于:https://www.cnblogs.com/yygsj/p/5634384.html

HALCON示例程序measure_grid.hdev使用XLD分割键盘轮廓

HALCON示例程序measure_grid.hdev使用XLD分割键盘轮廓 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () read_image (Image, ‘keypad’) get_image_pointer1 (Image, Pointer, Type, Width, Height) dev_close_window () dev_open_window…

[BZOJ3992]序列统计

DP一下,设$f_{i,j}$表示生成$i$个数且乘积$\%Mj$的方案数,则$f_{i1,l}\sum\limits_{jk\%Ml}[k\in S]f_{i,j}$ 我们很不希望DP式中下标的位置出现乘法,因为这样不好转移,考虑把乘法换成加法 因为模数$M$是质数,所以它有…

socket,TCP/IP的理解(转)

TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准, 从字面意思来看TCP…

最小中间和

题目描述 给定一个正整数序列a1,a2,...,an,不改变序列中的每个元素在序列中的位置,把它们相加,并用括号记每次加法所得的和,称为中间和。编程:找到一种方法,添上n-1对括号,加法运算依括号顺序进…

HALCON示例程序measure_metal_part_extended.hdev金属零件尺寸测量

HALCON示例程序measure_metal_part_extended.hdev金属零件尺寸测量 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () read_image (Image, ‘metal-parts/metal-parts-01’) init_visualization (Image, 3, ‘white’, ‘margin’, Width, …

双目匹配与视差计算

立体匹配主要是通过找出每对图像间的对应关系,根据三角测量原理,得到视差图;在获得了视差信息后,根据投影模型很容易地可以得到原始图像的深度信息和三维信息。立体匹配技术被普遍认为是立体视觉中最困难也是最关键的问题&#xf…

JavaEE 银联支付之网站支付-消费类交易

以银联网站支付 - 消费类交易 为例 0. 大致逻辑 前端request->后台封装参数->后台进行签名->生成跳转页面(包含表单提交内容)->响应前端(将生成的html写到浏览器中完成自动跳转打开银联支付页面) 复制代码1.acp_sdk.p…

react 开发知识准备

react react使用教程 babel babel 可用于ES6转换为ES5,jsx转换为原生js。 ES6 ES6 语法 webpack webpack打包工具,它把不同的、相互依赖的静态资源都视作模块,并且打包成我们想要的静态资源。让代码组织更清晰,一个文件就是一个模…

Linux多线程编程(不限Linux)

——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。 前言 线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、…

概率论与数理统计-ch8-假设检验

1、假设检验 在总体的分布函数未知或只知其形式、不知其参数的情况下,为了推断总体的某些未知特性,提出关于总体的假设,然后根据样本数据对提出的假设做出接受或拒绝的决策。 步骤: 提出原假设--确定建立在样本基础上的检验统计量…

HALCON示例程序measure_metal_part_first_example.hdev通过拟合边缘进行尺寸测量

HALCON示例程序measure_metal_part_first_example.hdev通过拟合边缘进行尺寸测量 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () read_image (Image, ‘metal-parts/metal-parts-01’) get_image_size (Image, Width, Height) dev_close…

简单实现仿某宝地址选择三级联动样式

内容简单介绍实现步骤第一步 找准方向第二步 开干总结还是题外话内容简单介绍 简单看一下须要实现的效果,如图: 实现步骤 第一步 找准方向 事实上就是想好要用recyclerview而不是listview。假设要问我recyclerview是什么的话。。 第二步 开干 首先须要先…

opencv双目测距实现

虽然最近注意力已经不可遏制地被神经科学、大脑记忆机制和各种毕业活动吸引过去了,但是还是觉得有必要把这段时间双目视觉方面的进展总结一下。毕竟从上一篇博文发表之后,很多同仁发E-mail来与我讨论,很多原来的疑团,也在讨论和一…

logback高级特性使用-异步记录日志

注意:该功能需要高版本才能支持,如1.0.11。AsyncAppender,异步记录日志。 工作原理: 当Logging Event进入AsyncAppender后,AsyncAppender会调用appender方法,append方法中在将event填入Buffer(这里选用的数…

Linux下c开发 之 线程通信(转)

1.Linux“线程”进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程…

HDU 1028 Ignatius and the Princess III

//强行递推。 xx[i][j]表示i数中第j个开头的组合种类。 /* 最终结果[i]为 sum of(xx[i][j]) (j from 1 to i); xx[i][j]sum of (xx[i-j][k]) (k from 1 to j); 例如 xx[10][4]xx[6][1]xx[6][2]xx[6][3]xx[6][4]; xx[6][1] 1; 6111111; xx[6][2]3; 6222, 62211, 621111; xx[…

HALCON示例程序measure_metal_part_id.hdev使用xld边缘拟合检测零件加工是否合格

HALCON示例程序measure_metal_part_id.hdev使用xld边缘拟合检测零件加工是否合格 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () Imagefiles : [‘metal-parts/metal-part-model-01’,‘metal-parts/metal-parts-01’,‘metal-parts/meta…

编写批处理文件-------基础

第一、Windows bat 批处理文件 编写 如何编写批处理文件 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。 用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。编写批处理文件非常简单&#xf…