nightwatch js что это

Установка и использование NightWatchjs

Материал из AOW

Содержание

Что такое Nightwatch?

Nightwatch.js является автоматизированная система тестирования для веб-приложений и веб-сайтов, написано в Node.js и используя API Селен WebDriver.

Это полная автоматизация браузер (из конца в конец) решение, которое ставит своей целью упростить процесс создания непрерывного интеграции и написание автоматизированных тестов.

Принцип действия

Nightwatch работает, посылая HTTP запросы на сервер Selenium с нужными параметрами и интерпретации ответа. Протокол RESTful API определяется Селен JsonWireProtocol. См. ниже для примера процесса для инициализации браузера.

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

В большинстве случаев, Nightwatch должен послать по крайней мере две запросы на сервер Selenium, чтобы выполнить команду или assetion, первый из которых запрос, чтобы найти элемент, задающий переключатель CSS (или выражение XPath) и следующий выполнять реальная команда / утверждение о данном элементе.

Selenium

Selenium является очень популярным и всеобъемлющий набор инструментов для автоматизации браузера, первоначально написана для Java но теперь с поддержкой большинства языков программирования.

Основные проекты селена являются:

Nightwatchjs использует Selenium WebDriver, в частности, Wire Protocol WebDriver для выполнения задач автоматизации, связанных браузера

Установка Nightwatch

Запуск Selenium сервера

Download the latest version of the selenium-server-standalone-.jar file from the Selenium downloads page and place it on the computer with the browser you want to test.

Запуск Selenium Автоматически

Если сервер находится на той же машине, где Nightwatch работает, его можно запустить/остановить непосредственно Nightwatch Test Runner.

Запуск Selenium вручную

Чтобы запустить сервер селена вручную, из каталога с банку выполните следующее:

Более подробную информацию о запуска сервера Selenium можно найти здесь:

Для просмотра всех опций времени выполнения, запустите предыдущую команду, добавив опцию-помощь:

Что бы запустить Selenium сервер с портом 555:

Использование Nightwatch

Написание тестов

Использование предпочел модель селектора CSS, чтобы найти элементы на странице, Ночной дозор делает его очень легко написать автоматизированных тестов из конца в конец.

Тест может иметь несколько шагов, в случае необходимости:

Испытания также можно записать в следующем формате:

Использование селекторов XPath

Nightwatch поддерживает XPath селекторов также. Чтобы переключиться на XPath вместо CSS селекторов, как найти стратегии, вызвать метод useXpath(), как показано на примере ниже. To вернуться к CSS, звоните useCss().

Запуск Тестов

Nightwatch включает в себя тест бегун командной строки, которая позволяет легко запускать тесты и получить полезную выход.

Если у вас установлен Nightwatch с -g опцию можно пропустить этот. Для использования тестового бегун в вашем проекте просто создать новый файл с именем Nightwatch и добавить следующее:

Источник

Функциональное тестирование JavaScript с Nightwatch.js

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

Мы не говорим о технических тестах, таких как модульные или интеграционные тесты. Здесь цель состоит в том, чтобы убедиться, что пользователь может беспрепятственно выполнить определенный сценарий, например войти в платформу, купить продукт и т. Д.

Представляем Nightwatch.js

Благодаря удобному для человека синтаксису, Nightwatch.js позволяет «сценарировать» сценарии, которые затем автоматически воспроизводятся браузером (не обязательно без заголовка).

Установка Nightwatch

Nightwatch использует API Selenium WebDriver и, следовательно, нуждается в сервере Selenium WebDriver. Это работает на Java, что означает, что вам также необходимо установить Java Development Kit (JDK 7+) в вашей среде. Вы можете скачать JDK с сайта Oracle.

Хорошо, мы все готовы. Давайте начнем.

Настройка Nightwatch

Примечание. Мне лично легче читать файл конфигурации, когда он разбит на более мелкие объекты конфигурации, что не разрешено в файле JSON.

Переходя к фактической настройке тестирования:

В конфигурации среды мы сообщаем Nightwatch, какой URL открывать (который будет отличаться, например, для постановки), и какой браузер следует использовать для запуска тестов.

В нашем сценарии мы будем использовать Firefox без поддержки JavaScript, что позволяет использовать SSL-сертификаты. Мы могли бы пойти дальше и указать конкретную версию браузера (с version ) или ОС (с platform ).

