Jmeter(十四)Jmeter分布式部署测试

server/2024/10/22 7:29:22/

单个接口测试,我们使用谷歌的插件postman

多个接口测试,我们使用Jmeter进行测试

一、使用工具测试

1、使用Jmeter对接口测试

首先我们说一下为什么用Posman测试后我们还要用Jmeter做接口测试,在用posman测试时候会发现的是一个接口一个接口的测试,我们每次测试成功后的数据,在工具中是无法保存的,再次测试的时候我们还要重新输入测试的数据,当我们测试一个接口的时候可能感觉不明显,但是当你测试几十个接口的时候,你就会发现使用Jmeter的好处。

二、使用Jmeter接口测试

1、首先邮件添加一个线程组,然后我们重命名接口测试

2、在线程组上添加一个Http默认请求,并配置服务器的IP地址端口等信息

3、在线程组中添加一个HTTP请求,这里我们重命名“增加信用卡账户信息接口”

4、配置接口请求信息,这配置示例如下,HTTP请求名称可以按需求命名:

注:由于Jmeter请求线程组内的请求时从第一个开始执行,所以我们将需要最先执行的请求放在前面

5、在线程组上添加监听器,察看结果树和聚合报告

  1. 添加Sumarry Report

8.点击启动,运行结束后查看,结果树和聚合报告

三、nmon使用,监控服务器(参考nmon使用文档)

四、Jmeter分布式部署测试

使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,这时可以使用Jmeter提供的分布式功能来启动多台电脑来分压测试。

一、Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。

  2、执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。

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

二、代理机(Agent)配置:

1、Agent机上需要安装JDK、Jmeter,并且配置好环境变量。

2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.8.149

3、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,1099是端口号,可以随意自定义。

4、打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。

三、控制机(Controller)配置:

1、Controller机上需要安装JDK、Jmeter,并且配置好环境变量。

2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.8.174

3、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,192.168.8.174:1099,1099是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。

4、打开jmeter-server.bat文件,设置完成了。

 

四、开始添加线程组和请求来运行查看结果:

1、打开jmeter.bat文件,添加线程组,编辑线程数,这里设置100个线程数,循环2次,就是一台机器发送100*2=200个请求。

2、添加察看结果数和聚合报告,点击运行,可以选择远程启动或者远程全部启动,如果是点击远程启动,可以选择任意一台电脑来运行,如果是点击远程全部启动就会运行控制机和所有的代理机。

3、这里以点击远程启动为例。运行结束后,查看聚合报告,每台电脑设置的线程数为20,这里一共是两台电脑,所以是200*1=20个线程数。

jmeter 分布式压力机(多网卡)----处理Connection refused

1,问题现象:

性能测试时,使用的服务器配置了双网卡,windows客户机配置了四网卡,坑爹的配置,内外网的隔离,导致在使用jmeter进行分布式测试的时候总是连接失败。

2,原因分析:

Jmeter采用了rmi进行远程调用,在开启RMI服务时,如果服务端有多个网卡,它只是使用其中任意一个网卡,默认情况下,导致jmeter的controller机器和agent机器不在同一个网段内,无法互通,导致失败

3,解决方法:

我们要在多网卡的服务器上开启RMI服务的话必须指定IP,使他们能够在同一个网段内。

需要以下几步(假定所有机器都在10.120.11.*网段,agent服务器为linux,controller服务器为windows):

a、 修改agent服务器,指定agent机器的IP

修改jmeter-server文件

# vi jmeter-server

修改RMI_HOST_DEF=-Djava.rmi.server.hostname=10.120.11.82

b、 修改server服务器,指定server机器的IP

修改jmeter.bat文件

新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214

修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

修改完成后,重新启动即可

注意:需要关闭代理机和控制机的防火墙

   这是我整理的《2024最新jmeter接口测试和jmeter接口自动化测试全套教程附带性能测试》,以及配套的接口文档/项目实战【网盘资源】,需要的朋友可以下方视频的置顶评论获取。肯定会给你带来帮助和方向。

b站最新最全的jmeter接口测试和jmeter接口自动化测试,jmeter性能测试保姆级全套教程!


http://www.ppmy.cn/server/110314.html

相关文章

mysql查询慢除了索引问题还会是因为什么?

问题 作为一个程序员SQL查询慢的问题在工作和面试中都是会经常遇到的问题, 一般情况下我们都会联想到索引问题, 那么除了索引问题还有什么其他的场景会导致SQL查询慢呢? MySQL执行查询逻辑 例如我们使用可视化工具执行这样一条SQL: select * from user_info where age 10;…

EtherCAT总线

EtherCAT(Ethernet for Control Automation Technology)是一种基于以太网技术的实时工业以太网通信协议,由德国倍福(Beckhoff)公司于2003年推出。它广泛应用于工业自动化领域,特别是在运动控制、机器人、CN…

大数据测试怎么做,数据应用测试、数据平台测试、数据仓库测试

本期内容由中通科技高级质量工程师龙渊在公益讲座中分享,他从大数据测试整体介绍、数据应用测试、数据平台测试以及数据仓库测试等方面,与大家共同探讨了大数据测试的方法实施与落地。 以下是讲座正文: 今天我们分享的内容主要从大数据简介…

为什么操作内存比操作硬盘快

操作内存比操作硬盘快的原因主要与它们的工作原理和技术特性有关。以下是几个关键点解释了为什么内存访问通常比硬盘访问要快得多: 1. 存储介质的不同 内存(RAM):通常使用半导体技术,例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。这些技术允许数据在电子…

c++模拟实现数据结构之vector篇

那么本篇文章是带大家一起实现一下数据结构vector,那么我们现在就进入正题。 目录 接口介绍部分 增加 尾插 指定插入与头插 删除 尾删 指定位置删除 主要代码逻辑 增加 尾插 指定插入与头插 删除 尾删 指定位置删除 一些其他接口的代码逻辑 模拟实现…

【JVM】垃圾收集器与GC日志(二)

垃圾收集器与GC日志 ZGC收集器(Z Garbage Collector,全并发、超低延迟 10ms) ZGC是一款JDK11中新加入的具有实验性质的低延迟垃圾收集器,ZGC可以说源自于Azul System公司开发的C4(Concurrent Continuously Compacting Collector)收集器 参考文章:http…

计算机毕设推荐-基于python的超市数据处理可视化分析

💖🔥作者主页:毕设木哥 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 实战项目 文章目录 实战项目 一、基于python的超市数据处理可…

学习大数据DAY43 Sqoop 安装,配置环境和使用

目录 sqoop 安装 配置 mysql sqoop 安装 sqoop 指令集 sqoop 使用 sqoop 创建 hive 表 sqoop 全量导入表 sqoop 增量导入表 sqoop 全量导出表 sqoop 分区表导入表 sqoop 分区表导出表 上机练习 sqoop 安装 配置 mysql create database test DEFAULT CHARACTER S…