Jmeter 调用Python3脚本

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

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

或https://blog.csdn.net/baidu_24752135/article/details/105364325

 

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)

 

在信息头管理器中引用

 

 

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

 

 
转:https://www.cnblogs.com/liushaopan/articles/15861109.html
posted @ 2022-11-15 16:53  rmticocean  阅读(834)  评论(0)    收藏  举报