我正在尝试使用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/

10-10 09:55