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的,所以分隔符是'\\'。
代碼解釋
-
初始化JMeter環境:設置JMeter的安裝路徑和配置文件路徑,并加載配置。
-
加載測試計劃:指定JMX文件路徑,將測試計劃加載到JMeter的測試計劃樹中。
-
配置結果收集器:創建結果收集器對象,設置結果輸出文件名,并將其添加到測試計劃樹中。
-
運行測試:配置JMeter引擎,使用測試計劃樹運行測試。
具體來說:
- 首先,代碼設置了JMeter的根目錄和JMX文件的路徑。
- 然后,它加載了JMeter的配置文件,并初始化了JMeter引擎和測試計劃樹。
- 接下來,代碼設置了文件服務器的基礎腳本路徑,并加載了JMX文件到測試計劃樹中。
- 之后,代碼檢查了是否需要創建Summariser對象(用于生成測試摘要)。
- 接著,代碼創建了一個結果收集器,設置了輸出日志的文件名,并將結果收集器添加到了測試計劃樹中。
- 最后,代碼配置了JMeter引擎,并執行了測試。