【问题标题】:JMeter: While condition with property valueJMeter:具有属性值的条件
【发布时间】:2020-07-01 19:57:56
【问题描述】:

我目前在 JMeter 中遇到了 While Controller 的问题 我有一个 While 控制器,里面有很多步骤,最后一步有一个 BeanShell 断言,类似这样

${__setProperty(sessionUID_global,${sessionUID})};

我正在尝试为 While 控制器设置一个条件,如下所示:

${__javaScript(vars.get("sessionUID_global") == null)}

但是,它不起作用 当 sessionUID_global 有值时,谁能帮我停止 while 控制器的条件?

谢谢

【问题讨论】:

    标签: java testing jmeter


    【解决方案1】:

    你需要改变这个:

    ${__javaScript(vars.get("sessionUID_global") == null)}
    

    到这里:

    ${__javaScript(props.get("sessionUID_global") == null)}
    

    展望未来:

    1. 考虑使用以下代码从 Beanshell 断言切换到 JSR223 Assertion

      props.put('sessionUID_global', vars.get('sessionUID'))
      
    2. 考虑将 While Controller 的条件迁移到 __groovy() function,例如:

      ${__groovy(props.get("sessionUID_global") == null)}
      

    作为starting from JMeter 3.1 you should be using JSR223 Test Elements and __groovy() function 用于任何形式的脚本

    【讨论】:

    • ${__javaScript(props.get("sessionUID_global") == null)} 给了我错误的信息。我会尝试重新启动以检查发生了什么。
    • 它有效,看起来该属性仍在 JMeter 的内存中。谢谢你:)
    【解决方案2】:

    JMeter 变量永远不会为空。 要检查条件,您可以使用例如:

    ${__javaScript(vars.get("sessionUID_global")>0)}
    

    【讨论】:

    • 它是否读取用“setProperty”设置的属性?这种情况看起来对我不起作用:(
    • 试试这个如果不是请分享日志...props.put("sessionUID_global", vars.get("sessionUID"));props.get("sessionUID_global")
    猜你喜欢
    • 2018-05-10
    • 1970-01-01
    • 2020-03-13
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多