【问题标题】:Documentation for performing data driven testing using testCafe?使用 testCafe 执行数据驱动测试的文档?
【发布时间】:2018-12-28 04:40:25
【问题描述】:

数据驱动测试是为任何工具编写自动化测试用例的一个重要方面。我最近一直在尝试使用 testcafe,但无法找到一种令人信服的方法来进行数据驱动测试,即针对不同的输入执行测试。

我遇到了这个例子:https://testcafe-discuss.devexpress.com/t/multiple-execution-of-one-test-with-different-data/219 但在上面的例子中,我们处理不同的登录用户名作为输入。如果我想象一个我必须检查页面上是否出现元素列表的场景,我肯定会有一些步骤导致验证;在这种情况下,我可能不想在每次传递新输入时都执行前导步骤。在上面的示例中,输入看起来像是在测试用例级别而不是在测试步骤级别,因为我们将测试用例放在 for 循环中,因此无论我是否要重复它们,所有验证/导航点都将被执行

因为,我是 testcafe 的新手,并且浏览了分散的文档,所以我的问题是 - 对于数据驱动的测试,我们在 testcafe 中拥有的唯一方法是什么?或者在 testcafe 中有一些更令人信服、不冗长的方法——如果是的话,有人可以指出我的文档吗?

【问题讨论】:

  • 感谢@Alex 的编辑。只是想知道您是否有同样的想法?

标签: automated-tests e2e-testing testcafe web-testing data-driven-tests


【解决方案1】:

数据驱动测试的主要概念是你传递一些包含数据的参数并测试期望值。

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,以通过数据驱动测试的示例扩展其文档。

【讨论】:

  • 感谢您的回复和提供的信息。接下来的几天,我将尝试为我的问题提出一个确切的例子。
【解决方案2】:

TestCafe 中不存在step 级别的概念。您只有两个级别:fixture 级别和 test 级别。 如果您想在 step 级别进行数据驱动测试,您应该看看与 TestCafe 集成的 BDD 框架。

【讨论】:

  • 我已经尝试了几个 BDD 与 testCafe 框架的集成,但每次都未能启动测试用例。我将发布确切的问题,如果您能提供帮助,那就太好了。但是,在论坛上,我看到一些文章说 BDD 作为一项功能仍在工作中,此时存在的自定义框架有其自身的缺陷,可能无法正常工作。您能否澄清一下这些框架是否可用?这些是我说的 1) github.com/rquellh/testcafe-cucumbergithub.com/kiwigrid/gherkin-testcafe
  • @Monnie_tester:两个 repo 都很棒,但你应该知道,TestCafe 团队没有官方支持(在撰写本文时,这可能会在未来发生变化)对 CucumberJS 集成。在 CucumberJS 中,数据驱动的测试是通过使用 Scenario Outline 实现的(参见 gherkin Reference)。最后,Scenario Outline 被转换为与场景中给出的示例一样多的 TestCafe 测试——这与@AlexSkorkin 解释的执行简单的for 循环相同。我建议你按照他的方式,因为这是最简单的路径
猜你喜欢
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-18
  • 1970-01-01
相关资源
最近更新 更多