jmeter分布式(四)

一、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.mzph.cn/web/45332.shtml

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

相关文章

数据库第6次作业

内容 1、创建视图v_emp_dept_id_1,查询销售部门的员工姓名和家庭住址 2、创建视图v_emp_dept,查询销售部门员工姓名和家庭住址及部门名称。 3、创建视图v_dept_emp_count(dept_name,emp_count,avg_salay),统计每个部门人数并计算平均工资。 …

解读网传《深圳IT圈⭕新解读八小时工作制》

网传深圳IT圈的新解读八小时工作制 工作时间安排: 10:00-12:0014:00-18:0019:00-21:00 初看:有惊喜 上午开始时间晚:相对于传统的9点开始,这种安排允许员工有更多的早晨时间,可以用来休息或处理个人事务。下午和晚上分…

typescript新规范及vue3常用的属性解析【2024】

文章目录 如在vue中 使用tyescript来规范定义类型解释一下 < >的意思 定义 了 personList &#xff1a;是个数组 Array 且要告诉里面每一项 结构长什么样 Array<PersonInter>definepropsvue3中的hooks组件父子组件 方法、数据、相互调用 如在vue中 使用tyescript来…

【LSTM和GRU极简,和最新的TT也就是状态】机器学习模型来学习状态

LSTM&#xff08;长短期记忆网络&#xff09;中的关键参数包括输入门、遗忘门、输出门、细胞状态和隐藏状态。以下是如何进行推理计算的示例&#xff1a; LSTM参数和公式 输入门&#xff08;i_t&#xff09;&#xff1a;决定输入的信息量。 遗忘门&#xff08;f_t&#xff0…

【React Native】做了一个简约的雷达图组件

本文目录 【React Native】做了一个简约的雷达图组件获取组件实现思路用法示例简易用法自定义美化 结语 【React Native】做了一个简约的雷达图组件 最近在使用 react-native 中需要绘制雷达图&#xff0c;没有找到合适的小组件&#xff08;大的图表库未直接提供&#xff0c;需…

pico+unity3d运行测试方法

一. 发布并运行程序 这个就很简单&#xff0c;电脑和pico数据库连接、pico打开开发者模式、运行的时候选择设备pico 二. pico串流助手 1.需要先下载pico的软件 PICO Developer Center、并安装串流助手、这种方式的话&#xff0c;安装了向日葵的小伙伴可能有冲突、百度一下解…

c#中的特性

在C#中&#xff0c;特性&#xff08;Attributes&#xff09;是一种向程序元素&#xff08;如类、方法、属性等&#xff09;添加元数据的方式。特性可以用来提供关于程序元素的附加信息&#xff0c;这些信息可以在编译时和运行时被访问。 特性主要有以下几个用途&#xff1a; 提…

手机数据恢复篇:如何从 Android 设备内恢复数据

如何从 Android 内部存储恢复数据&#xff1f; 要从 Android 内部存储恢复已删除的文件&#xff0c;您需要一个 Android 内部存储恢复应用或程序。请继续阅读以获取可靠的 Android 数据恢复软件&#xff0c;并让它帮助您从 Android 手机的内部存储恢复数据。 是否有可能恢复 An…

4-2 权重衰减

前一节我们描述了过拟合的问题&#xff0c;本节我们将介绍一些正则化模型的技术。 我们总是可以通过去收集更多的训练数据来缓解过拟合。 但这可能成本很高&#xff0c;耗时颇多&#xff0c;或者完全超出我们的控制&#xff0c;因而在短期内不可能做到。 假设我们已经拥有尽可能…

图片转文字的软件,分享3种不同的类型的软件!

在信息爆炸的时代&#xff0c;图片作为一种直观、生动的信息载体&#xff0c;已经成为我们日常生活中不可或缺的一部分。然而&#xff0c;有时候我们可能需要将图片中的文字提取出来&#xff0c;以便于编辑、整理或进一步使用。那么&#xff0c;有哪些实用的图片转文字软件可以…

一个引发openssl崩溃问题案例

