有没有办法用空手道写文本文件

时间:2019-02-08 11:44:42

标签: javascript dsl karate

在空手道测试中,我需要将响应ID写入txt文件(或其他任何文件格式,例如JSON),想知道它是否具有执行此功能的能力,我在文档中没有看到其他内容。如果没有,是否有一个简单的JavaScript函数可以实现?

2 个答案:

答案 0 :(得分:3)

在JavaScript中尝试karate.write(value, filename)。我们不记录此文件,因为我们不鼓励这样做。此外,该文件将仅写入当前的“ build”目录,对于Maven项目/独立JAR,该目录为target

value可以是任何数据类型。

这里是example

编辑:对于将来遇到此问题的其他人,正确的做法是:

  1. 首先不需要写文件,您永远不需要这样做,这个问题通常是由经验不足的人提出的,出于某些原因,他们认为在验证之前“保存”响应的唯一方法是将其写入文件。不,请不要浪费您的时间-请仅将matchresponse相对。并且不要编写测试,以使方案(或功能)依赖于其他方案,这是very bad practice

  2. 按照此答案查看karate.write()是否对您有用

  3. 编写一个自定义Java(或使用JVM的JS函数)以使用Java interop

答案 1 :(得分:0)

我写文件的理由是另一回事。我明确地使用空手道来实现模拟。我想公开一个端点,其中上游系统将使用POST / PUT方法通过json有效载荷发送一些基本数据,而空手道将构造后续的有效载荷文件并将其存储在特定的文件夹中,而这个新创建的有效载荷文件将通过另一个GET公开打电话。