除了使用设置选项之外,如何从 JSON 请求的 csv 中读取测试数据

How to read test data from csv for JSON requests other than using set options

我使用了空手道的设置功能,使用 JSON 表达式更改键中的值。我主要用它来根据测试场景更改请求内容。这使我能够避免从 csv 文件中读取大量测试数据。然而,在某些情况下,我更喜欢使用 csv。

例如,我有大约 230 个测试场景作为 post 请求,我有 130 个不同的客户信息,我需要根据上下文在 230 个测试用例中使用这些信息。客户信息包括名字、姓氏、年龄、地址等。但是,架构是相同的。如果我需要使用 groovy 模板引擎之类的东西,什么是在空手道

中使用的最佳方法

我需要将这些数据保存在 csv 中,读取它并将值传递给 JSON 模板,然后再发出请求。我仍然需要依赖 csv/ 外部资源,因为这些数据经常过时,我需要经常更改它。你能分享一下你对此的看法吗?

  1. 使用与此示例 (JDBC) 类似的方法,您应该能够在不到一个小时的时间内将 CSV 写入 JSON 转换器:dogs.feature

  2. IMO 一旦您习惯了 table or set multiple syntax, it is far better than CSV-s as it is more readable. You can use call 并从仅包含数据的第二个特征文件加载数据。

  3. 我个人建议使用 JSON 数组而不是 CSV。有很多工具可以让您编辑 JSON。 read JSON in Karate and use that for data-driven testing. You can even combine set or table, take a look at this for ideas: dynamic-params.feature

  4. 我猜你知道空手道内置的 JSON 模板:embedded expressions - and you should look at the extensive test-case examples here: js-arrays.feature

确保你通过 demo-examples

我同意你的做法。我还认为从 JSON 数组或使用 table 功能读取数据更好。我现在正在努力。我在一个有很多访问限制的前提下工作。我将您的回答告知团队。我们密切关注这些问题。但是,我无法从办公室登录堆栈溢出。所以迟迟没有回应。抱歉耽搁了。

现在我主要在做研发,寻找可以与 webdriver + DB 验证集成的测试 web 服务的解决方案。我们早些时候决定放心去。使用空手道后,我们肯定改变了主意。我们的一位在 ThoughtWorks 工作的朋友建议空手道,我们开始了解它。

我们对它的能力印象深刻,也很高兴看到在 stack overflow 中发布的问题得到如此迅速的解答。这让我们更有信心使用空手道。我建议空手道需要一个像放心的个人网站。