说我有一个场景,我必须测试API GET Something。要测试此API,我需要使用完全不相关的API创建一些测试数据。让我们称之为数据API。
可以在DataProvider中而不是测试类中调用Data API吗?
PS-我在Google上搜索答案,只看到一个与我的问题确实不相关的链接。 how to replace the hardcoded values from data provider
答案 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
用于测试用例。