JMeter学习-022-JMeter 分布式测试(性能测试大并发、远程启动解决方案)
在使用 JMeter 进行性能测试时,难免遇到要求并发请求数比较的场景,此时单台测试机的配置(CPU、内存、带宽等)可能无法支持此性能测试场景。因而,此时 JMeter 提供的分布式测试功能就有了用武之地。
下面就以 JMeter 3.0 版本进行实例讲解,敬请参阅!
一、JMeter分布式执行原理
JMeter分布式执行原理如下图所示:
调度机(Controller):主要负责性能测试脚本的分发,及各个执行机(Slave)的测试结果收集汇总,报告产出。
执行机(Slave):主要负责执行性能测试脚本及断言等(命令行模式执行,无界面),并将执行结果反馈给调度机(Controller),若断言执行成功则不返回请求响应数据及详细断言信息。
二、执行机配置(Slave)
1、JDK版本为 1.8.0,配置相应的环境变量,可参阅 JDK环境配置
2、JMeter版本为 3.0,配置相应的环境变量,可参阅 JMeter环境配置
3、配置执行机服务器远程启动端口
修改配置文件:JMETER_HOME/bin/jmeter.properties 中如下信息即可完成配置执行机远程启动端口(默认为 1099)
server_port=1029
server.rmi.localport=1029
4、启动执行机服务器
管理员执行脚本:JMETER_HOME/bin/jmeter-server.bat 或 JMETER_HOME/bin/jmeter-server,启动后命令行页面如下图所示:
从启动命令行窗口可见,配置的远程启动端口已经生效。
三、调度机(Controller)配置
1、添加执行机(Slave)
路径:JMETER_HOME/bin/jmeter.properties,添加如下所示的执行机信息(IP为示例,请配置正确的执行机IP和端口):
remote_hosts=192.168.1.50:1029,192.168.1.51:1029
2、启动调度机
启动后,依次点击【运行/远程启动】,即可查看配置的远程执行机信息,如下图所示:
四、启动单执行机(初步调试)
接第三步,任意启动一个执行机(Slave)查看执行结果,如下图所示:
在执行机服务命令行窗口可见如下输出信息:
若断言执行失败,则在查看结果数中,可看到详细的请求响应数据及断言结果,如下所示:
五、启动全部执行机(性能测试)
1、执行机(Slave)初步调试:
接第三步,点击【运行/远程全部启动】,可通过此步进行初步调试,执行结果如下所示:
2、性能测试参数设置
初步调试通过后,依据测试场景所需进行性能测试设置,如下所示:
3、执行性能测试
远程全部启动后,待测试执行完成,可查看性能测试聚合报告,如下图所示:
总样本数 = 线程数 * 循环次数 * 执行机总数
样本计数逻辑:由 JMeter分布式执行原理可知,执行机(Slave)执行的测试脚本是由调度机(Controller)分发的,故每台执行机执行的测试脚本都是相同的,故而性能测试总样本数 = 测试脚本样本数 * 执行机总数。
为更好的模拟性能并发场景,还需要设置集合点,具体设置方法请参阅 JMeter设置集合点
六、注意事项
1、JMeter版本保持一致
2、JDK版本保持一致,否则可能出现各种其他的问题
七、异常处理
1、若出现如下所示异常信息,请检查远程执行机是否成功启动jmeter-server.bat或信息配置是否正确。
至此,此文顺利完结,希望此文能够给初学 JMeter 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
我本渺小,但山峰,我一次次绝顶!
Copyright @ 范丰平版权所有,如需转载请标明本文原始链接出处,严禁商业用途!
JMeter学习-022-JMeter 分布式测试(性能测试大并发、远程启动解决方案)的更多相关文章
- jmeter命令行运行-分布式测试
上一篇文章我们说到了jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存.cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要对j ...
- Jemter 压测基础(一)——基本概念、JMeter安装使用、分布式测试、导出测试结果、编写测试报告
Jemter 压测基础(一) 1.压力测试的基本概念: 1.吞吐率(Requestspersecond) 服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请 ...
- Jmeter(8)分布式测试
通过Jmeter远程启动功能,把一台windows机器作为控制器,远程控制其他多个Windows或linux压力机,把压力分散到多台执行机器上,从而实现高并发,并在控制机上搜集测试结果 Jmeter分 ...
- 步骤2:JMeter 分布式测试(性能测试大并发、远程启动解决方案)
转载(记录) http://www.cnblogs.com/fengpingfan/p/5583954.html http://www.cnblogs.com/puresoul/p/4844539.h ...
- jmeter(九)分布式测试
Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误.为了让jmeter工具 ...
- JMeter学习笔记--JMeter常用测试元件
JMeter测试计划有一个被称为“函数测试模式”的选项,如果被选择,它会使Jmeter记录来自服务器返回的每个取样的数据.如果你在测试监听器中选择一个文件,这个数据将被写入文件.如果你尝试一个较小的测 ...
- jmeter学习记录--08--第三方测试组件
我们安装的JMeter版本,功能仍然有欠缺,插件是一种补充,官方提供了很多插件. 官网地址:http://www.jmeter-plugins.org/, 里面有很多可以安装到JMeter的插件,基本 ...
- JMeter学习笔记--JMeter监听器
监听器(Listeners)是一种展示采样结果的测试元件,采样结果可以通过树.表格.图片加以展示,或者简单地写入某个结果文件之中. 注:不同的监听器通过不同的方式展示服务器响应信息,但它们都将同样的原 ...
- JMeter学习笔记--JMeter属性和变量
JMeter属性统一定义在jmeter.properties文件中.JMeter属性在测试脚本的任何地方都是可见的(全局),通常被用来定义一些JMeter使用的默认值.如属性remote_hosts定 ...
随机推荐
- C#运算符
运算符 1.算数运算符 赋值运算符 等号在C#中并不是表示相等的意思,而是表示赋值,把等号右边的值赋值给 等号左边的变量 由等号连接的表达式,叫做赋值表达式.我们要求等号两边的数据类型必须一 致. 2 ...
- UVA 11645 Bits(组合数学)
从左往右处理,左半部分记为left, 右半部分记为right,若i,i -1均为1, 贡献为ans += (left + 1) + right * (1ll << (i - 1)); 否则 ...
- 简述Linux命令初使用
.cd 命令 cd 命令经常使用来改变目录 root@test:~# cd /home/user/Desktop root@test:~# cd .. 返回上一级目录 root@test:~# cd ...
- 适配器模式/adapter模式/结构型模式
定义 将类的接口转化为客户端希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作,别名Wrapper(包装器). 适配器模式,最终改变一个已有对象的接口. 使用场景 当有那么个类, ...
- OneThink开发框架
OneThink是一个开源的内容管理框架,基于最新的ThinkPHP3.2版本开发,提供更方便.更安全的WEB应用开发体验,采用了全新的架构设计和命名空间机制,融合了模块化.驱动化和插件化的设计理念于 ...
- linux下 html转pdf
其实很简单的, 在当前文件夹中打开终端, 只需要一个命令就好 wkhtmltopdf test.html test.pdf 这样一个test.html的文件就转为test.pdf 的pdf文件啦!
- (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题
我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...
- python中获取指定目录下所有文件名列表的程序
http://blog.csdn.net/rumswell/article/details/9818001 # -*- coding: utf-8 -*-#~ #------------------- ...
- zookeeper心跳机制流程梳理
zookeeper心跳机制流程梳理 Processor链Chain protected void setupRequestProcessors() { RequestProcessor finalPr ...
- letter upper lower combo
以前同事为了炫耀ruby的简洁,特意出一道题来考小陈: 在写一个爆破密码的字典生成工具,其中有这样一个需求: 输入一个单词:列出这个单词的所有大小写组合,比如ruby Ruby rUby ruBy r ...