Jmeter二次開發Demo

Jmeter二次開發Demo

前言

在上一集,我們已經完成了JMX腳本的分析,大致了解了JMX腳本的基本元素。

那么在這一集,我們將會介紹一下Jmeter二次開發的Demo。

Demo代碼

那么話不多說,我們就直接上代碼。


public class TestStress {@Testpublic void testJmeterScript()throws Exception{// JMeter路徑String jmeterPath = "G:\\Jmeter\\apache-jmeter-5.6.3";// JMeter根目錄File jmeterHome = new File(jmeterPath);// JMX文件路徑String jmxFilePath = "E:\\XXX\\JMX\\pay_json.jmx";// JMX文件File jmxFile = new File(jmxFilePath);// JMeter配置文件路徑File jmeterProperties = new File(jmeterHome.getPath() + File.separator + "bin" + File.separator + "jmeter.properties");// 設置JMeter根目錄JMeterUtils.setJMeterHome(jmeterHome.getPath());// 加載JMeter配置文件JMeterUtils.loadJMeterProperties(jmeterProperties.getPath());// JMeter標準引擎StandardJMeterEngine jmeter = new StandardJMeterEngine();// 測試計劃樹HashTree testPlanTree = new HashTree();// 設置文件服務器的基礎腳本路徑FileServer.getFileServer().setBaseForScript(jmxFile);// 加載測試計劃樹 jmx腳本testPlanTree = SaveService.loadTree(jmxFile);// 轉換測試計劃樹JMeter.convertSubTree(testPlanTree, false);// Summariser對象Summariser summer = null;// Summariser名稱String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");if (!summariserName.isEmpty()) {// 創建Summariser對象summer = new Summariser(summariserName);}// 結果日志文件名String logFile = "example.csv";// 結果收集器ResultCollector logger = new ResultCollector (summer);logger.setFilename(logFile);// 將結果收集器添加到測試計劃樹上testPlanTree.add(testPlanTree.getArray()[0], logger);// 配置JMeter引擎jmeter.configure(testPlanTree);// 運行JMeter測試jmeter.run();}
}

上面的代碼,有幾個小點是需要各位修改一下的,一個是Jmeter的路徑,另一個是用于使用到這個Demo的JMX腳本的路徑。不過要注意一下路徑的分隔符要結合自身的系統來使用,比如說我的操作系統是Windows的,所以分隔符是'\\'。

代碼解釋

  1. 初始化JMeter環境:設置JMeter的安裝路徑和配置文件路徑,并加載配置。

  2. 加載測試計劃:指定JMX文件路徑,將測試計劃加載到JMeter的測試計劃樹中。

  3. 配置結果收集器:創建結果收集器對象,設置結果輸出文件名,并將其添加到測試計劃樹中。

  4. 運行測試:配置JMeter引擎,使用測試計劃樹運行測試。

具體來說:

