【问题标题】:How to get value of variable defined in testplan and from csv file with groovy in jmeter如何获取在测试计划中定义的变量的值,以及在 jmeter 中使用 groovy 的 csv 文件
【发布时间】:2016-11-30 07:15:44
【问题描述】:

我试图在 JSR223 采样器中传递一个 groovy 中的变量。该变量在测试计划中定义。基本上有 ${user_id} 和 ${__time(,curTime)} 为测试计划中的消息值定义 ${user_id} 是我从 csv 文件和 ${ __time(,curTime)} 是当前时间的函数,以毫秒为单位。 基本上我希望输出中的值作为 user_id 与时间戳对应,以毫秒为单位。

例如,如果 ${user_id} 的值为 abcd 并且 ${__time(,curTime)} 的值为 1478965236574 那么,我期望值为 abcd1478965236574在JSR223采样器的变量数据中。我可以得到这个值吗?

【问题讨论】:

    标签: groovy jmeter beanshell


    【解决方案1】:
    1. 如果要连接 2 个变量:user_idcurTime

      def value = vars.get("user_id") + vars.get("curTime");
      
    2. 如果要生成新的时间戳"

      def value = vars.get("user_id") + System.currentTimeMillis()
      

    varsJMeterVariables 类实例的简写,它提供对范围内 JMeter 变量的读/写访问。

    请记住,您不应将 JMeter 变量和函数(如 ${Message})内联到脚本主体中,而应使用 vars.get("Message"),因为内联变量会导致编译缓存失败,因此您失去了 Groovy 的主要优势。请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! 了解更详细的说明和脚本编写最佳实践。

    【讨论】:

    • 谢谢 Dmitri 这就是我要找的。我可以从登录到 jmeter 的 HTTP 请求中获取输出吗?
    • 答案在上面:在 Groovy 中使用 vars.put("encodedData", encodedData) 并在需要时将值引用为 ${encodedData},在您的情况下,在 HTTP 请求采样器中
    • 非常感谢。我得到了解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多