我们应该在TestNg DataProviders内部调用API吗?

时间:2018-09-13 01:26:27

标签: testng

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

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

PS-我在Google上搜索答案,只看到一个与我的问题确实不相关的链接。 how to replace the hardcoded values from data provider

2 个答案:

答案 0 :(得分:0)

是的,最好在DataProvider中访问您的Data API。

测试方法/类不应包含与数据操作有关的任何逻辑。仅测试步骤。

答案 1 :(得分:0)

这取决于您的测试设计和需求。数据驱动测试用于迭代具有多个数据集的同一测试。如果要使用多个数据集迭代同一测试用例,则数据驱动功能是最合适的解决方案。您甚至可以针对单个数据集使用数据驱动功能,但您应该考虑使用设置方法来选择另一种方法,然后选择最合适的一种。

例如,将TestNG's QAF extension用于web-service testing时,您还可以在BDD中具有背景,而在Java中的方法之前可以具有背景来设置数据并在请求调用中使用该数据。例如: JAVA:

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

BDD:

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

如果您不对多个数据集重复相同的测试,则可以使用qaf添加其他meta-data,例如说test-data-req,它为Web服务调用提供了获取数据的请求密钥。在调用testng方法之前,可以使用元数据进行Web服务调用以填充data用于测试用例。