Хорошо, теперь у нас есть правильная конфигурация. Время написать первый тест!

Написание теста Nightwatch

Этот файл экспортирует объект, который описывает наш сценарий. Каждый ключ (если их несколько) — это имя теста, сопоставленное с функцией, содержащей шаги для выполнения.

Функция test предоставляет объект, предоставляющий API, необходимый для описания сценария. Первое, что нужно сделать, это перейти к URL-адресу входа. Затем заполните поля и нажмите кнопку. Наконец, проверьте, можем ли мы найти текст «Ленты новостей».

Это было довольно просто! Теперь мы можем запустить наш тест, чтобы увидеть, работает ли он:

Это должно дать нам что-то вроде этого:

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Улучшение тестов Nightwatch

В мире сквозного тестирования методология Page Objects является популярным шаблоном, состоящим из упаковки проверенных страниц (или фрагментов страницы) в объекты. Цель состоит в том, чтобы абстрагироваться от базового HTML и общей конфигурации, чтобы упростить сценарии.

К счастью, в Nightwatch есть простой способ обработки объектов страницы. Первое, что нам нужно сделать, это добавить опцию page_objects_path в конфигурацию. Я чувствую, что tests / pages имеют смысл; Вы можете указать любую папку, которую хотите.

В этом файле мы укажем URL и псевдоним некоторых HTML-элементов с понятным именем, чтобы упростить написание будущих сценариев.

Обратите внимание, что мы не жестко кодируем URL. Вместо этого мы используем опцию launchUrl определенную в конфигурации среды. Таким образом, наш объект страницы не зависит от контекста и будет работать независимо от среды.

Теперь довольно просто изменить наш тест для использования объекта страницы. Сначала нам нужно получить страницу через объект page от клиента. Каждый объект страницы представлен как функция, названная в честь имени файла объекта страницы (например, login ( ) ).

Затем мы можем заменить наши селекторы CSS нашими псевдонимами, с префиксом символа @ чтобы указать, что мы ссылаемся на произвольное имя. Вот и все.

Обратите внимание, как мы прекращаем сеанс на самом клиенте, а не на странице.

Работа с несколькими средами

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

Давайте добавим промежуточную среду в нашу конфигурацию.

Теперь при запуске наших тестов опция launch_url будет отличаться в зависимости от среды.

Завершение дела

Давайте подведем итог всему этому. Nightwatch.js — это инфраструктура JavaScript, используемая для написания сквозных функциональных тестов. Он опирается на API Selenium WebDriver и может автоматически запускать разные браузеры.

Написание тестов в основном состоит из определения типичного пользовательского сценария. Для этого есть простой, но очень полный API.

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

Источник

Русские Блоги

Тест функции JavaScript с помощью NightWatch.js

Переднее шоу, Эрик Эриотта написалJavaScript Test: Unit VS Функция VS Тест Интеграции Он объяснил, что для использования использовались различные типы испытаний.

В современной статье я хочу войти в тест функции JavaScript в тесте функции JavaScript. Для этого мы рассмотрим и используем его.Nightwatch.jsБиблиотека.

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

Введение NightWatch.js.

Nightwatch.jsСамо описание является тестовой структурой, которая подает электропитание Node.js к терминалу. Это зависит отселен Проект предназначен для облегчения автоматизации веб-браузеров.

Через гуманизированную грамматику NightWatch.js может «скрипт», а затем автоматически воспроизводится через браузер (не обязательно без головы).

Установите Nookwatch

Nightwatch опирается на API селена Webdriver, поэтому требуется сервер Webdriver для Selenium. Это в Java, и вы также должны установить набор Java Development (JDK 7+) в вашей среде. Вы можетеСкачать JDK.С веб-сайта Oracle.

Хорошо, мы теперь устанавливаем все настройки. Давайте начнем.

Настройка Nightwatch.

Вы можете представить, что у Nootwatch имеет много конфигураций. К счастью, нам не нужно все знать. Настроить или жить в одном nightwatch.json Или файл nightwatch.conf.js Корневой файл в проекте. Я предлагаю ему, потому что это более гибкий, и способность добавлять комментарии.

