我正在尝试使用beanshell预处理器在JMeter脚本中进行参数化。我的JMeter脚本结构如下所述。测试计划->线程组->事务控制器->请求。我想知道应该遵循哪个过程来将值动态传递给请求。
带有屏幕截图的描述和示例将更加有用。
提前致谢。
最佳答案
试用以下测试结构:
线程组(所有默认值)1个用户,1秒加速,1个循环)
HTTP请求(有关参数,请参见下文)
Beanshell预处理器作为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
和“参数:”部分中的
100 300
因此,在Beanshell预处理器中,我们定义了
RANDOM_NUMBER
变量值,该值在HTTP Request Sampler中引用。在请求之前执行了预处理器,因此变量被填充。如果添加View Results Tree侦听器,您将看到请求包含100-300范围内随机生成的数字因此,您需要将Beanshell Pre Processor添加为要参数化的请求的子级。
有关Beanshell脚本和小型食谱的更多信息,请参见How to use BeanShell: JMeter's favorite built-in component指南。
关于jmeter - 在JMeter中使用Beanshell预处理程序进行参数化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24982661/