  • 首先,代碼設置了JMeter的根目錄和JMX文件的路徑。
  • 然后,它加載了JMeter的配置文件,并初始化了JMeter引擎和測試計劃樹。
  • 接下來,代碼設置了文件服務器的基礎腳本路徑,并加載了JMX文件到測試計劃樹中。
  • 之后,代碼檢查了是否需要創建Summariser對象(用于生成測試摘要)。
  • 接著,代碼創建了一個結果收集器,設置了輸出日志的文件名,并將結果收集器添加到了測試計劃樹中。
  • 最后,代碼配置了JMeter引擎,并執行了測試。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45998.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45998.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45998.shtml

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

相關文章

SpringBoot+HttpClient實現文件上傳下載

服務端:SpringBoot Controller package com.liliwei.controller;import java.io.File; import java.io.FileInputStream; import java.io.IOException;import javax.servlet.http.HttpServletResponse;import org.springframework.http.HttpHeaders; import org.s…

Cesium 判斷位置是否在當前視口范圍內

詳細步驟都在注釋里,不過多贅述了。 /*** @param {Object} position - Cartesian3坐標* @return {Boolean} 是否在視口中*/ function isPositionInViewport(position) {// 獲取當前視口范圍let viewport = viewer.camera.computeViewRectangle();// 2D模式下拾取不到坐標,vi…

類和對象的簡述(c++篇)

開局之前,先來個小插曲,放松一下: 讓我們的熊二來消滅所有bug 各位,在這祝我們: 放松過后,開始步入正軌吧。愛學習的鐵子們: 目錄: 一類的定義: 1.簡述: 2…

【JavaScript 算法】貪心算法:局部最優解的構建

🔥 個人主頁:空白詩 文章目錄 一、貪心算法的基本概念貪心算法的適用場景 二、經典問題及其 JavaScript 實現1. 零錢兌換問題2. 活動選擇問題3. 分配問題 三、貪心算法的應用四、總結 貪心算法(Greedy Algorithm)是一種逐步構建解…

mybatisPlus和mybatis的版本沖突問題、若依換成MP、解決git無法推送、使用若依框架的swagger、以后再遇到團隊項目應該怎么做。

20240716 一. mybatisPlus和mybatis的版本沖突問題1. 使用前的準備2. 我遇到了一個很嚴重的問題。3. 解決問題,好吧也沒解決,發現問題!! 二、該死的git!!!!1. 解決無法在idea中使用g…

【Outlook】從Outlook新版回歸經典版全攻略

引言 在微軟宣布計劃于2024年底淘汰郵件應用(Mail app)之后,許多用戶發現新版Outlook應用(Outlook (new))在他們的Windows 11/10系統上自動啟動。如果您更傾向于使用經典版Outlook(Outlook (classic)&…

webpack優化

優化方向 熱更新 概念 /** hmr: hot module replacement 熱模塊替換 / 模塊熱更新作用: 一個模塊發生改變,只會重新打包這一個模塊(而不是打包所有模塊),極大的提升了構建速度樣式文件: 可以使用hmr功能…

Facebook:數字時代的社交瑰寶

在當今數字化飛速發展的時代,社交媒體已經成為人們日常生活中不可或缺的一部分,而Facebook作為其中的領軍者,不僅連接了全球數十億的用戶,更深刻地改變了人們的社交方式和生活方式。本文將探討Facebook如何成為數字時代的社交瑰寶…

python如何創建SQLite 數據庫連接,如何將數據庫存儲在內存中?

嗨,大家好,我是蘭若姐姐。今天給大家說下如何創建SQLite 數據庫連接,并將數據庫存儲在內存中,這是一種臨時的、私有的數據存儲空間,一般用于以下情形: 什么都不說,先上代碼: import sqlite3創建數據庫連接…

再談有關JVM中的四種引用

1.強引用 強引用就是我們平時使用最多的那種引用,就比如以下的代碼 //創建一個對象 Object obj new Object();//強引用 這個例子就是創建了一個對象并建立了強引用,強引用一般就是默認支持的當內存不足的時候,JVM開始垃圾回收&#xff0c…

防火墻的冗余基礎知識+實驗檢測

將之前先理清需要注意的知識點: 1、注意防火墻冗余時的會話表必須保持一致,這里HRP技術已經做到 2、vrrp是自動開啟搶占的,且是根據優先級進行搶占的 3、免費ARP的作用:告訴交換機的某個IP的mac地址變成了我的這個mac地址 4、HRP …

C++ | Leetcode C++題解之第231題2的冪

題目&#xff1a; 題解&#xff1a; class Solution { private:static constexpr int BIG 1 << 30;public:bool isPowerOfTwo(int n) {return n > 0 && BIG % n 0;} };

強化學習——多臂老虎機問題(MAB)【附python代碼】

文章目錄 一、問題描述1.1 問題定義1.2 形式化描述1.3 累積懊悔1.4 估計期望獎勵 二、解決方法2.1 ?-貪婪算法2.2 上置信界算法2.3 湯普森采樣算法2.4 小結 一、問題描述 1.1 問題定義 有一個用于 K 根拉桿的老虎機&#xff0c;每一根拉桿都對應一個關于獎勵的概率分布 R 。每…

【C++題解】1154. 數組元素的查找

問題&#xff1a;1154. 數組元素的查找 類型&#xff1a;數組找數 題目描述&#xff1a; 給你 m 個整數&#xff0c;查找其中有無值為 n 的數&#xff0c;有則輸出該數第一次出現的位置,沒有則輸出 ?1 。 輸入&#xff1a; 第一行一個整數 m 代表數的個數 ( 0≤m≤100 ) 。…

Qt基礎 | Qt全局定義 | qglobal頭文件中的數據類型、函數、宏定義

文章目錄 一、數據類型定義二、函數三、宏定義 QtGlobal頭文件包含了 Qt 類庫的一些全局定義 &#xff0c;包括基本數據類型、函數和宏&#xff0c;一般的Qt類的頭文件都會包含該文件。 詳細內容可參考&#xff1a;https://doc.qt.io/qt-5/qtglobal.html 一、數據類型定義 為了…

數據可視化在智慧醫療中的重要應用

在現代智慧醫療的推動下&#xff0c;數據可視化技術正日益成為醫療領域的重要工具。通過將復雜的醫療數據轉換為直觀的圖表和圖形&#xff0c;數據可視化不僅提升了醫療服務的效率&#xff0c;還極大地改善了患者的就醫體驗。 在智慧醫療中&#xff0c;數據可視化首先在電子病歷…

客流統計系統優化景區服務流程,增強游客滿意度

在當今旅游業蓬勃發展的時代&#xff0c;景區面臨著越來越多的挑戰和機遇。如何提供更優質、更高效的服務&#xff0c;滿足游客日益增長的需求&#xff0c;成為了景區管理者們關注的焦點。客流統計系統作為一種創新的技術手段&#xff0c;正逐漸成為優化景區服務流程、增強游客…

MySQL主從同步的原理與思考

摘要 分析主從同步出現的原因&#xff0c;MySQL實現主從同步的原理&#xff0c;思考實現原理的局限性和優點 背景 在實際應用中主從同步常用于實現備份、負載均衡和高可用。數據冗余的目的是提高數據的安全性&#xff0c;避免因磁盤損壞導致數據丟失的問題。讀寫分離的目的是…

ubuntu系統Docker常用命令

1.查看docker是否開機啟動 sudo systemctl list-unit-files | grep enable|grep docker 2.設置開機啟動 sudo systemctl enable docker 3.關閉docker開機啟動 sudo systemctl disable docker 4.開啟docker服務 sudo service docker start 5.關閉docker服務 sudo servi…

基于CNN的MINIST手寫數字識別項目代碼以及原理詳解

文章目錄 項目簡介項目下載地址項目開發軟件環境項目開發硬件環境前言一、數據加載的作用二、Pytorch進行數據加載所需工具2.1 Dataset2.2 Dataloader2.3 Torchvision2.4 Torchtext2.5 加載項目需要使用的庫 三、加載MINIST數據集3.1 數據集簡介3.2 數據預處理3.3 加載數據集 四…