Примечание. Я лично считаю, что проще прочитать файл конфигурации, он разделен на более мелкие объекты конфигурации, один из файлов JSON не допускается.

В нашем примере мы говорим Nightwatch, наш тест будет жить в одном tests Папки, используйте определенную конфигурацию Selenium и некоторые настройки испытаний. Давайте пройдем каждый кусок:

С помощью этого объекта конфигурации мы говорим, что селен работает 127.0.0.1:4444 Это происходит, чтобы быть значением по умолчанию Nootwatch. Мы также убедимся, что он автоматически загружается, мы загружаем и храним в нашем сервере Selenium bin папка.

Примечание. Для более расширенного использования обязательно проверьтеВсе Список параметров SELENIES 。

Перейти к фактическим настройкам испытаний:

В конфигурации окружающей среды мы говорим URL Nightwatch, какой (это будет постановка, такая как разные), и какой браузер должен использовать для запуска теста.

Примечание. Для более расширенного использования обязательно проверьтеВсе параметры тестовых опций 。

В наших сценариях мы будем использовать Firefox без JavaScript, пусть SSL-сертификаты. Мы можем пойти дальше и указать определенную версию браузера (с version ) Или ОС platform )。

Узел: Для более расширенного использования обязательно проверьтеВсе списка параметров функций 。

Хорошо, теперь у нас есть правильная конфигурация. Время написать первый тест!

Написать тест на ночной удар

В нашей конфигурации наш указанный тест назван в папке, как tests 。 Давайте создадим это tests Папка и именованный файл login.js 。

Тестовые функции открытые объекты, чтобы обеспечить API, необходимое для описания сцены. Первое, что нужно сделать, это перейти к URL входе в систему. Затем гора дикая, затем нажмите кнопку. Наконец, проверьте, сможем ли мы обнаружить текст «новостной канал».

Это очень просто! Теперь мы можем запустить наш тест и увидеть его принцип работы:

Это должно дать нам это:

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Примечание: используйте Firefox 47, выпускРасширение на основе версии Firefoxdriver останавливает работу 。 Это былоИсправлено в Firefox 47.1 и Selenium 2.53.1 。 Чтобы использовать различные браузеры для прогона теста, проконсультируйтесьПроект Wiki 。

Что мы можем сделать, чтобы избежать достижения ночного патрульного двоина каждый раз, когда последнее, что встроен в небольшом сценарии NPM. package.json Псевдоним:

Улучшить тест на ночной удар

Наличие большого количества функциональных испытаний может привести к большому количеству повторений информации, создавая техническое обслуживание (да, тестовые комплекты должны быть сохранены) сложно. Для того, чтобы предотвратить это, мы можем использоватьОбъект страницы

К счастью, NightWatch имеет простой способ обрабатывать объект страницы. Первое, что нам нужно сделать, это добавлено page_objects_path Варианты настроены. Я думаю tests/pages Причина; Вы можете указать, что вы хотите любую папку.

Теперь мы можем создать один login.js Файлы в этой папке. Имя этого файла будет использоваться в качестве ключевого слова для получения всей конфигурации, указанной в этом файле, поэтому я предлагаю разумное имя.

В этом файле мы укажем URL-адрес и псевдоним некоторых HTML-элементов и дружеские имена, чтобы облегчить написание будущих сценариев.

Обратите внимание, что мы едва не кодируем URL. Наоборот, мы позволяем ему полагаться на launchUrl Определения конфигурации в среде. Таким образом, наша страница объекта не связана с контекстом, и работа будет работать в любом случае.

