加特林.sign问题

时间:2019-11-27 09:02:10

标签: gatling

我正在尝试如下构建Get请求,并且我希望通过Feeder .feed(CaseProviderSeq)填充CaseReference值,但由于某些原因,它没有选择CaseReference值并在.sign语句下面为我的println语句打印

PATH KJ: /caseworkers/554355/jurisdictions/EMPLOYMENT/case-types/Manchester_Multiples/cases/$%7BCaseReference%7D/event-triggers/updateBulkAction_v2/token

我的Feeder CSV当前获得了以下行     1574761472170530     1574622770056940 所以我希望这个修改后的URL就像

/caseworkers/554355/jurisdictions/EMPLOYMENT/case-types/Manchester_Multiples/cases/1574761472170530/event-triggers/updateBulkAction_v2/token

你知道我在这里做什么错吗?

  .get(session =>    SaveEventUrl.replace(":case_reference","${CaseReference}").replaceAll("events", "") + s"event-triggers/${EventId}/token")
  .header("ServiceAuthorization", s2sToken)
  .header("Authorization", userToken)
  .header("Content-Type","application/json")
  .sign(new SignatureCalculator {
 override def sign(request: Request): Unit = {
    val path = request.getUri.getPath
   println("PATH KJ: " + path)
  request.getHeaders.add("uri", path)
 }
})

1 个答案:

答案 0 :(得分:0)

这与.sign不相关,但是您的会话属性CaseReference未被解释。如果仔细看,您会在$%7BCaseReference%7D中看到括号%-encoded

仅当需要String的情况下出现Expression[Something]时,才对Gatling Expression Language strings进行解释。 1

您编写的该错误已完全显示在上述文档的警告中。

我相信您可以只删除session =>中的.get,所以您传递的是String而不是Session => String 2 。该字符串将隐式转换为Expression[String]。这样,加特林将会话属性放到URL中。


  1. 发生这种情况是因为Scala隐式转换。
  2. 实际上它是Session => Validation[String],因为它还是隐式转换。