Простой способ начать автоматическое тестирование сайта

1656668652 prostoj sposob nachat avtomaticheskoe testirovanie sajta

Адам Келли

1*pCkwM6MSt-hyDEDaAifufg

Многократное выполнение одних и тех же тестов в Chrome, Safari и Firefox может занять много времени и утомить.

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

Nightwatch подключается к WebDriver (например, Selenium). Он работает через API REST. Например, инициализация:

1*VU8YPJRqwqwcxywKFP4KuA
Как Nightwatch подключается к Selenium

Требования

У вас должна быть установлена ​​Java. Вы можете проверить это, запустив

$ java -version

в вашем терминале. Если его не установлено, установите его.

Вы должны иметь достаточно свежую версию Safari, версию 10 или более позднюю. Чтобы использовать Safari, необходимо также включить меню разработчика и активировать Разрешить удаленную автоматизацию вариант.

Наконец вы также должны иметь Node.js.

Настраивая

Примечание: предполагается, что сайт использует node.js. Если нет, вам также придется инициализировать его с помощью a package.json файл.

Установка

Nightwatch.js это более простой способ писать тесты, которые выполняются с помощью Selenium.

Чтобы установить его, cd в ваш проект, а затем установите модуль из npm в ваши зависимости от разработчика:

$ npm install --save-dev nightwatch

Теперь необходимо установить Selenium. Самый простой способ сделать это с помощью другого модуля npm, selenium-server:

$ npm install --save-dev selenium-server

Мы хотим протестировать Chrome, Safari и Firefox, поэтому нам также нужно установить драйверы. Драйвер – это то, что используется Selenium для управления браузерами. Драйвер Safari встроен в MacOS, а драйверы Chrome и Firefox можно установить с помощью npm:

$ npm install --save-dev chromedriver geckodriver

Настройка

Nightwatch настраивается с помощью конфигурационного файла. Конфигурационный файл – это обычный файл JavaScript, который я буду называть nightwatch.conf.js. Этот файл можно поместить в папку, например tests.

Скопируйте и вставьте эту базовую конфигурацию в свой nightwatch.conf.js файл:

Теперь у вас настроена система автоматизированного тестирования и вы можете начать писать тесты!

Что можно/надо тестировать?

Есть два типа тестирования, которые можно выполнить с помощью этой настройки:

  1. Функциональное тестирование
  2. Регрессионное тестирование

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

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

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

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

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

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

Написание контрольных работ

Добро пожаловать в веселую часть тестирования. А, просто шучу. Это все весело.

В любом случае тесты в Nightwatch пишутся с помощью обычного модуля JavaScript. В nightwatch.conf.js файл, который мы указали для поиска tests/features для тестов.

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

Давайте создадим очень простой тест: мы проверим, есть ли название www.bing.com Bing. Почему вы вообще обратились к Bing – это более серьезная проблема, которую нельзя рассмотреть в этой статье.

Создайте новый файл в tests/features звонил bing.test.jsсодержащий такой код:

Теперь тест создан!

здесь, Title is Bing это название теста. Это отображается при выполнении тестов. .verify используется для фактического исполнения теста. .waitForElementVisable ожидает, что селектор CSS или селектор Xpath укажет, какие элементы вы имеете в виду.

Вы можете иметь более одного теста в одном файле и хорошо сохранять связанные тесты в одном файле.

Чтобы узнать больше о создании тестов, документация Nightwatch действительно хороша. Если вы хотите знать, как что-нибудь сделать, сначала проверьте это. Также ознакомьтесь с разделом «Выше и далее» данного руководства.

Выполнение тестов

Чтобы запустить имеющиеся у вас тесты, перейдите к package.json файл. Добавьте следующее:

“scripts”: {  “nightwatch”: “nightwatch -c tests/nightwatch.conf.js -e chrome,firefox,safari”}

Это запустит ваши тесты в Chrome, Firefox и Safari.

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

$ npm run nightwatch

Если у вас все еще есть тот же тест, что и выше, ваш результат должен выглядеть следующим образом:

1*osMTcdZ_LyV0LXFqem2d6A
Выход набора тестов

Если вы получаете ошибки, проверьте Common Issues раздел этой статьи или поищите ошибку в Google.

И Вот так, теперь вы настроили и использовали автоматическое тестирование браузера! ?

Над и за пределами

Лучшие методы и многое другое. Подробные пособия

Есть много хороших ресурсов, но вот некоторые из моих любимых:

Тестирование с помощью Edge Browser

Вы можете проверить Edge с помощью Microsoft WebDriver. Он совместим с Windows 10 и более поздними версиями.

Загрузив двоичный файл, перейдите к своему nightwatch.conf.js файл и под "webdriver.gecko.driver" поставить

"webdriver.edge.driver" : "location/of/binary/MicrosoftWebDriver.exe"

Затем перейдите к test_settings и добавьте другой объект под safari:

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

Это выходит за рамки настоящей статьи, но вы можете проверить:

Общие вопросы

Nightwatch не может найти Selenium

Если nightwatch не может найти селен, попробуйте запустить конфигурационный файл с помощью node. Если ваш конфигурационный файл, nightwatch.conf.js находится в каталоге testsзапустить:

$ node tests/nightwatch.conf.js

Safari может предупредить вас, что его контролируют. Просто позвольте. Если тест не удался или прошло время ожидания, запустите его еще раз.

Safari не закрывается

Просто закройте его вручную.

Чтобы просматривать этот веб-контент, вам нужно установить Java Runtime Environment

Я сказал, что вам нужно установить Java, поэтому установите его.

Ошибка — порт 4444 занят, выберите свободный порт и укажите его с помощью параметра -port

Это означает, что что-то использует порт 4444. Вы можете остановить этот процесс или изменить порт.

Чтобы увидеть, какой процесс использует порт на Mac, воспользуйтесь командой

$ lsof -n -i4TCP:4444 | grep LISTEN

Затем вы можете убить этот процесс.

Если вы не хотите останавливать этот процесс, перейдите к nightwatch.conf.js файл и в seleniumизменить port на неиспользованный порт.

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

Ваш адрес email не будет опубликован.