Jmeter分布式 (三)
一、什么是分布式测试
分布式测试是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享、分散操作、集中管理、协同工作、负载均衡、测试过程监控等目的的计算机网络测试
二、为什么分布式执行?
在工作中使用jmeter高并发压力测试的场景下,单机受限内存、CPU、网络IO,会出现被测服务器压力还没有上去,但是执行机已经由于模拟的压力太大死机了。为了提供更强大的负载能力,使用分布式压测,部署在不同的服务器上,解决高并发的问题!
三、分布式压测原理:
(1)选择其中一台作为Master机(调度机),其他机器作为Slave机(执行机)
(2)执行时,Master机会把脚本发送到每台Slave机上,Slave机拿到脚本后就开始执行,不需要启动GU
(3)执行完成后,Slave机会把结果回传给Master机,Master机会收集所有Slave机的信息,并汇总

比如我在jmeter Master端配置线程数为10,循环次数为100,也就是会对测试服务器发起1000次请求,我有3台Slave机,如果我在Master端选择远程启动压力测试,那么每台Slave都会对测试服务器发起10*100次请求,那么这次压力测试产生的请求就是10*100*3=3000次。
四、分布式配置
(1)前提条件:
Slave机器的jdk版本需要跟Master机器的jdk版本保持一致
Slave机器的Jmeter版本以及插件需要跟Master机器保持一致,操作方法是直接将Master的Jmeter安装目录打包后解压到Slave机器上
Slave机器的网络需要跟Master机器的网络保持在同一个局域网,可以ping通
(2)Master机器配置
在Jmeter的%JMETER_HOME%\bin目录下,使用文本编辑工具打开jmeter.properties配置文件,配置以下参数
remote_hosts=Slave机器IP:端口 #多台Slave机器则用英文逗号隔开)
例如:
remote_hosts=192.168.xx.10:1097,192.168.xx.20:1098
server.rmi.ssl.disable=true
mode=Standard #开启标准模式(可以看到日志记录)
(3)Slave机器配置
在Jmeter的%JMETER_HOME%\bin目录下,使用文本编辑工具打开jmeter.properties配置文件,配置以下参数
server_port=1097
server.rmi.port=1097
server.rmi.ssl.disable=true #去掉认证
(4)启动连接
配置完成,检查防火墙也关闭后,在Slave机器的Jmeter的%JMETER_HOME%\bin目录下,输入cmd进入命令行模式
在Slave命令行下开启Jmeter远程服务:jmeter-server.bat -Djava.rmi.server.hostname=本机IP,

在Master机器上,打开cmd终端命令行,使用“telnet IP 端口”的命令验证是否接通
五、gui分布式压测执行
在Master机器上重新打开Jmeter的GUI界面,点击:运行—远程启动—单台Slave机或者点击"远程启动所有Slave机"!


Slave机器上打印相应的日志,分布式场景执行成功!

在Master机器上查看执行情况及聚合报告

六、no-gui分布式压测执行
-r #启动远程服务器(在remote_hosts中定义)
jmeter -n -r -t 分类页.jmx -l ./jtl/result.jtl -e -o ./reports

-R, #启动这些远程服务器(覆盖remote_hosts)
jmeter -n -R 192.168.xx.xx:1098 -t 线程组.jmx -l ./jtl/result.jtl -e -o ./reports

输出./jtl/result.jtl文件

输出./reports测试报告

