如何从csv读取除使用set选项之外的JSON请求的测试数据

时间:2017-11-13 18:53:32

标签: karate

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

例如,我有大约230个测试场景作为发布请求,我有130个不同的客户信息,我需要根据上下文在230个测试用例中使用这些信息。客户信息包括姓氏,姓氏,年龄,地址等。但是,架构是相同的。如果我需要使用像groovy模板引擎这样的东西,这将是在空手道中使用的最佳方法

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

2 个答案:

答案 0 :(得分:2)

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

  2. IMO一旦习惯了tableset multiple语法,它就会比CSV-s好得多,因为它更具可读性。您可以使用call并从仅包含数据的第二个功能文件加载数据。

  3. 我个人建议使用JSON数组而不是CSV。有很多工具可以让你编辑JSON。在空手道中使用read JSON非常容易,并将其用于data-driven testing。您甚至可以合并settable,看一下这些想法:dynamic-params.feature

  4. 我想你知道空手道内置的JSON模板:embedded expressions - 你应该看看这里广泛的测试用例:js-arrays.feature

  5. 确保通过demo-examples

答案 1 :(得分:1)

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

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

我们对它的能力印象非常深刻,并且非常高兴地看到堆栈溢出中发布的问题得到了如此快速的回答。这使我们更有信心使用空手道。我建议空手道需要一个像放心的个人网站。