我试图在JSR223采样器中传递groovy中的变量。变量在测试计划中定义。基本上,为测试计划中的消息值定义了$ {user_id}和$ {__ time(,curTime)} $ {user_id} 是我从csv文件和 $ {获得的值__time(,curTime)} 是当前时间的函数,以毫秒为单位。 基本上我想要输出中的值为user_id,对应的是时间戳,以毫秒为单位。
例如,如果 $ {user_id} 的值为abcd且 $ {__ time(,curTime)} 的值为1478965236574,那么我期待值为 abcd1478965236574 在JSR223采样器中的变量数据中。我能得到这个价值吗?
答案 0 :(得分:2)
如果要连接2个变量:user_id
和curTime
def value = vars.get("user_id") + vars.get("curTime");
如果要生成新的时间戳“
def value = vars.get("user_id") + System.currentTimeMillis()
vars
是JMeterVariables类实例的简写,它提供对范围内JMeter变量的读/写访问。
请记住,不应将JMeter变量和函数(如${Message}
内嵌到脚本体中)使用vars.get("Message")
,因为内联变量会导致编译缓存失败,因此您将失去主要的Groovy优势。有关更详细的说明和脚本最佳做法,请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!。