jmeter分布式(四)

news2024/9/9 4:32:00

一、gui

jmeter的gui主要用来调试脚本

1、先gui创建脚本

先做一个脚本
演示:如何做混合场景的脚本?
用211的业务比例

①启动数据库服务

数据库服务:包括mysql、redis
mysql端口默认3306

netstat -lntp | grep 3306

处于监听状态,6379是redis的默认端口

netstat -lntp | grep 6379

项目服务端口18089

netstat -lntp | grep 18089

②访问接口文档swagger

211可以转换出两个压测的业务

一个是注册,一个是注册登录添加商品
两个分别是50%

③添加线程组

jmeter—添加线程组–添加–线程–用户–线程组

转换出两个压测业务

④添加吞吐量控制器

jmeter—添加-逻辑控制器–吞吐量控制器

转换出两个压测业务.
第一个压测业务是包括注册、登录、添加商品
第二个压测时业务是注册

在这里插入图片描述

各自50%
在这里插入图片描述

⑤添加取样器http请求

jmeter—添加-取样器–http请求
转换出两个压测业务
在这里插入图片描述

第一个压测业务是包括注册、登录、添加商品

在这里插入图片描述

在这里插入图片描述

第二个业务是注册

根据注册swagger、来写,入参
在这里插入图片描述
一般插入id可以不用填写
addtime也可以不用填写
复制粘贴入参数据到jmeter中
在这里插入图片描述

路径根据url
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

⑥添加http信息头管理器、

都是传json
在这里插入图片描述

在这里插入图片描述

⑦添加http请求默认值

根据接口文档填写ip和端口
在这里插入图片描述
在这里插入图片描述

⑧添加监听器,查看结果树

在这里插入图片描述

⑨添加断言

断言最好都添加上

在这里插入图片描述在这里插入图片描述

二、非gui

-n非gui模式执行jmeter
-t执行测试文件所在的位置,指定要运行jmeter的脚本,不在当前路径,需要将完整路径写出
-l指定生成的结果文件,即就是jtl文件
-e测试结束后,生成测试报告
-o指定测试报告html的存放位置
-r远程启动

1.单机压力机

①申请压力机

linux压力机上安装jdk、jmeter
在usr/local下安装
直接将window上的jmeter上传到linux压力机上,因为调试脚本涉及到的插件也可用上
在这里插入图片描述

②脚本上传到压力机

注:如果脚本涉及到csv参数文件,需要将csv’参数文件上传至linux下jmeter的bin目录下
上传前需要将聚合报告,监听器禁用

5个线程,每30s加一个,即就是150

持续时间需要大于Rang up时间150,再运行50秒,就设置200
在这里插入图片描述

jmeter上传成功后验证一下jmeter版本、是否可用

在这里插入图片描述

③初始化

有两个地方
第一个,存放测试脚本的路径需要创建一个存放html报告的目录

在这里插入图片描述
在运行脚本之前,res目录下必须为空
第二,再不考虑存量数据的情况下,将数据库表中的数据清理
在这里插入图片描述

④执行脚本

在这里插入图片描述

⑤查看结果

结果
在13s内完成548次请求

在这里插入图片描述
在这里插入图片描述

打开聚合报告
ko失败的请求数量

在这里插入图片描述
resopntime响应时间
在这里插入图片描述

tps

在这里插入图片描述

怎么查看jtl文件?
jtl可以在任意监听器打开,如查看结果树、聚合报告、tps、响应时间。
如在聚合报告中打开,点击浏览
在这里插入图片描述

在这里插入图片描述
如tps、响应时间
先看tps
添加tps
点击浏览

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

响应时间在这里插入图片描述

在这里插入图片描述

2.分布式

有的时候一个压力机达不到目标,就需要用到分布式
毕竟单机资源有限,比较难以支持较大的并发,单机的压力机也是有瓶颈

2.1分布式原理

官网:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

一台服务机作为控制机
其余机器都是作为负载机
targe请求的服务
控制器通过发送信号远程控制负载机的启动和停止,同时收集负载机数据及汇总
负载机主要是启动线程来访问服务器,及被压测服务器target
一般在worker一般是启动jmeter-server控制机远程控制负载机,负载机启动线程请求target获取数据后回传给控制机

分布式时脚本放在哪里?
一个controller多个worker
执行非gui时,脚本传到服务器上,现在是分布式,脚本应该传到哪里?
会将脚本传到controller控制机上,执行时会把脚本发到每个负载机即每个worker,负载获取到脚本后开始执行脚本,执行完后将数据传给控制机进行汇总。

2.2分布式压测注意事项

