总是第一次试不通过,第二次成功了

问题描述 投票:0回答:1

我用的Jmeter是5.5版本,想把01线程组生成的token传给02线程组

线程组01中,我进行了如下配置:

  1. JSON Extractor获取令牌并将其存储到bearerToken

    变量中,

  2. JSR223 PostPocessor & groovy 将令牌传递给另一个线程,我写了这个

    ${__setProperty(bearerToken,${bearerToken})}

    
    

    JSR223 Post Processor

线程组02中,我进行了如下配置:

  1. User Defined Variables,然后使用

    __property()

    函数

    property function

  2. 并将其用作标题

    http header

每次第一次运行,Thread Group 02 中的http-request 总是运行失败,因为没有拿到token。但是如果再次运行第二次,就会成功

view result tree

黄框是Thread Group 01 (Login & Debug Sampler)和Thread Group 02 (Index)第一次运行时的情况,蓝框是第二次运行时的情况

我认为最初线程组 02 在线程组 01 之前首先运行,这就是为什么我在测试计划中启用了“连续运行线程组(即一次一个)”选项。我运行它并检查了监听器,结果是一样的,Thread Group 01 (Login & Debug Sampler) 成功运行但 Thread Group 02 (Index) 没有成功,因为它没有获得访问令牌。

Run Thread Groups consecutively

nb:我不能显示图像,因为它至少需要 10 个声望

groovy jmeter parameter-passing jsr223 threadgroup
1个回答
0
投票
  1. 修改您的 JSR223 后处理器代码以使用

    props

    vars
     简写
    而不是在那里内联函数:

    props.put('bearerToken', vars.get('bearerToken'))
    
    
  2. 在您的 HTTP 标头管理器中使用

    __P() 函数 as

    ${__P(bearerToken,)}
    
    
© www.soinside.com 2019 - 2024. All rights reserved.