1 背景 最近用libevent写了一个https代理功能&#xff0c;在调研的时候&#xff0c;遇到了一个项目用到了本地多个openssl库引发的ssl握手崩溃问题。 2 开发环境 项目库版本号依赖项libeventlibevent-2.1.8-stableopenssl 1.1openssl1.0u / 1.1.1w / 3.3.1...... 3 问题现象…

Python酷库之旅-第三方库Pandas(024)

目录 一、用法精讲 61、pandas.to_numeric函数 61-1、语法 61-2、参数 61-3、功能 61-4、返回值 61-5、说明 61-6、用法 61-6-1、数据准备 61-6-2、代码示例 61-6-3、结果输出 62、pandas.to_datetime函数 62-1、语法 62-2、参数 62-3、功能 62-4、返回值 62-…

关于SQLException: Illegal mix of collations (`utf8mb4_general_ci,IMPLICIT`)...错误

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、报错信息三、最后 开篇说明 记录一个查询错误 场景&#xff1a;数据库之间某表复…

旷野之间 16 – AI 代理、AI 代理基础设施、平台和比较

在本文中&#xff0c;我们将研究 AI 代理、AI 代理基础设施、市场上最流行的 AI 代理平台、它们的比较以及 AI 代理的未来 我们将按以下顺序讨论这些主题 1. 关于人工智能代理 2. 人工智能代理在行业中的应用 3. AI代理基础设施 4. 最受欢迎的 AI 代理平台及比较 5.您将如…

【笔记】nginx命令

查看 启动 通过./nginx启动nginx之后 可以在虚拟机中进入/usr/local/nginx/html 去查看cat index.html 也就是此页面的源代码 进入vim /etc/profile 配置完之后保存退出 source /etc/profile 手动重载资源 随后就可以在任意位置重载资源了 nginx -s reload 部署静态资源就把静…

两项国际设计奖,支持双设备—悠律Ringbuds pro开放式蓝牙耳机体验

在音频设备领域&#xff0c;开放式耳机对比入耳式耳机的优势就是既能听到耳机内的声音又能感知环境音&#xff0c;很适合在户外以及办公时使用&#xff0c;今天分享一款新品牌悠律UMELODY——悠律凝声环Ringbuds pro&#xff0c;它采用气传导耳挂式设计&#xff0c;佩戴舒适、安…

【人工智能】 知识表示与推理(八数码 + 传教士与野人渡河)

目录 一、八数码难题 1. 需求分析 2. 数据结构、功能模块设计与说明 2.1 算法思路 2.2 数据结构 3. 核心代码与测试结果说明 3.1 核心代码 3.2 测试结果说明 4. 存在的问题与体会 4.1 存在的问题 4.2 体会 二、传教士与野人渡河 1. 需求分析 2. 数据结构、功能模…

基于EMQX+Flask+InfluxDB+Grafana打造多协议物联网云平台:MQTT/HTTP设备接入与数据可视化流程(附代码示例)

摘要: 本文深入浅出地介绍了物联网、云平台、MQTT、HTTP、数据可视化等核心概念&#xff0c;并结合 EMQX、Flask、InfluxDB、Grafana 等主流工具&#xff0c;手把手教你搭建一个支持多协议的物联网云平台。文章结构清晰&#xff0c;图文并茂&#xff0c;代码翔实易懂&#xff0…

2024-07-14 Unity插件 Odin Inspector1 —— 插件介绍

文章目录 1 介绍2 模块3 学习目的 1 介绍 ​ Odin Inspector 是 Unity 的一个插件&#xff0c;拥有强大、自定义和用户友好的编辑器&#xff0c;而无需编写任何自定义编辑器代码&#xff0c;使得编程过程中的数据可视化更容易实现。 ​ 具体功能包括&#xff1a; 更舒适美观…

软件设计师(中级)备考视频教程

一、视频介绍 本视频主要包括软件设计师系统学习教程&#xff0c;通过学习本视频&#xff0c;可以帮助考生高效且深入地掌握软件设计师资格考试核心知识&#xff0c;全方位覆盖考试要点&#xff0c;从而轻松备战考试。视频不仅涵盖了考试所需的全面知识体系&#xff0c;还通过直…