use*_*294 4 python jmeter javabeans beanshell
我是Jmeter的新手.我的HTTP请求采样器调用如下所示
Path= /image/**image_id**/list/
Header = "Key" : "Key_Value"
Run Code Online (Sandbox Code Playgroud)
密钥值是通过调用python脚本生成的,该脚本使用该脚本image_id生成唯一键.
在每个采样器之前,我想使用python脚本生成密钥,python脚本将作为标头传递给下一个HTTP Request采样器.
我知道我必须使用某种预处理器来做到这一点.任何人都可以帮助我使用jmeter中的预处理器.
我相信Beanshell PreProcessor是您正在寻找的.
示例Beanshell代码如下所示:
import java.io.BufferedReader;
import java.io.InputStreamReader;
Runtime r = Runtime.getRuntime();
Process p = r.exec("/usr/bin/python /path/to/your/script.py");
p.waitFor();
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
StringBuilder response = new StringBuilder();
while ((line = b.readLine()) != null) {
response.append(line);
}
b.close();
vars.put("ID",response.toString());
Run Code Online (Sandbox Code Playgroud)
上面的代码将执行Python脚本并将其响应放入ID变量中.
您可以在HTTP请求中将其引用为/ image/$ {ID}/list /
有关使用 Apache JMeter中的Beanshell脚本和一种Beanshell烹饪书的更多信息,请参阅如何使用BeanShell:JMeter最喜欢的内置组件指南.
您还可以将您的请求放在事务控制器下,以从加载报告中排除PreProcessor执行时间.