Теперь очень просто изменить объекты страницы, используемые в нашем тесте. Во-первых, нам нужно получить страницу page От объекта клиента. Каждый объект страницы подвергается воздействию имени имени функции файла целей страницы (например, login()

Затем мы можем использовать наш псевдоним, переднюю ленту заменить наш выбор CSS @ Символы, чтобы указать, что мы ссылаемся на пользовательские имена. Да.

Обратите внимание, как мы прекратите сам клиента, а не сеанс на странице.

Работа с несколькими средами

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

Добавьте среду в нашу конфигурацию.

Теперь мы проводим тест, launch_url Опция будет отличаться в зависимости от окружающей среды.

Упакованные вещи до

В основном написано тестирование для определения типичной пользовательской сцены. Простая и очень полная API в настоящее время используется для этой цели.

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

Источник

Настройка системы WEB — тестирования на основе headless chromium-browser, chromedriver, nightwatch и node.js на Ubuntu

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Предисловие

Привет, Хабр! Данная задача возникла у меня с проблемой, которая заключалась в создании робота для авторизации в Instagram, который бы делал за меня лайки. Всю задачу не напишу, напишу только часть реализации в виде настройки необходимого инструментария на удаленном сервере.

WEB — тестирование — это объемная и неоднозначная сфера, которая может заключаться в решении задач не только в плане тестирования WEB — приложений, но и, к примеру, в плане построения парсеров, роботов IoT и ботов работы с социальными сетями и все это используя только JavaScript!

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

Описание задачи в двух словах

Какую задачу мы ставим, чтобы решить при помощи тестирования? Всего-то нужно, чтобы какая-то программа открывала браузер и там автоматически кликала ссылки, вбивала тексты и показывала, что получится или возвращала параметр результата, который нам нужен. И все это нужно сделать на Linux — дистрибутиве Ubuntu 16.04, у которого нет GUI, т.е. у нас только консоль и запустить привычный браузер, как на полноценном компьютере не получится.

Что нужно для решения тестирования без GUI?

Все, что нужно для современного, «монопольного» тестирования на JavaScript:

Установка на сервер

Напишем шаги для последовательной установки всех компонентов для тестирования.

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

1). Установка cromium-browser. Перед установкой chromium-browser надо будет установить все необходимые для него зависимости, поэтому надо будет выполнить ряд действий.
Устанавливаем зависимости:

Если у нас были первые попытки установки, но помещали отсутствие зависимостей, то будет хорошо, если удалить загруженные файлы в /var/cache/apt/archives запуском команды:

Теперь устанавливаем сам cromium-browser:

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

2). Установка nodejs. Как установить Node.js и все методы установки подробно описано тут.

Один из самых простых методов установки:

Есть вероятность, что данным методом установится старая стабильная версия v4.2.6 из репозитория Ubuntu, под которым этот пример тестирования не проверен. Для стабильной работы оптимально, если установить версию 7 или выше методом PPA или NVM

Также потребуется и менеджер пакетов, посредством которого надо будет установить chromedriver и nightwatch :

Они нужны будут нам обработать тесты на JavaScript из Node.js.

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

3). Установка chromedriver. Этот драйвер выполняет роль WebDriver’а, предоставляющего API, к примеру, чтобы иметь возможность кликать на ссылки и вбивать тексты в текстовые поля и формы, для этого мы и будем использовать Chromedriver. Для установки chromedriver выполняем команду:

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

4). Установка nightwatch. Nightwatch.js — это библиотека для написания и запуска автотестов на JavaScript:

Схема работы тестирования

Коротко вся схема выглядит таким образом, что тесты на Nightwatch.js отправляют запросы на Chromedriver, а Chromedriver обращается к Chrome Browser для исполнения тестов(заполнение полей форм и нажатие на ссылки):

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Настройка и запуск первого теста

Конфигурационный файл Nightwatch.js умолчанию находится в папке node_modules/nightwatch/bin и настройки берутся по умолчанию оттуда и для того, чтобы задать наши пользовательские настройки для Nightwatch.js нужно создать файл nightwatch.json в корне проекта и прописать туда всё необходимое, чтобы Chromedriver использовался напрямую (без Selenium и других сторонних вещей) и Chromium запускался в «headless» режиме:

Нужно обратить внимание на строку с globals.js. Внутри этого файла можно задать глобальный контекст для всех тестов. Пропишем туда, чтобы Chromedriver стартовал перед запуском всех тестов и прибивался в конце:

Теперь необходимо написать любой тест для проверки работоспособности системы тестирования. К примеру, нужно открыть google.com, поискать что-нибудь и проверить результаты поиска. Конечно, Nightwatch.js API предоставляет ещё кучу всяких методов для всевозможных проверок, но для начала нам хватит:

Запускаем через консоль по команде:

Замечание. Во первых, если Node.js установлен через nvm, то надо активировать сессию через команду:

во вторых, для запуска теста необходимо создать в корне проекта package.json с данными проекта, а в виде запускаемого фала надо указать google.js через команду:

Далее уже выполняем команду запуска нашего теста:

Результатом выше изложенного кода в файлах будет результат в консоли:

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Т.е., мы заходим на главную сайта Google, вбиваем в поиск словосочетание «Блог WebSofter!» и в итоге сравнивается адрес нашего блога на наличие в определенных тегах на странице результата поиска.

Скачать рабочий пример из этой статьи можно по ссылке.

Заключение

Первоначально Nightwatch.js был ориентирован на работу с Selenium. Но сегодня она умеет работать с chromedriver напрямую и необходимость в Selenium тем более в PhantomJS отпадает, хотя есть возможность с ними интегрировать.

Осторожно! Безголовый режим Chrome доступен на Mac и Linux в v59. Поддержка Windows входит в Chrome v60. Чтобы проверить, какая версия Chrome у вас есть, откройте

Безголовый Chrome поставляется в версии Chrome 59. Это способ запуска браузера Chrome в безголовой среде, т.е. в консоли без GUI. Подобным образом работал PhantomJS. Chrome привносит в командную строку все современные функции веб-платформы, предоставляемые Chromium и движком Blink.

Почему это полезно?

Безголовый браузер — отличный инструмент для автоматического тестирования и серверных сред, где вам не нужна видимая оболочка пользовательского интерфейса. Например, вы можете выполнить некоторые тесты на реальной веб-странице, создать PDF-файл или просто проверить, как браузер отображает URL-адрес. Дополнительно можно узнать по ссылке

Источник

🦉 Использование фреймворка Nightwatch.js для автоматизации тестирования

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

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

Что такое Nightwatch.js?

Nightwatch.js – написанный на Node.js открытый инструментарий, направленный на предоставление полноценного сквозного (end-to-end) тестирования веб-приложений, браузерных приложений и веб-сайтов с помощью Selenium и JavaScript. Он предоставляет несколько команд и утверждений для выполнения операций с элементами DOM.

Nightwatch.js использует API W3C WebDriver или Selenium WebDriver, и упрощает написание сквозных автоматических тестов в Node.js, а также легко настраивается для непрерывной интеграции.

Почему Nightwatch.js так популярен?

Основная цель Nightwatch.js – создание единого интегрированного решения для тестирования приложений. Поскольку фреймворк написан на Node.js, у него есть некоторые весомые преимущества перед любым другим инструментом Selenium.

Автоматизированное браузерное тестирование на базе Nightwatch.js устраняет фактор зависимости от стороннего программного обеспечения, что повышает целостность данных между различными системными компонентами.

Nightwatch.js предоставляет следующие возможности из коробки:

Помимо перечисленных выше функций, Nightwatch.js популярен благодаря чистому и простому синтаксису, упрощающему быстрое и эффективное написание тестов с использованием только CSS-селекторов Node.js и XPath локатора в Selenium.

Принцип работы Nightwatch.js

Nightwatch обменивается данными посредством RESTful API, который определяется W3C WebDriver API. Ему нужен RESTful HTTP API и сервер Selenium JavaScript WebDriver.

Для выполнения операции, будь то команда или утверждение, Nightwatch обычно требуется отправить минимум два запроса:

Установка Nightwatch.js

Есть некоторые базовые условия, необходимые для начала работы с Nightwatch.js:

Чтобы инсталлировать последнюю версию инструментария, выполните следующую команду (здесь ‘g’ используется для глобальной установки):

Настройка Nightwatch.js

В конфигурационном файле объявить конкретные детали: среды тестирования, специфические настройки Selenium и т.д. Примерно выглядит файл nightwatch.json для тестирования с помощью Selenium и JavaScript.

Давайте подробнее рассмотрим его структуру:

Запуск первого скрипта на локальном Selenium WebDriver

Наш тестовый сценарий будет искать Nightwatch в Google, а затем проверит документацию nightwatch.js на веб-сайте.

Файл nightwatch.json (и глобальный файл модуля nightwatch.globals.js ) можно редактировать, но он должен выглядеть примерно так:

Далее нужно выполнить тестирование Nightwatch из базовой директории проекта с помощью команды:

Эта команда проверяет тесты и зависимости, а затем выполняет тестовый набор, который открывает в Chrome заданную строку поиска.

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Параллельное тестирование на локальном Selenium WebDriver

