Cucumber 如何从excel电子表格中读取输入数据,并在空手道框架中传递JSON负载?

Cucumber 如何从excel电子表格中读取输入数据,并在空手道框架中传递JSON负载?,cucumber,bdd,rest-assured,web-api-testing,karate,Cucumber,Bdd,Rest Assured,Web Api Testing,Karate,我需要在空手道框架中为不同的API创建数据驱动的单元测试。JSON有效负载中要传递的各种元素应作为excel文件的输入。以下几点: 我建议你看看空手道内置的数据表功能,它更具可读性,集成到你的测试脚本中,你不需要依赖其他软件。参考以下示例:和 接下来,我建议使用JSON,而不是Excel或CSV文件,它本机受空手道支持: 最后,如果您真的愿意,您可以调用任何Java代码,如果您以映射/列表的形式返回数据,它就可以供空手道使用了。此示例演示如何通过JDBC读取数据库:。所以,尽管这不是空手道内置

我需要在空手道框架中为不同的API创建数据驱动的单元测试。JSON有效负载中要传递的各种元素应作为excel文件的输入。

以下几点:

  • 我建议你看看空手道内置的数据表功能,它更具可读性,集成到你的测试脚本中,你不需要依赖其他软件。参考以下示例:和
  • 接下来,我建议使用JSON,而不是Excel或CSV文件,它本机受空手道支持:
  • 最后,如果您真的愿意,您可以调用任何Java代码,如果您以
    映射
    /
    列表
    的形式返回数据,它就可以供空手道使用了。此示例演示如何通过JDBC读取数据库:。所以,尽管这不是空手道内置的,但只要编写一个简单的实用程序来读取CSV或Excel文件,您就可以做Java可以做的任何事情

编辑:空手道现在支持CSV文件,这些文件甚至可以用来进行数据驱动测试:

实际上,我的问题是要在API上执行500个功能测试用例。这500个测试用例的输入各不相同,我想从电子表格中读取它,将其存储在POJO对象中,然后将其转换为JSON负载并传递到请求体中。您能告诉我是否有更好的方法来实现这一点(即对大量数据执行数据驱动测试)吗?如果我需要遵循我的方法,我的项目结构应该是什么样的。我从excel中读取数据、存储在POJO中然后生成有效负载的代码应该出现在哪里?当你说“POJO”时,很明显你对空手道理解不够:)你为什么不花时间阅读文档?是的,有更好的办法。不要使用Excel。使用空手道的语法,如
表格
500行。或者使用包含500个元素的JSON数组。如果你仍然想沿着你所说的道路走下去,那么这取决于你——这是我上面回答的第三点。根据经验,我知道如果您试图将500个验证以“通用”的方式放入一个流中(如果它们是不同的测试场景),那么您就是自找麻烦。所有最好的:)对于任何偶然发现这篇文章的人来说,这是两个测试自动化的最佳实践。自动化你能想到的每一个场景是没有意义的。在这种情况下,至少有400次测试超过了时间成本效益。数据驱动测试应该几乎总是使用实时数据,而不是硬编码的值。这些可以来自api请求或db调用。例外情况是很少更改的数据,但即使在这种情况下,使用上述方法之一生成每周更新的文件也更有意义。