karate在不同场景重用同一变量?结论是不支持

ReferenceError: “id” is not defined in eval at line number 1

先给出一段报错,这段报错是因为我在两个场景中使用了id这个字段,由第一个场景赋值,在第二个场景中使用场景一的值,然后抛出了上面那段错误。

在查找资料过程中找到这样一段话,翻译成中文就是:如果你想在一个场景中修改一个变量,并在另一个场景使用上一个场景修改后的值,那么你一定是误解了场景这个概念。

If you are trying to modify a variable in one scenario and expect it to be now having that modified value when the next Scenario starts, you have misunderstood the concept of a Scenario.

那么有这种情况该怎么办呢?
考虑到这是一个串行流,将你的测试步骤组合到一个场景中是最好的。

Just combine your steps into one Scenario, because think about it: that is the “flow” you are trying to test.

为什么karate不支持这种变量处理方式呢?文中提到原因主要有两点。

  • 1、每个场景应当是独立的,因为在以后可以随机或并行的执行;
  • 2、如果你注释掉一个场景,另外一个场景也能正常工作。

Each Scenario should be able to run stand-alone. In the future the execution order of Scenario-s could even be random or run in parallel.
Another way to explain this is - if you comment out one Scenario other ones should continue to work.

你可能感兴趣的:(karate)