jmeter執行python腳本的實現示例

概要

本文主要介紹一個通過jmeter執行python腳本的測試場景。主要過程如下:

  • 在jmeter中設置參數;
  • 通過jmeter修改py模板文件,並創建後續需執行的py腳本;
  • 通過jmeter執行py腳本文件,獲得py文件的執行輸出結果,並設置為變量;
  • 使用變量進行後續測試。

提示:以下為本篇文章正文內容,案例僅供參考。

一、環境準備

1. 測試工具

jmeter、python,與版本無關,任意版本均可。

2. 測試資源

py模板文件:
1)自定義需要在py模板文件中修改的參數,比如:我們想在jmeter中修改py腳本中某些變量的初始值,我們可以在采用特殊標記[變量名]的方式標記其為可替換變量;
2)使用print()方法打印輸出目標參數。也可以采用其他方法,比如將多個變量值寫入到csv文件中,後續可以使用csv文件進行參數化。
圖-變量設置:[times]、[modelName]、[modelType]
圖-輸出設置:print(filepath)

在這裡插入圖片描述

二、實現過程

1. 在jmeter中設置參數

如圖,可以選擇添加“前置處理器>>用戶參數”,用於設置相關變量的初始值;

在這裡插入圖片描述

2. 通過jmeter修改py模板

添加“取樣器>>BeanShell取樣器”,編寫讀取文件、寫入文件代碼。主要思路:讀取模板文件內容,替換目標字符後,寫入到新文件中;

// 模板文件位置
String read_path = vars.get("dir") + File.separator + "files\\mkxml\\template_demo.py";
// 輸出文件位置
String write_path = vars.get("dir") + File.separator + "files\\mkxml\\demo.py";

// 讀取模板文件內容
StringBuffer res = new StringBuffer();
String line = null;
File read_file = new File(read_path);
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(read_file), "UTF-8"));
while ((line = reader.readLine()) != null) {
	res.append(line + "\n");
}
reader.close();

// 處理模板內容,替換相關參數
String content = res.toString();
content = content.replace("[times]", vars.get("times"));
content = content.replace("[modelName]", vars.get("modelName"));
content = content.replace("[modelType]", vars.get("modelType"));

// 寫入內容到輸出文件位置
File write_file = new File(write_path);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(write_file), "UTF-8"));
writer.write(content);
writer.flush();
writer.close();

在這裡插入圖片描述

3. 通過jmeter執行py腳本

添加“取樣器>>BeanShell取樣器”,通過cmd命令執行py腳本,並獲得窗口輸出信息;

// 以cmd命令行方式調用py腳本,&&為多組命令連接符
String cmd = "cmd /c cd /d "+ vars.get("dir") + File.separator + "files\\mkxml && python demo.py";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);

pr.waitFor();

BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
StringBuilder response = new StringBuilder();

while((line = br.readLine()) != null) {
	response.append(line);
}

br.close();

// 設置成可在jmeter中使用的變量,filepath為目標XML文件所在位置
vars.put("filepath", response.toString());

在這裡插入圖片描述

4. 使用獲得的輸出信息

後續需要使用輸出變量時,可以通過${變量名}的形式進行參數化。

在這裡插入圖片描述

三、運行調試

添加“後置處理器>>調試後置處理程序”及“監聽器>>察看結果樹”,啟動腳本運行。

1. 運行前

模板文件;

在這裡插入圖片描述

2. 運行後

1)新建的py文件,xml文件;

在這裡插入圖片描述

2)察看結果樹的調試結果;

在這裡插入圖片描述

3)執行py腳本後生成的文件內容。

在這裡插入圖片描述

到此這篇關於jmeter執行python腳本的實現示例的文章就介紹到這瞭,更多相關jmeter執行python腳本內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: