JMeter - 在调用每个HTTP请求采样器之前运行python脚本

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中的预处理器.

Dmi*_*i T 5

我相信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执行时间.