【问题标题】:Error invoking bsh method: eval.....Sourced file: inline evaluation of:调用 bsh 方法时出错:eval .....源文件:内联评估:
【发布时间】:2015-10-13 10:49:21
【问题描述】:

我需要将变量(从响应中提取)从一个线程传递到另一个线程 响应:“16540$Add373” 我需要 $ 之前的数字 正则表达式: 参考名称:SFID 正则表达式:“[$] 模板:$1$ 比赛编号:1

我使用 beanshell 断言将变量设置为 jmeter 属性

${_setProperty(SFID1,${SFID})};

在执行时我得到了

断言失败消息:org.apache.jorphan.util.JMeterException:错误调用 bsh 方法:eval 源文件:内联评估:``${_setProperty(SFID1,${SFID})};'' :尝试访问未定义变量或类名的属性

【问题讨论】:

    标签: jmeter


    【解决方案1】:
    1. 您的函数缺少下划线
    2. 您的函数缺少逗号

    正确的语法是:

    ${__setProperty(SFID1,${SFID},)}
    

    我建议使用Function Helper Dialog 来生成函数,因为您很容易对所有这些圆括号和大括号感到困惑。

    另一种方法是使用 varsprops 预定义的 Beanshell 变量,例如:

    props.put("SFID1", vars.get("SFID"));
    

    地点:

    有关 JMeter 中 Beanshell 脚本的详细信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component 指南

    【讨论】:

    • 谢谢 Dmitri,Vars & Props 为我工作,但我未能在 thread2 中使用线程 1 - ${__setProperty(SFID1,${SFID},)} - 我已声明 ${ http请求参数中的_property(SFID1)}。我没有得到价值。
    • 再次缺少下划线和逗号。正确的是${__property(SFID1,,)}
    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多