Адам Келли
Вручную запускаю те же тесты на Chrome, Safari и Firefox несколько раз, могут быть трудоемким и утомительным.
Некоторые задачи тестирования могут быть автоматизированы для обработки этих задач более эффективно. Эта статья будет охватывать, какие тесты могут быть автоматизированы, и как вы можете реализовать их с помощью Node.js и Nightwatch.
NightWatch подключается к WebDriver (например, Selenium). Он работает над API отдыха. Например, инициализация:
Требования
У вас должна быть установлена Java. Вы можете проверить это, запустив
$ java -version
в вашем терминале. Если у вас его не установлено, иди установить Это.
Вы должны иметь довольно недавнюю версию Safari, версию 10 или более поздней версии. Чтобы использовать Safari, вы также должны включить меню разработчика и включить Разрешить удаленную автоматику вариант.
Наконец, вы также должны иметь Node.js Отказ
Настройка
Установка
Nightwatch.js Является ли более простым способом написать тесты, которые используют их с помощью селена.
Чтобы установить его, CD В ваш проект, а затем установите модуль из NPM в соответствии с вашими зависимостями:
$ npm install --save-dev nightwatch
Теперь вам нужно установить Selenium. Самый простой способ сделать это с другим модулем NPM, Селен-сервер :
$ npm install --save-dev selenium-server
Мы хотим проверить Chrome, Safari и Firefox, поэтому мы также должны установить их драйверы. Водитель – это то, что используется селеном для управления браузерами. Водитель Safari встроен в MacOS, а драйверы Chrome и Firefox могут быть установлены с использованием NPM:
$ npm install --save-dev chromedriver geckodriver
Настройка
Nightwatch настроен с использованием файла конфигурации. Файл конфигурации является обычным файлом JavaScript, который я позвоню Nightwatch.conf.js Отказ Этот файл можно поставить в папку, например Тесты Отказ
Скопируйте и вставьте эту базовую конфигурацию в свой Nightwatch.conf.js файл:
Теперь у вас есть автоматизированные настроенную настройку для тестирования, и вы можете начать писать тесты!
Что может/следует вам проверить?
Есть два типа тестирования, которые вы можете сделать с этой настройкой:
- Функциональное тестирование
- Регрессионное тестирование
Функциональное тестирование – это тип тестирования, который пытается увидеть, соответствует ли ваш веб-сайт со всеми его требованиями. Обычно это означает реализацию тестов, которые убедитесь, что у него есть все необходимые функции.
Например, если клиент хочет, чтобы форма входа в систему, вы можете написать тест, чтобы проверить, что когда вы вошли в систему, ваше имя видно на веб-странице.
Другой тип тестирования – это регрессионное тестирование. Это делается, чтобы убедиться, что веб-сайт, который вы разработали и тестируются до того, как все еще работают так же, как он изменился. Это особенно полезно, когда клиенты могут редактировать части своего сайта, которые могут привести к ошибкам функциональности.
Например, вы можете написать тест, чтобы убедиться, что страница имеет правильные мета теги и информацию.
Ограничение этой структуры тестирования состоит в том, что он проверяет веб-сайт, а не код. Например, он не может проверить, что запрос БД был сделан, но он может проверить, что есть новый строк, сделанный из этого запроса.
Тем не менее, вы можете использовать другие структуры тестирования единиц наряду с (например, как Whest , Mocha и Ava ), Чтобы проверить вашу основную логику и код.
Писать тесты
Добро пожаловать на веселую часть тестирования. Ах просто шутить. Это все весело Отказ
В любом случае, тесты в NightWatch записываются с помощью обычного JavaScript Module. В Nightwatch.conf.js Файл, мы указали, чтобы посмотреть Тесты/Особенности для испытаний.
Nightwatch займет эту папку и ищите все файлы JavaScript в нем, а затем попробуют запустить их в качестве тестов.
Давайте создадим действительно простой тест: мы проверим, что название www.bing.com это Промежуток . Почему вы пойдете к Bing в первую очередь, является большей проблемой, которая не может быть адресована в этой статье.
Создайте новый файл в Тесты/Особенности называется Bing.test.js , содержащий следующий код:
Теперь тест создан!
Здесь Название Bing это название теста. Это показано, когда тесты работают. . Офис используется для фактического выполнения теста. .waitforelementvisable ожидает селектор CSS или селектор XPath, чтобы указать, к каким элементам вы ссылаетесь.
Вы можете иметь более одного теста в одном файле, и это хорошая практика, чтобы сохранить связанные тесты в одном файле.
Для получения дополнительной информации о создании тестов, документация Nightwatch действительно хороша. Если вы хотите знать, как что-то сделать, проверьте Это сначала. Также проверьте «выше и выше» этого руководства.
Бегущие тесты
Чтобы запустить тесты, которые у вас сейчас есть, перейдите к package.json файл. Добавьте следующее:
"scripts": { "nightwatch": "nightwatch -c tests/nightwatch.conf.js -e chrome,firefox,safari"}Это запускает ваши тесты с Chrome, Firefox и Safari.
Чтобы запустить свой тест, в вашем терминале делайте команду:
$ npm run nightwatch
Если у вас все еще есть тот же тест, что и выше, ваш выход должен выглядеть так:
Если вы получите ошибки, проверьте Общие вопросы Раздел этой статьи или Google ошибка.
И Там вы идете Теперь вы создали и использовали автоматическое тестирование браузера! ?
Выше и дальше
Лучшие практики и многое другое По глубине гидам
Есть множество хороших ресурсов, но вот некоторые из моих любимых:
- Тестирование пользовательского интерфейса с NightWatch.js – объекты страницы | http://matthewroach.me/ui-testing-with-nightwatch-js-page-objects/
- Написание тестов пользовательских интерфейсов для приложения TOMEVC | https://blog.cloudboost.io/e2e-testing-with-nightwatch-part-two-aaa25a4dc033
- Понимание командной очереди | https://github.com/Nightwatchjs/Nightwatch/wiki/underStanding-the-command-queue.
- Страница объекта API | https://github.com/Nightwatchjs/Nightwatch/wiki/Page-object-api.
- Nightwatch API |. http://nightwatchjs.org/api
- Nightwatch.js gotchas |. https://ericheikes.com/nightwatch-js-gotchas/
- Nightwatch Как утверждать несколько элементов | https://stackoverflow.com/questions/27116103/nightwatch-js-how-to-assert-multiple-elements?rq=1
Тестирование с краевым браузером
Вы можете проверить с краем, используя Microsoft WebDriver Отказ Он совместим с Windows 10 внутрь.
После того, как вы загрузите двоичный файл, перейдите на свой Nightwatch.conf.js файл и под "webdriver.gecko.driver" положил
"webdriver.edge.driver" : "location/of/binary/MicrosoftWebDriver.exe"
Тогда иди на test_settings и добавить еще один объект под сафари :
edge: { desiredCapabilities: { browserName: 'MicrosoftEdge', javascriptEnabled: true, acceptSslCerts: true, nativeEvents: true }}Наконец, иди к твоему package.json и изменить Nightwatch Сценарий к:
"nightwatch": "nightwatch -c tests/nightwatch.conf.js -e chrome,firefox,safari,edge"
Используя с CI.
Это за пределами объема этой статьи, но вы можете проверить:
- https://github.com/dwyl/learn-nightwatch/issues/8
- Использование Meteor, Travis CI и Nightwatch https://github.com/zeroaasterisk/meteor-travis-ci-gancewatch.
- Интеграция селена с Дженкинсом http://learn-automation.com/selenium-integration-with-jenkins/
Общие вопросы
Nightwatch не может найти селен
Если Nightwatch не может найти Selenium, попробуйте запустить файл конфигурации с узлом. Если ваш файл конфигурации, Nightwatch.conf.js в каталоге Тесты , запустить:
$ node tests/nightwatch.conf.js
Сафари всплывающие окна
Сафари может предупредить вас, что он контролируется. Просто позвольте этому. Если тест не удался или записан, запустите его снова.
Safari не закрывается
Просто закройте его вручную.
Чтобы просмотреть этот веб-контент, вам необходимо установить среду выполнения Java
Я сказал, что вы должны были установить Java, так что иди Установите его .
Ошибка – Порт 4444 занят, пожалуйста, выберите бесплатный порт и укажите его с помощью опции
Это означает, что что-то использует порт 4444. Вы можете либо остановить этот процесс, либо изменить этот порт.
Чтобы увидеть, какой процесс использует порт на Mac, используйте команду
$ lsof -n -i4TCP:4444 | grep LISTEN
Затем вы можете убить этот процесс.
Если вы не хотите убивать этот процесс, перейдите к Nightwatch.conf.js Файл и в Селен , изменить порт к неиспользованному порту.
Оригинал: “https://www.freecodecamp.org/news/how-to-easily-start-automatically-testing-your-website-8629ea8df04a/”