(или, говоря более технически, новый способ написания сквозных тестов)
Производство высококачественного программного обеспечения — это только одна из задач, которую мы делаем здесь, в Neosavvy, но обеспечение того, чтобы оно ОСТАЛОСЬ высоким качеством, — это еще одна обязанность, которую мы принимаем во внимание, когда беремся за новый проект.
Есть несколько отличных способов следить за вашей производственной и промежуточной программной средой. В наши дни, кажется, идут решения на основе Selenium, но по своей сути Selenium — это решение Java, и 99% клиентского программного обеспечения написано на Javascript. Кажется, в наши дни существует множество вариантов: Capybara, Protractor, CasperJS и этот список можно продолжить.
В последнее время мы проявляли большой интерес к команде Nightwatch, которая во многом похожа на некоторые другие библиотеки тем, что предоставляет базовые хуки Selenium для запроса DOM с помощью селекторов XPath или CSS. Основное отличие, которое я вижу до сих пор, заключается в том, что с ним немного проще работать, чем с предыдущими хуками Selenium, которые я использовал, поскольку он не выглядит основанным на промисах. Разработчик также может выставить объекты страницы в стиле Мартина Фаулера около 2013 года.
Я хочу помочь своим коллегам начать работу над Nightwatch, поэтому я собрал несколько видеороликов, чтобы показать, как его установить, некоторые двоичные файлы, которые мне пришлось загрузить, чтобы запустить Selenium, а затем базовую конфигурацию. Наконец, быстрый запуск простого теста.
Установить nightwatch очень просто.
npm install [-g] nightwatch
Я запустил селен на отдельной вкладке, кажется, это стоит сделать, так как позже вы захотите запускать свои тесты в параллельном/параллельном режиме, чтобы мы могли быстрее запускать больше тестов. Может также подражать этому с самого начала.
java -jar path/to/selenium-standalone-3.4.0.jar
Если вам нужны бинарники, я нашел их здесь: http://www.seleniumhq.org/download/
Настройка Nightwatch может быть довольно сложной, но я считаю, что приведенные ниже параметры наиболее полезны для моих нужд.
{ "src_folders": ["tests"], "output_folder": "reports", "custom_commands_path": "", "custom_assertions_path": "", "page_objects_path": "./page_objects", "globals_path": "", "selenium": { "start_process": false, "cli_args": { "webdriver.chrome.driver": "./bin/chromedriver" } }, "test_settings": { "default": { "launch_url": "http://google.com", "selenium_port": 4444, "selenium_host": "localhost", "silent": true, "screenshots": { "enabled": false, "path": "" }, "desiredCapabilities": { "browserName": "chrome", "javascriptEnabled": true, "acceptSslCerts": true, "chromeOptions": { "args": ["start-fullscreen"] } } } } }
Наконец, запустить его тоже чертовски просто, вот тест, который вы можете использовать, чтобы убедиться, что ваша установка работает, прежде чем продолжать делать более сложные вещи.
module.exports = { 'Demo test Google' : function (browser) { browser .url('http://www.google.com') .waitForElementVisible('body', 1000) .setValue('input[type=text]', 'nightwatch') .waitForElementVisible('button[name=btnG]', 1000) .click('button[name=btnG]') .pause(2000) .assert.containsText('#main', 'Night Watch') .end(); } };
Идите, защитите свое приложение от нежелательных ошибок и случайных простоев. Я поработаю над некоторыми более сложными темами «Ночного дозора», чтобы поделиться с вами тем, что я могу выяснить, мой выдающийся читатель.