首页 > 解决方案 > 无法在另一个请求中使用 Beanshell 预处理器变量

问题描述

无法在 HTTP 采样器或另一个 HTTP 请求中使用 Bean Shell Pre-Processor 变量。

Thread Group

Random variable - Id

HTTP sampler (XML body - <id> ${var1}</id>)

   BeanShell Pre Processor


     vars.put("RANDOM_NUMBER", "T${Id}E${Id}");

     var var1 = vars.get("RANDOM_NUMBER");

     log.info("var1 value is " + var1);

HTTP Request (https://${var1})

在日志中,可以打印出值var1 value is T20E33。

但是,当尝试在同一个 HTTP 采样器或另一个 HTTP 请求中引用该变量时,该值不会被替换。

参考链接

甚至尝试在请求中直接使用 RANDOM_NUMBER 作为 ${RANDOM_NUMBER} ,在这种情况下也不会替换该值。它是 ${RANDOM_NUMBER}。

标签: jmeterbeanshell

解决方案


使用vars.get代替${}和连接值

vars.put("RANDOM_NUMBER", "T" + vars.get("Id") + "E" + vars.get("Id"));

推荐阅读