Запустите интеграционные тесты одновременно в Nightwatch.js + Saucelabs в одном экземпляре браузера - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь запустить определенные тесты интеграции, используя Nightwatch.js и Saucelabs.В настоящее время для каждого тестового случая открывается новое окно браузера, и поэтому тестовые случаи занимают много времени.

Мне нужно запустить тестовые случаи в одном окне браузера и отобразить результат тестового примера длякаждый тестовый пример для SauceLabs.

Ниже приведен код, аналогичный тому, который мне нужен для запуска.

module.exports = {
  beforeEach: (browser, done) => {
    //login
  },

  'Test-1': browser => {
       browser
        .page
        .testPage()
        .navigate()
        .end()
  },

  'Test2': browser => {
       browser
        .page
        .testPage()
        .navigate()
        .end()
  },

  afterEach: (browser, done) => {
    //logout
  },
}

Если я удаляю .end () из Test-1, Saucelabs запускает тест водин браузер, но показывает только результат теста с именем Test-2

1 Ответ

0 голосов
/ 11 июля 2019

Nightwatch автоматически запускает и останавливает веб-драйвер по умолчанию, но вы можете отключить его и управлять им самостоятельно, установив для параметра конфигурации start_process веб-драйвера значение false в файле nightwatch.json:

"webdriver" : {
  "start_process": false
}

Справочная документация Nightwatch: https://nightwatchjs.org/gettingstarted#configuration

Тем не менее, вы, вероятно, не должны этого делать.

Прежде всего, это означает больше работы для вас - вам придется самостоятельно управлять запуском и остановкой сеансов в каждой тестовой спецификации, включая передачу конфигурации.

Во-вторых, сессии в Sauce Labs должны запускаться и останавливаться для каждого теста. Соус распознает только 1 завершенный тест - пройден или не пройден для каждого сеанса.

Наконец, не рекомендуется объединять тесты в один сеанс - ваш браузер может находиться в непредвиденном состоянии с другими файлами cookie и кэшем, а ваше приложение может иметь длительные настройки из предыдущих тестов. Создавая новый сеанс в Sauce Labs, вы гарантируете, что все «чисто», и вы можете точно воспроизвести любой сценарий.

Я понимаю желание попытаться сэкономить время, потому что требуется больше времени, чтобы начать каждый сеанс индивидуально, а также пройти все подготовительные шаги, необходимые для достижения определенного состояния в вашем приложении. Но было бы лучше, если бы вы могли настраивать это состояние, вызывая API, устанавливая cookie-файл или что-то еще, вместо того, чтобы ваш браузер находился в неизвестном состоянии.

Именно поэтому Nightwatch автоматически перезапускает браузер между тестами.

...