#仅执行生成jtl结果
jmeter -n -R 192.168.xx.xx:1098 -t 线程组.jmx -l ./jtl/result.jtl
#根据jtl文件生成html报告
jmeter -g ./jtl/result.jtl -o ./reports
不足之处,请指教,待补充!
Jmeter分布式 (三)的更多相关文章
- jmeter分布式操作-远程启动功能探索
一.背景: 之前在Jmeter插件监控服务器性能一篇中说到,在非GUI环境中监控时为了保存监控数据需要修改jmeter脚本,并且每次通过施压机(远程服务器,非GUI环境)来压测时都要将jmeter脚本 ...
- jmeter分布式测试教程和远程的代理机无法连接网络的问题解决方法
一.Jmeter分布式执行原理: 1.Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent). 2.执行时,Controller会把脚本发送到每台A ...
- 转:Jmeter分布式测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能. 一.Jmeter分 ...
- Jmeter分布式部署测试-----远程连接多台电脑做压力性能测试
在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起J ...
- Windows和Linux的Jmeter分布式集群压力测试
Windows的Jmeter分布式集群压力测试 原文:https://blog.csdn.net/cyjs1988/article/details/80267475 在使用Jmeter进行性能测试时, ...
- Jmeter --- 分布式测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能. 一.Jmeter分 ...
- 【转】Jmeter分布式压力测试
安装 下载地址:http://jmeter.apache.org/download_jmeter.cgi 安装前提(因为jmeter依赖于Java所以必须先配置好java) 下载后解压: tar -x ...
- Jmeter分布式测试实战
一.Jmeter分布式测试基础 1.Jmeter分布式测试原因: 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对负载机的CPU和内存消耗比较大.所以当需要模拟数以万计的并 ...
- 【转载】Jmeter分布式部署测试-----远程连接多台电脑做压力性能测试
在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起J ...
- JMeter分布式测试环境搭建(禁用SSL)
JMeter分布式环境,一台Master,一到多台Slave,Master和Slave可以是同一台机器. 前提条件: 所有机器,包括master和slave的机器: 1.运行相同版本的JMeter 2 ...
随机推荐
- Kubernetes-Pod介绍(四)-Deployment
前言 本篇是Kubernetes第七篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战. Kubernetes系列文章: Kubernetes介绍 Kubernetes环境搭建 Kuberne ...
- LR进行内外网附件上传并发——实践心得
刚开始接触LR的时候,做了一次内外网附件上传的并发测试,比较简单,但当时理解有些欠缺.以下为当时的实践心得: 1.分内外网测试的意义: 内网测试主要看负载压力情况等,外网测试主要考虑网络带宽.网络延时 ...
- web自动化:IE11运行Python+selenium程序
from selenium import webdriver # 运行此脚本前必须按要求修改注册表'''[HKEY_CURRENT_USER\Software\Microsoft\Internet E ...
- 『GoLang』反射
方法和类型的反射 反射是应用程序检查其所拥有的结构,尤其是类型的一种能.每种语言的反射模型都不同,并且有些语言根本不支持反射.Go语言实现了反射,反射机制就是在运行时动态调用对象的方法和属性,即可从运 ...
- [转载]Windows 2008多用户同时远程登陆配置方法
有些朋友需要在在使用Windows 2008远程登录功能时,进行多用户登录,那么就可以采用以下配置方法: 首先要启用远程桌面这一功能:右击"我的电脑"→ 属性 → 远程配置 → 远 ...
- 解决Vue项目打包之后放到nginx下刷新就报错404的问题
最近跟着某机构的教学视频敲了一遍vue项目,但是在windows环境下部署的时候就懵逼了放到nginx下正常跑没问题,但是刷新之后就报404错误 前端项目构建vue 脚手架版本 是@vue/cli 4 ...
- keepalived 安装和配置解析
Keepalived的特性 配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能 稳定性强:keepalived是一个类似于layer3, 4 & 7交换机制的软件,具 ...
- react之组件生命周期
四个阶段 初始化 运行中 销毁 错误处理(16.3以后) 初始化 constructor static getDerivedStateFromProps() componentWillMount() ...
- 七牛云的 python sdk 是如何 批量删除资源的
今天做项目的时候用到七牛云,关于对资源的操作是在后端做的,用的SDK,但是,在网上没找到详细的解析,官方文档也没有太详细的解说,所以无奈只好看下源码 这里做一下简单的记录 from qiniu imp ...
- 云原生的弹性 AI 训练系列之三:借助弹性伸缩的 Jupyter Notebook,大幅提高 GPU 利用率
Jupyter Notebooks 在 Kubernetes 上部署往往需要绑定一张 GPU,而大多数时候 GPU 并没有被使用,因此利用率低下.为了解决这一问题,我们开源了 elastic-jupy ...