【问题标题】:Not able to access Jmeter property in the other thread group.无法访问其他线程组中的 Jmeter 属性。
【发布时间】:2017-06-14 09:53:31
【问题描述】:

在第一个线程组中,在 bean-shell 后处理器中,我添加了以下代码来设置名称为“id”的 Jmeter 属性:

 int abc=10   
 int start=${abc}+1;
 ${__setProperty("id",start)};
 print(props.get("id"));

在第二个线程组中,我正在尝试使用以下方法访问 beanshell 中“id”的值:

int pq=${__P("id",1)};

现在,'pq' 的值应该是 11,但它的默认值是 '1'。 当我签入 Debug PostProcessor 时,id 的值是字符串 'start' 而不是 11。我不确定需要进行哪些更改。我注意到的一件更有趣的事情是:在控制台中,它为“print(props.get(“id”))”打印 11,而在 jmeter 属性中它存储字符串值“start”。

感谢任何帮助。

【问题讨论】:

    标签: jmeter performance-testing jmeter-plugins


    【解决方案1】:

    首先,通常要注意,不要将变量和函数调用内联到基于脚本的测试元素中,因为它们可能行为不端。

    所以你应该修改你的代码:

    1. 第一个线程组:

      int abc=10   
      int start=abc+1
      props.put('id', start)
      
    2. 第二个线程组

      int pq = props.get('id')
      log.info('Property value: ' + pq)
      

    注意:以上代码假设使用JSR223 Test ElementsGroovy language

    【讨论】:

    • @Dmitri T 我注意到,将道具从一个线程组转移到另一个线程组的唯一方法是从第二个线程组中的道具中显式读取它,然后将其显式放入变量中;在模板中使用属性名称将不起作用。
    猜你喜欢
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多