(https://img-blog.csdnimg.cn/e3de7b8b65a1447db3bc3618876f62d3.png)
防火墙需要进行关闭,防火墙若不关闭,端口需要打开。
所有的客户端要在同一子网上。
确保jmeter可以访问server
确保jmeter与java版本一样
禁用ssl

2.3环境准备

需要3个虚拟机
用 181做Controller(控制机)
用182,183做Worker (负载机)
同时这三个虚拟机都要安装jdk,jmeter
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看jdk版本
在这里插入图片描述
三台虚拟机安装jmeter
本机的jmeter传到虚拟机的usr/local目录下
上传完后查看jmeter版本
在这里插入图片描述

2.4 分布式配置

①Worker

182、182
先备份配置文件jmeter.properties
在这里插入图片描述

server_port可以修改,也可以不修改默认为1099
在这里插入图片描述

禁用ssl
server.rmi.ssl.disable=false,将false改为true
在这里插入图片描述

启动jemter
./jmeter-server
在这里插入图片描述
在182上看端口是否处于监听状态

在这里插入图片描述

验证
控制机telnet负载机,看端口通不通
在这里插入图片描述
在这里插入图片描述

②Controller

配置控制机前先在window上的jmeter上进行调试
win:用于调试
先备份配置文件jmeter.properties
在这里插入图片描述
默认是本机作为负载机
现在的负载机是远程负载机,将remote_hosts=127.0.0.1改成remote_hosts=192.168.117.182:1099
这里必须写远程负载机的ip和端口,多个就以逗号分隔
在这里插入图片描述
在这里插入图片描述
禁用ssl
将server.rmi.ssl.disable=false改成server.rmi.ssl.disable=true
在这里插入图片描述

先通过本机调试一下
jmeter重启一下,重新读取配置文件
在这里插入图片描述
在window上调试完后就去linux下进行配置

181上进行配置
先备份配置文件jmeter.properties

在这里插入图片描述

现在的负载机是远程负载机,将remote_hosts=127.0.0.1改成remote_hosts=192.168.117.182:1099
这里必须写远程负载机的ip和端口,多个就以逗号分隔

在这里插入图片描述

在这里插入图片描述

server.rmi.ssl.disable=false
server.rmi.ssl.disable=false改为server.rmi.ssl.disable=true
在这里插入图片描述
脚本传到控制机上,会自动将脚本分发到各个负载机上。
单独的测试单场景登录
在这里插入图片描述
上传完脚本、执行脚本
通过远程负载去进行执行

/usr/local/apache-jmeter-5.1.1/bin/jmeter -n -r -t test.jmx

在这里插入图片描述

每个work负载机(压力机)5个线程,到总的控制机汇总10个线程
在这里插入图片描述

环境准备
两个虚拟机。1个master,两个slave,Windows本机作为1个master,slave就用虚拟机。
原理:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

出现的问题:
java.rmi.RemoteException: Cannot start. localhost.localdomain is a loopback address

Created remote object: UnicastServerRef2 [liveRef: [endpoint:127.0.0.1:43474,objID:[-5a8dd143:17e2852fe88:-7fff, 3673082414768940798]]]
Server failed to start: java.rmi.RemoteException: Cannot start. localhost.localdomain is a loopback address.
An error occurred: Cannot start. localhost.localdomain is a loopback address.
在这里插入图片描述
异常信息:服务器启动异常:java远程方法调用抛出异常:无法启动服务。localhost.localdomain是一个本地环回地址

通过hostname命令获取到的主机名是localhost
通过命令cat /etc/hosts查看hosts配置,localhost localhost.localdomain localhost4…指向的是127.0.0.1
在这里插入图片描述
解决方法:
指定远程服务器主机的IP地址(rmi.server.hostname)
通过终端命令指定来启动
./jmeter-server -Djava.rmi.server.hostname=192.168.2.2
在这里插入图片描述在这里插入图片描述

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

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

相关文章

LeetCode 88.合并两个有序数组 C写法

LeetCode 88.合并两个有序数组 C写法 思路: ​ 由题nums1的长度为mn,则我们不需要开辟新的数组去存储元素。题目要求要有序合并,于是可以判断哪边数更大,将更大的数尾插在nums1中。 ​ 定义三个变量来控制下标,end1控…

Linux--线程ID封装管理原生线程

目录 1.线程的tid(本质是线程属性集合的起始虚拟地址) 1.1pthread库中线程的tid是什么? 1.2理解库 1.3phtread库中做了什么? 1.4线程的tid,和内核中的lwp 1.5线程的局部存储 2.封装管理原生线程库 1.线程的tid…

四川赤橙宏海商务信息咨询有限公司抖音电商服务靠谱吗?

在数字化浪潮席卷全球的今天,电商行业蓬勃发展,各种新兴电商平台层出不穷。其中,抖音电商以其独特的社交属性和庞大的用户基础,迅速崛起为行业新星。四川赤橙宏海商务信息咨询有限公司,作为专注于抖音电商服务的佼佼者…

自动编码器(Autoencoders)

在“深度学习”系列中,我们不会看到如何使用深度学习来解决端到端的复杂问题,就像我们在《A.I. Odyssey》中所做的那样。我们更愿意看看不同的技术,以及一些示例和应用程序。 1、引言 ① 什么是自动编码器(AutoEncoder&#xff…

【js/ts】js/ts高精度加减乘除函数

加法 /*** 高精度加法函数,处理字符串或数字输入,去除尾部多余的零* param {string|number} a - 被加数* param {string|number} b - 加数* returns {string} - 计算结果,去除尾部多余的零* throws {Error} - 如果输入不是有效的数字&#x…

油罐车的罐体结构介绍

油罐车的罐体一般用优质低碳钢板制成,罐内被隔板分为前、后两部分,相互隔离。每个舱内部均配备一道防波板,以加强罐体的稳定性并减缓行驶中油料对罐体的冲击。其车身由车架、车厢等组成,车架是整个油罐车的骨架,承载着…

项目收获总结--本地缓存方案选型及使用缓存的坑

本地缓存方案选型及使用缓存的坑 一、摘要二、本地缓存三、本地缓存实现方案3.1 自己编程实现一个缓存3.2 基于 Guava Cache 实现本地缓存3.3 基于 Caffeine 实现本地缓存3.4 基于 Encache 实现本地缓存3.5 小结 四、使用缓存的坑4.1 缓存穿透4.2 缓存击穿4.3 缓存雪崩4.4 数据…

浏览器输入URL后的过程

总体流程: 1. 用户输入URL并按下回车 当用户在浏览器的地址栏中输入一个 URL 并按下回车,浏览器开始解析用户输入并判断这是一个合法的 URL。 2. DNS 解析 缓存查找:浏览器首先查看本地 DNS 缓存中是否有对应的 IP,如果有则直接…

分布式系统—存储ceph部署

目录 一、存储概述 1 单机存储设备 2 单机存储的问题 3 商业存储解决方案 4 分布式存储 二、ceph概述 1 ceph优点 2 ceph架构 3 ceph核心组件 4 OSD存储后端 5 ceph数据存储过程 6 ceph版本发行生命周期 7 ceph集群部署 三、基于 ceph-deploy 部署 Ceph 集群 1 …

多位冒充者曝光!全域外卖官方到底是谁?

当前,全域外卖的热度持续攀升,不少创业者在寻找入局途径的同时,也开始打听与全域外卖官方有关的各种信息。其中,以全域外卖官方是谁为代表的身份类信息更是成为了多个创业者群内的热议问题。 而就目前的讨论情况来看,虽…

hyperworks软件许可优化解决方案

Hyperworks软件介绍 Altair 仿真驱动设计改变了产品开发,使工程师能够减少设计迭代和原型测试。提升科学计算能力扩大了应用分析的机会,使大型设计研究能够在限定的项目时间完成。现在,人工智能在工程领域的应用再次改变了产品开发。基于物理…

晋升业内新宠儿,MoE模型给了AI行业两条关键出路

文 | 智能相对论 作者 | 陈泊丞 今年以来,MoE模型成了AI行业的新宠儿。 一方面,越来越多的厂商在自家的闭源模型上采用了MoE架构。在海外,OpenAI的GPT-4、谷歌的Gemini、Mistral AI的Mistral、xAI的Grok-1等主流大模型都采用了MoE架构。 …

回收站清空了怎么恢复回来?8个数据恢复方法汇总分享!

在日常工作中,我们常常会遇到一个令人头痛的问题:回收站清空了怎么恢复回来?这种情况其实比想象中更常见。有时在整理桌面时可能会不小心彻底清理文件,或者误开启了回收站的自动清理功能,甚至可能因为病毒或bug而意外丢…

dxf数据结构

DXF(Drawing Exchange Format,绘图交换格式)是Autodesk公司开发的一种CAD(计算机辅助设计)文件格式,用于实现AutoCAD与其他软件之间的CAD数据交换。DXF格式文件是一种开放的矢量数据格式,具有多…

34 超级数据查看器 关联图片

超级数据查看器app(excel工具,数据库软件,表格app) 关联图片讲解 点击 打开该讲的视频 点击访问app下载页面 豌豆荚 下载地址 大家好,今天我们讲一下超级数据查看器的关联图片功能 这个功能能让表中的每一条信息&…

【区块链 + 智慧政务】城市大脑数据监管平台 | FISCO BCOS应用案例

为了实现城市的智能化管理和服务,智慧城市建设需要将大量的公共数据和社会数据汇集到城市大脑数据中台。 通过汇聚各种类型的数据,城市管理者可以实时了解城市的运行状态和居民的需求,从而更好地进行城市规划、 资源分配和公共服务的提供。 …

Figma中文网?比Figma更懂你的神秘网站!

Figma奠定了在线UI设计工具的基本形式,许多国内设计师都在使用Figma。在本文中,我们将解密国内大型设计师使用的Figma灵魂合作伙伴,被称为Figma中文网络的即时设计资源社区。Figma中文网络UI设计工具的魅力是什么?让我们一起看看吧…

uniapp小程序上传文件webapi后端项目asp.net

需求 小程序需要上传用户相册图片或拍摄的照片到后端服务器 uniapp官方处理小程序文件方法 选择文件方法:uni.chooseMedia uni-app官网uni-app,uniCloud,serverless,uni.chooseVideo(OBJECT),chooseVideo HarmonyOS 兼容性,uni.chooseMedia(OBJECT),uni.saveVid…

EasyExcel批量读取Excel文件数据导入到MySQL表中

1、EasyExcel简介 官网&#xff1a;EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 2、代码实战 首先引入jar包 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</v…