Beanshell预处理器在JMeter中的参数化使用

use*_*319 3 jmeter load-testing beanshell parameterization jmeter-plugins

我试图在JMeter脚本中使用beanshell预处理器进行参数化.我的JMeter脚本结构如下所述.测试计划 - >线程组 - >事务控制器 - >请求.我想知道我应该遵循哪个程序来动态地将值传递给请求.

屏幕截图和示例的描述将更有帮助.

提前致谢.

Dmi*_*i T 19

尝试以下测试结构:

  • 线程组(所有默认值)1个用户,1秒加速,1个循环)
    • HTTP请求(参见下面的参数)

http请求详细信息

  • Beanshell Pre Processor 作为HTTP请求的子代,具有以下代码:

    int min = Integer.parseInt(bsh.args[0]); // get first parameter
    int max = Integer.parseInt(bsh.args[1]); // get second parameter
    int random =  min + (int) (Math.random() * ((max - min) + 1)); // calculate random number within parameters range
    vars.put("RANDOM_NUMBER", String.valueOf(random)); // save result into RANDOM_NUMBER variable
    
    Run Code Online (Sandbox Code Playgroud)

    100 300在"参数:部分

Beanshell预处理器

因此,在Beanshell预处理器中,我们定义了RANDOM_NUMBER我们在HTTP Request Sampler中引用的变量值.预处理器请求之前执行,因此变量将被填充.如果添加" 查看结果树"侦听器,您将看到请求包含100-300范围内随机生成的数字

SERP

因此,您需要添加Beanshell预处理器作为您要进行参数化的请求的子项.

有关Beanshell脚本和小食谱的更多信息,请参见如何使用BeanShell:JMeter最喜欢的内置组件指南.