nightwatchjs,在多个页面上运行相同的测试

时间:2017-08-29 10:45:22

标签: nightwatch.js e2e-testing

我已经为我的主页编写了一些测试,但测试非常通用,如页脚,标题检查。

我的测试结构如下:

const footerCheck = function(browser){ 
    browser.url("example.com");
    browser.verify.elementPresent(".footer-top", "Footer-top is present.")
    browser.verify.elementPresent(".footer-middle", "Legal notice bar is present")
    browser.verify.elementPresent(".footer-bottom", "Copyright bar is present")
    }

export.module = {
"Footer Check" : footerCheck
}

假设我有100页。我想在所有100页上运行footerCheck函数。

网址,例如example.com/page1,example.com/page2,example.com/page3 ...

由于所有测试对其他页面都有效,我想循环所有页面以获得相同的测试用例。不知怎的,我无法理解它。

这怎么可能,任何帮助都会受到赞赏。

由于

1 个答案:

答案 0 :(得分:1)

根据我的个人经验,做BDD的最佳方法是添加使用gherkin语法的黄瓜。如果你知道如何使用它,它可以更清晰,更有助于减少冗余代码。有一个Nightwatch npm plugin添加黄瓜,一旦你添加了黄瓜,你必须创建你的.feature文件,如下所示

Feature: Check elements are present
Scenario Outline:
Given the user enters on a <page>
Then .footer-top, .footer-middle and .footer-bottom class should be enabled

Examples:
|page|
|page.com/page1|
|page.com/page2|
|page.com/page3|

你的步骤定义(你在哪里声明每个步骤会做什么)它会自动运行示例中提供的每个url的每一步(注意将在示例中替换的<page>标志,第一行是标签的名称)。

查看examples