IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> JMeter 分布式压测 -> 正文阅读

[开发测试]JMeter 分布式压测

一. 背景

在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持
4000并发),单台压测机的配置(CPU和内存)可能无法支持,这时可以使用
Jmeter提供的分布式测试的功能

二. 原理

1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。

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

三. Windows操作

1. 执行机(slave)配置:

1、 slave机上需要安装JMeter并添加环境变量,参照《JMeter下载与安装文档》

2、 修改slave机Jmeter的bin目录下jmeter.properties文件,修改如下两个配置项,比如我这里修改为1099:

   server_port=1099

   server.rmi.localport=1099

3、 启动bin目录下的:jmeter-server.bat
4、多台slave时,重复1~2步骤即可

2. 调度机(master)配置

1、在master机器上找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及端口(端口可自定义),多台slave之间用","隔开,我这配置了2台:

    remote_hosts= 10.203.130.36:1099, 192.168.110.119:1099

2、打开Jmeter,选好脚本及设置运行场景,选择远程全部启动(也可选择远程启动某一台slave)

四. Linux操作

1、 Linux系统中安装JMeter,并配置好JMeter环境变量(参考《JMeter下载和安装》文档)
2、 在slave机上修改jmeter.properties中的端口,参考Windows下修改方法:

[root@gd-largetest-stress-102-23 songy]# cd jmeter3.2/bin/
[root@gd-largetest-stress-102-23 bin]# vi jmeter.properties

比如我修改为1099:

    server_port=1099

 server.rmi.localport=1099

3、 开启执行脚本机器上的server服务,bin/jmeter-server

[root@gd-largetest-stress-102-15 bin]# ./jmeter-server 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
Using local port: 1099
Created remote object: UnicastServerRef [liveRef: [endpoint:[10.98.102.15:1099](local),objID:[-43550fae:15e7a5a6422:-7fff, -7419700032143407872]]]

4、 在master上修改bin/jmeter.properties,添加从机的IP及端口(使用-r启动所有从机)1099是默认的rmi通信端口

remote_hosts=192.168.5.95:1099,10.98.102.15:1099

5、 在控制机执行分布式命令

[root@gd-xwtest-yc-102-19 bin]# jmeter -n -t ../linux.jmx -R 10.98.102.15:1099 -l ../result.jtl//指定从机IP

[root@gd-xwtest-yc-102-19 bin]# ./jmeter -n -t ../linux.jmx -r -l ../linux.jtl//启动所有从机执行脚本

五. 其它说明:

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

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

3、如果在linux下用命令执行分布式测试时要传线程数、执行时间或循环次数等参数时,需使用-G参数,而不是-J,这个是踩坑过来的经验,执行命令如下

./jmeter -n -t ../linux.jmx -r -l ../linux.jtl -Gusers=100 -Gtimes
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:28:21  更:2022-02-19 01:29:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:52:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码