数据驱动测试是为任何工具编写自动化测试用例的重要方面。我最近一直在测试testcafe,但没有找到令人信服的方式来进行数据驱动的测试,即对不同的输入执行测试。
我遇到了以下示例:https://testcafe-discuss.devexpress.com/t/multiple-execution-of-one-test-with-different-data/219 但是在上面的示例中,我们正在处理不同的登录用户名作为输入。如果我设想必须检查页面上是否显示元素列表的情况,那么我肯定会采取一些步骤进行验证。在这种情况下,我可能不想每次传递新输入时都执行领先的步骤。在上面的示例中,输入看起来像是在测试用例级别上,而不是在测试步骤级别上,因为我们将测试用例放在for循环中,因此无论我是否要重复它们,所有验证/导航点都将执行
由于我是testcafe的新手,并且遍历分散的文档,所以我的问题是-对于数据驱动的测试,这是我们在测试咖啡馆中唯一的方法吗?还是在testcafe中有更令人信服的,非冗长的方法-如果是的话,有人可以向我指出它的文档吗?
答案 0 :(得分:3)
数据驱动测试的主要概念是,您传递一些包含参数的数据,然后将期望的值进行测试。
Multiple execution of one test with different data主题注释中提供的示例是一个很好的起点:
const users = [
{ login: 'System', password: 'System' }, { login: 'Admin', password: 'Admin' }
]
for (let i = 0; i < users.length; i++) {
let user = users[i]; test(`Login with user '${user.login}'`, async t => {
await t.typeText(page.login.userEdit, user.login);
// ...
});
}
接下来,您可能需要从数据库,csv文件或其他任何文件中加载测试数据。在这种情况下,您可以使用适当的标准Node.js模块(请参见FAQ)。
要提出任何进一步的建议,请更详细地说明您的要求和您要完成的任务。另外,我在TestCafe存储库中创建了an issue,以数据驱动测试为例扩展了其文档。
答案 1 :(得分:2)
step
级别的概念在TestCafe中不存在。您只有两个级别:fixture
级别和test
级别。
如果您想在step
级别进行数据驱动的测试,则应查看与TestCafe集成的BDD框架。