我有一些端到端的流程,必须运行服务并将值传递给下一个方案。我可以在方案中打印值,但不能在下一个方案中使用它们。
我尝试使用SaveAs保存值
val scn_Token1 ={ scenario("Token1")
.exec(actionBuilder = http("Token1")
.post("/getToken")
.body(StringBody(bdy_Token)).asJson
.check(status.is(200))
.check(jsonPath("$.Token").exists)
.check(jsonPath("$..Token")
.find
.saveAs("Token")
)
.check(jsonPath("$..id")
.find
.saveAs("mid")
)
.check(jsonPath("$..otp")
.find
.saveAs("otp")
)
)pause(tnk_token milliseconds)
}
val scn_Auth ={ scenario("Authentication")
.exec(actionBuilder = http("Authentication")
.post(authServiceUrl)
.header("Token", "${Token}")
.header("id", "${id}")
.header("otp", "${otp}")
.body(StringBody(bdy_Auth)).asJson
.check(status.is(200)))
.pause(tnk_Auth milliseconds)
}
setUp(
scn_Token1.inject(nothingFor(dly_token_first seconds),rampUsers(ucnt_token_first) during (ramp_token_first seconds)).protocols(httpConfToken),
scn_Auth.inject(nothingFor(dly_Auth seconds),rampUsers(ucnt_Auth) during (ramp_Auth seconds)).protocols(httpConf)
).maxDuration(test_duration minutes)
我遇到类似的错误
“ httpRequest-2”执行失败:未定义名为“ id”的属性
“ httpRequest-2”执行失败:未定义名为“令牌”的属性
我还尝试了等待第二种情况的等待时间,以便在情况1完成后执行。但是它仍然无法获取值。
请注意,我不希望在单个方案中合并令牌和Auth,因为它具有不同的配置。值应该从一种情况传递到另一种情况。请让我知道这里出了什么问题?
答案 0 :(得分:0)
加特林无法在用户之间传递数据-如果您需要在每个scn_Auth请求设置会话参数之前执行scn_Token,只需将其包含在scn_Token中即可。
将scn_Auth重新定义为
val scn_Auth ={ scenario("Authentication")
.exec(scn_Token1)
.exec(actionBuilder = http("Authentication")
.post(authServiceUrl)
.header("Token", "${Token}")
.header("id", "${id}")
.header("otp", "${otp}")
.body(StringBody(bdy_Auth)).asJson
.check(status.is(200)))
.pause(tnk_Auth milliseconds)
}
,然后仅为scn_Auth注入用户