Второй тест будет искать Node.js в Google и проверит документацию Node.js.

Оба теста выполнятся одновременно в двух разных браузерах Chrome.

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Тестовое покрытие

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

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

Затраты на локальную инфраструктуру

Выполнение определенных автоматических тестов и локальная настройка Selenium всегда сопровождается затратами на инфраструктуру.

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

Почему облачный Selenium Grid – хороший выбор?

Облачная инфраструктура поможет получить доступ к сотням комбинаций браузеров и операционных систем, размещенных на серверах провайдера. Вы избавитесь от хлопот по обслуживанию и сможете запустить тест с нулевым временем простоя. Еще одно преимущество облачного тестирования – уже настроенная с помощью фреймворков адаптивная среда, в которой можно выполнять тесты с использованием любой структуры в соответствии с требованиями.

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

Какой Selenium Grid выбрать?

200 000 компаний по всему миру доверяют LambdaTest как надежному онлайн-провайдеру Selenium Grid. Сервис позволяет выполнить автоматизированное тестирование более чем 2000 реальных браузеров для мобильных и настольных компьютеров.

Облачный Selenium Grid позволяет выполнять скрипты автоматизации тестирования в Selenium на различных платформах программирования: Java, JavaScript, PHP, Python, Ruby, C # и других языках, которые обеспечивают привязку к Selenium.

Вы также можете выбрать интеграцию с различными инструментами CI/CD (Jenkins, Travis CI и другими) для непрерывного тестирования в DevOps.

Благодаря открытому Selenium API нетрудно извлечь отчеты о выполнении скрипта Selenium через LambdaTest. Давайте попробуем реализовать приведенный выше пример, используя удаленный WebDriver для LambdaTest Selenium Grid.

Выполнение скрипта на удаленном Selenium Grid

Мы можем использовать существующий локальный тестовый скрипт и файлы конфигурации, изменив всего несколько строк кода. Для начала нужно будет вызвать удаленный Selenium Webdriver вместо локального.

Затем определим среду браузера для выполнения тестов, передав данные в LambdaTest Selenium Grid через требуемый класс возможностей. Он предоставляет генератор возможностей (Desired Capabilities Generator) для выбора и передачи сведений о браузере и спецификаций среды с различными комбинациями.

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Класс desiredCapabilities в конфигурационном файле nightwatch.json для тестирования Nightwatch будет выглядеть примерно так:

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

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Мы также можем получить ключ доступа, имя пользователя и сведения о хабе в разделе Automation.

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Стоит выполнить тесты в различных браузерах и операционных системах: мы использовали Microsoft Edge, Mozilla Firefox и Apple Safari на Windows 10 и OS X 10.13.

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

Осталось выполнить тесты из базовой директории проекта с помощью следующей команды:

Она выполняет проверку тестов и зависимостей, а затем запускает тесты и открывает браузеры Edge, Firefox и Safari в указанных средах и вводит строку поиска. На скриншоте показан код Nightwatch, работающий в LambdaTest Selenium Grid.

nightwatch js что это. Смотреть фото nightwatch js что это. Смотреть картинку nightwatch js что это. Картинка про nightwatch js что это. Фото nightwatch js что это

Скрипт запускается параллельно в Mozilla Firefox, Safari, Google Chrome и Edge, а результаты отображаются в командной строке и подробно фиксируются на интерактивной панели автоматизации LambdaTest. Панель инструментов LambdaTest позволяет просматривать логи, скриншоты и видеозаписи всех выполненных на Selenium тестов.

Заключение

Nightwatch.js позволяет быстро автоматизировать набор кроссбраузерных тестов с минимальной настройкой. Лучшая предоставляемая фреймворком функция – эффективное параллельное тестирование кейсов, результаты которого можно просмотреть в терминале или сохранить в указанной выходной папке. На начальном этапе внедрение нового подхода может стать проблемой, но облачные платформы упрощают процесс перехода и позволяют использовать все преимущества автоматизированного тестирования на Selenium без лишних накладных расходов.

Если вы только осваиваете специальность, обратите внимание на Факультет Тестирования ПО онлайн-академии Geekbrains. Прохождение учебного курса позволит быстро войти в профессию тестировщика и найти работу, которая принесет достойный заработок и массу удовольствия.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *