Jmeter 调用Python3脚本

背景:想将Python程序生成的参数直接在Http信息头里进行引用。一开始在网络上查到的方法是JSR223处理器,后来发现JSR223仅支持Python2.7及以下的版本,于是另寻他法,找到了一种用Beanshell调用的方法可以支持Python3,Beanshell本身是Java语法的,但这里只需要复制粘贴别人的代码就行。在自己这里总结一下。

参考:https://www.codenong.com/cs106359053/

 

BeanShell(JAVA)部分

- 添加BeanShell预处理器

 

 

 

- 编辑代码(懂Java的童鞋也可以按照自己需求修改)

 

 

代码部分

import java.io.BufferedReader;
import java.io.InputStreamReader;

// 1. 命令里的路径改成自己脚本的路径
String command = "cmd /c python C://Python//code//1.py  -t  ${encryption_ticket}";

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中引用的变量名
vars.put("TEST1",var); 

 

 

 Python脚本部分

if __name__ == '__main__':
    # 编写需要的程序代码,需要的参数print()输出即可
    str = "Hello,world"
    print(str)

 

在信息头管理器中引用

 

 

在结果树中查看是否引用成功

 

posted @ 2022-02-05 02:15  光头小魔王  阅读(713)  评论(0)    收藏  举报