首页 > 解决方案 > 我们应该在 TestNg DataProviders 中调用 API 吗?

问题描述

假设我有一个场景,我必须测试一个 API GET Something。为了测试这个 API,我需要使用完全不相关的 API 创建一些测试数据。让我们称它们为数据 API。

可以在 DataProvider 中调用 Data API 而不是在测试类中调用吗?

PS - 我用谷歌搜索答案,只看到一个与我的问题无关的链接。如何替换数据提供者的硬编码值

标签: testng

解决方案


这取决于您的测试设计和需求。数据驱动测试用于使用多个数据集迭代相同的测试。如果您使用多个数据集迭代相同的测试用例,那么数据驱动功能是最合适的解决方案。您甚至可以对单组数据使用数据驱动功能,但您应该考虑使用设置方法进行替代,并选择最合适的方法。

例如,当使用TestNG 的 QAF 扩展进行Web 服务测试时,您还可以拥有 BDD 和 Java 中的 before 方法的背景来设置数据并在请求调用中使用该数据。例如: JAVA:

userRequests("get.sample.call", data);

BDD:

user requests "get.sample.call" with data "${data}"

如果您没有为多个数据集迭代相同的测试,您可以使用 qaf 添加额外的meta-datalet say test-data-req,它为 Web 服务调用提供请求密钥以获取数据。在调用 testng 方法之前,可以使用元数据进行 Web 服务调用以填充data测试用例。


推荐阅读