日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Jmeter如何使用BeanShell取樣器調用Python腳本_python

作者:Jarthong ? 更新時間: 2022-05-27 編程語言

1、在線程組中按以下方式添加【BeanShell取樣器】:

2、把以下這段代碼放到【BeanShell取樣器】的腳本區域:

?注意點:

  • (1)命令里的Python腳本路徑改成自己腳本的路徑,-t后面是填需要傳入Python腳本的參數,可傳入jmeter的變量,也可以傳多個參數。
  • (2)定義Jmeter中引用的變量名,記得這個變量名,后面jmeter調用時可用到。
import java.io.BufferedReader;
import java.io.InputStreamReader;
?
// 1. 命令里的路徑改成自己腳本的路徑,-t后面是填需要傳入Python腳本的參數,可傳入jmeter的變量。
String command = "cmd /c python E://python_project//Python-Auto//python_jmeter//zbg_password_rsa.py ?-t ${pubKey}";
?
String var;
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
?
pr.waitFor();
?
BufferedReader b = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
StringBuilder response = new StringBuilder();
while ((line = b.readLine()) != null) {
? ? response.append(line);
?
}?
String response_data = response.toString();
?
System.out.println(response_data);
b.close();
?
var = response.toString();
?
// 2. 定義Jmeter中引用的變量名,jmeter后面可以直接使用${變量名}調用變量;
vars.put("password_str",var);
?
//把var打印到jmeter.log的日志中,有需要可以把下方代碼加上
//log.info(var);

如下圖所示:

3、在Python中需要以下代碼去獲取jmeter傳入的值,經過Python處理后,在使用打印功能傳給jmeter(BeanShell取樣器腳本中的Java代碼作用就是接受Python腳本傳過來的值,并轉化為jmeter可直接調用的變量)。

import argparse
# 獲取jmeter傳入的值,然后賦值給變量ticket,變量即可為Python調用
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--ticket", help="這是ticket")
args = parser.parse_args()
ticket = args.ticket
#print('你輸入的值:{}'.format(ticket))
?
# 這是Python腳本處理過程代碼,省略
?
# 最后Python把處理好的值傳給jmeter,就是直接打印即可
print('這里填需要傳給jmeter的值')

原文鏈接:https://blog.csdn.net/jarthong/article/details/123674717

欄目分類
最近更新