CSRF TOKEN 和具有 JESSION ID 的 cookie 不会传递到空手道中的不同场景

CSRF TOKEN and cookies having JESSION ID are not passed to different scenario in the karate

场景 1:

url: path1

Method : POST

Headers     
Accept
Content-Type


Form fields:
Username
Password

url: path2
Method:get

Headers     
Accept
Content-Type

路径 2 的输出是 CSRF TOKEN 并且 cookie 具有 JESSION ID

场景 2: 为了在场景 2 中调用任何路径,我们需要传递 path2 输出,即 CXRF TOKENJSESSIONID

问题:

对于我们的测试用例,我们需要始终将 jsession id(此 jession id 应仅从 path2 中获取)和来自 path2 的 csrf 令牌传递给所有后续调用。现在没有发生

1>Csrf token is not getting passed to scenario2

2>JESSION ID created here is different from the jesession id from path2

想知道是否有办法将此 csrf 令牌和 jesession id headers 传递给不同的场景?

首先阅读文档,然后查看这些特定示例:call-updates-config.feature and common.feature

我会这样做:

  • 在继续之前,先尝试让所有的东西都作为一个单一的场景运行。通常你不需要手动设置 cookies
  • 编写一个可重复使用的功能,调用 path1path2 并将其保留在 common.feature 中。
  • common.feature 的末尾将 CSRF 令牌和 JSESSIONID 的值设置为变量
  • 现在您可以编写第二个调用 common.feature 的功能或场景。再次,请阅读文档,有很多关于如何从另一个功能调用一个功能并传递变量的示例
  • 正如我所说,您通常不需要对 cookie 做任何事情,但您应该能够像这样设置 cookie(请参阅 cookie 的语法):* cookie JSESSIONID = yourVariableName
  • 类似地使用 header 关键字或任何适合正确设置 CSRF 令牌的关键字