自动重复Nightwatch测试

时间:2018-01-29 16:47:21

标签: selenium nightwatch.js

有没有人知道我可以自动重新运行Nightwatch测试的次数?

我有以下代码:

.end()

而不是.rerun()测试我想{{1}}测试说30次。我无法在文档中的任何位置看到这样做的选项。

非常感谢提前。

3 个答案:

答案 0 :(得分:2)

您需要的是一些异步迭代逻辑和client.perform()函数:

module.exports = {
  'Log into system - create order': function (client) {
    var currentIteration = 0,
        iterationCount = 30;

    function runTest() {
      client
        .url('XXXX')

        // ... YOUR CODE HERE, WITHOUT .end()

        .perform(function() {
          if (++currentIteration < iterationCount) {
            return runTest();
          }

          client.end(); // After passing 30 iterations end the session
        });
    }

    runTest();
  }
};

答案 1 :(得分:1)

您可以将命令包装在client.perform()和for循环

client.perform(function(){
    for (i = 0; i < 29; i++) { 
      client
        .url('XXXX')
        .
        .
        .
        .end();
    }
})

答案 2 :(得分:0)

如果要重复他用不同的输入进行测试?那么你可以做这样的事情

module.exports = {
  "Login Fail Cases": function(browser) {
    let dataSet = [
      { username: "madhus", pass: "madhus" },
      { username: "admin", pass: "admin" }
    ];

   //will run for 2 times as length of dataset is 2
    dataSet.forEach(function(data) {
      browser
        .url("https://localhost:3000/")
        // you tests here
    }, this);

    // note: end the test outside the loop once all tests are executed
    browser.end();
  }
};