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.pswp.cn/web/45332.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45332.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45332.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入了解MySQL中的innodb_lock_wait_timeout

引言 在數據庫管理中,確保數據的一致性和完整性是至關重要的。MySQL的InnoDB存儲引擎通過行級鎖定機制來實現這一點。然而,當多個事務同時操作數據庫時,可能會出現鎖等待的情況。了解并合理配置innodb_lock_wait_timeout參數,對于…

數據庫第6次作業

內容 1、創建視圖v_emp_dept_id_1,查詢銷售部門的員工姓名和家庭住址 2、創建視圖v_emp_dept,查詢銷售部門員工姓名和家庭住址及部門名稱。 3、創建視圖v_dept_emp_count(dept_name,emp_count,avg_salay),統計每個部門人數并計算平均工資。 …

Spring 使用log4j

porn.xml 引入依賴 <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.23.1</version></dependency><dependency><groupId>org.apache.logging.log4j<…

解讀網傳《深圳IT圈?新解讀八小時工作制》

網傳深圳IT圈的新解讀八小時工作制 工作時間安排&#xff1a; 10:00-12:0014:00-18:0019:00-21:00 初看&#xff1a;有驚喜 上午開始時間晚&#xff1a;相對于傳統的9點開始&#xff0c;這種安排允許員工有更多的早晨時間&#xff0c;可以用來休息或處理個人事務。下午和晚上分…

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…

Typescript 合并接口

在TypeScript中&#xff0c;合并接口&#xff08;Interface Merging&#xff09;是一種強大的特性&#xff0c;它允許你擴展現有的接口&#xff0c;無論是通過聲明合并還是在同一個聲明塊中直接擴展。這種特性在基于類的面向對象編程中非常有用&#xff0c;但TypeScript的接口合…

4-2 權重衰減

前一節我們描述了過擬合的問題&#xff0c;本節我們將介紹一些正則化模型的技術。 我們總是可以通過去收集更多的訓練數據來緩解過擬合。 但這可能成本很高&#xff0c;耗時頗多&#xff0c;或者完全超出我們的控制&#xff0c;因而在短期內不可能做到。 假設我們已經擁有盡可能…

圖片轉文字的軟件,分享3種不同的類型的軟件!

在信息爆炸的時代&#xff0c;圖片作為一種直觀、生動的信息載體&#xff0c;已經成為我們日常生活中不可或缺的一部分。然而&#xff0c;有時候我們可能需要將圖片中的文字提取出來&#xff0c;以便于編輯、整理或進一步使用。那么&#xff0c;有哪些實用的圖片轉文字軟件可以…

2718. 查詢后矩陣的和

題目描述&#xff1a; 給你一個整數 n 和一個下標從 0 開始的 二維數組 queries &#xff0c;其中 queries[i] [typei, indexi, vali] 。 一開始&#xff0c;給你一個下標從 0 開始的 n x n 矩陣&#xff0c;所有元素均為 0 。每一個查詢&#xff0c;你需要執行以下操作之一…

Java-數據結構基礎

棧結構 : 先進后出 隊列結構 : 先進先出 數組結構 : 查詢快 , 增刪慢 鏈表結構 : 查詢慢 , 增刪快 二叉樹 二叉樹 : 每個節點最多有兩個子節點 二茬查找樹 : 每個節點的左子節點比當前節點小 , 右子節點比當前節點大 二茬平衡樹 : 在查找樹的基礎上, 每個節點左右子樹的高…

Django ORM中的Q對象

Q 對象在 Django ORM 中用于構建復雜的查詢條件&#xff0c;特別是當你需要使用邏輯運算符&#xff08;如 AND、OR、NOT&#xff09;時。以下是一些使用 Q 對象進行復雜查詢的實際例子。 Q對象使用 模型 假設我們有一個包含員工信息的模型 Employee&#xff1a; from djang…

一個引發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.您將如…