Статьи

Приемочное тестирование в JavaScript с Cucumber.js & WebdriverIO

  1. Вызвать WebdriverIO
  2. Pro tip

Когда дело доходит до тестирования вашего JS-кода, крайне важно, чтобы вы включали приемочные тесты помимо модульных тестов.
Это где инструменты, такие как Селен или же PhantomJS вступают в игру. Эти инструменты помогают нам выполнять тесты с нашим JS-кодом в реальном браузере. Если мы положим
прилагая немного усилий, мы можем запустить их на нескольких устройствах или платформах, используя такие сервисы, как Соус Лаборатории или же BrowserStack ,

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

Здесь мы обсудим, как настроить Cucumber.js с WebdriverIO. Если вы новичок в Cucumber.js или не слышали об этом.
Я хотел бы предложить прочитать о Cucumber.js Вот. Вы можете не найти много информации об этом, так как она немного распространена (возможно, вы захотите использовать свои навыки работы с Google Здесь мы обсудим, как настроить Cucumber ).

При использовании Cucumber.js для тестирования вы в основном пишете файлы объектов для тестирования нескольких сценариев. Например, ниже приведен файл объектов:

# title.feature Добавление: проверка названия. Я должен иметь возможность перейти на веб-сайт и проверить его заголовок. Сценарий: получить заголовок веб-страницы. Если я перехожу на веб-сайт "http://www.google.com", тогда я ожидаю заголовок страницы "Google"

Если вы заметили, синтаксис довольно понятен и читабелен. Вы, должно быть, думаете, правда ... это все? Ну да и нет.
Приведенный выше код будет служить точкой входа в ваш тест, но WebdriverIO (организатор теста) не знает, что означают эти строки. Здесь вступают определения шагов.
Определения шагов, как следует из названия, - это код JS (который понимает бегун) для каждого шага в тесте. Для приведенного выше примера ниже приведены определения шагов:

// stepdefinitions.js const allow = require ('chai'). ожидаем; module.exports = function () {this.Given (/ ^ Я захожу на сайт "([^"] *) "$ /, (url) => {browser.url (url);}); this.Then (/ ^ Я ожидаю заголовок страницы "([^"] *) "$ /, (title) => {Ожидайте (browser.getTitle ()). To.be.eql (title);}); }

Здесь вы заметите, что для каждого оператора Given и Then у нас есть соответствующие определения JS. Эти определения можно использовать и в других файлах функций или тестовых файлов.

Чтобы прояснить ситуацию, все ваши тестовые файлы (или файлы компонентов .feature) и файлы определений шагов (* .js) являются отдельными.

Теперь у нас есть тестовые файлы и определения шагов, это
время связать их, используя WebdriverIO, который соберет все эти файлы и запустит его для нас.

Структура папок выглядит примерно так:

Структура папок выглядит примерно так:

Прежде чем начать, давайте сначала установим WebdriverIO и Cucumber deps.

[sudo] npm i -g WebdriverIO [sudo] npm i -g wdio-cucumber-framework

Чтобы запустить браузер для тестирования, нам нужно установить и запустить Selenium. Селен является сердцем тестирования автоматизации браузера, а WebdriverIO обеспечивает привязку для Selenium в Node.js.

[sudo] нпм я селен-автономный @ последние -g

После того как все они установлены, перейдите в каталог, где находятся ваши файлы компонентов и определения шагов - при условии, что у нас есть
их в ~ / имя_проекта / тестовый каталог. Давай продолжим.

Вызвать WebdriverIO

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

wdio

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

При появлении запроса выберите следующие параметры:

Где вы хотите выполнить свои тесты? На моей локальной машине Какой фреймворк вы хотите использовать? огурец Должен ли я установить адаптер рамки для вас? Нет # мы уже установили адаптер Где находятся ваши файлы функций? (./features/**/*.feature) # это глобус, указывающий на папку, в которой находятся все ваши функции (тестовые файлы). Где находятся ваши определения шагов? (./features/step-definitions) # Ваша папка с определениями шагов Какой репортер вы хотите использовать? точка - https://github.com/webdriverio/wdio-dot-reporter # default reporter Должен ли я установить библиотеку reporter для вас? Да. Хотите добавить службу в настройку теста? Selenium Standalone Уровень подробности ведения журнала без звука В каком каталоге должны сохраняться снимки экрана при сбое команды? ./errorShots/ Что такое базовый URL? http: // localhost # Если вы не указали полный URL-адрес в тестах

После ответа на все вопросы это будет выглядеть так:

После ответа на все вопросы это будет выглядеть так:

Как только это будет сделано, вы можете установить библиотеку утверждений по своему выбору. я использую Chai Вот. Установите и сохраните Чай, используя

нпм я -сэйв-дев чай

Если вы довольны конфигурацией, запустите тесты (в текущем каталоге), используя:

селен-автономная установка # установить селен селен-автономная установка # запустить селен wdio.conf.js

Если все прошло по плану, вы увидите:

Если все прошло по плану, вы увидите:

Pro tip

Вместо того, чтобы запускать Selenium отдельно, есть плагин, который является частью WebdriverIO. Это запустит Selenium и остановит Selenium
согласно тестам. Для этого сначала установите плагин:

npm я wdio-селен-автономный сервис --save-dev

И в файле wdio.conf.js добавьте следующее как родительский ключ

exports.config = {... services: ['selenium-standalone'], ...}

Вот и все, вы можете попробовать снова запустить wdio wdio.conf.js, не запуская автономный селен. Пожалуйста, убедитесь, что селен не работает в фоновом режиме.

Надеюсь, это кому-нибудь поможет.

В следующем уроке мы обсудим, как автоматизировать весь процесс, используя Глоток ,

Связанные руководства, которые могут вас заинтересовать

Похожие

Какие устройства USB-C вы можете подключить к новому iPad Pro 2018?
Apple, iPad Pro 2018 уже здесь, предлагая поклонникам планшетов новое высококлассное устройство для предстоящего праздничного ажиотажа. Это великолепный планшет, с потрясающим экраном и кучей энергии, но как вы можете максимально использовать одну из его ключевых функций, порт USB-C? В этом руководстве мы расскажем, как использовать новые устройства
6 вещей, которые нужно знать о Playstation VR
В дополнение к Oculus Rift и HTC Vive сегодня на рынке виртуальной реальности появляется третий игрок, который пытается бросить высокие оценки: PlayStation VR , Эта гарнитура от Sony работает с PlayStation 4
Как заблокировать всплывающие окна с помощью Google Chrome
Вы устали от Internet Explorer, поэтому вы решили попробовать Chrome, и вы были в восторге. Разработанная Google навигационная программа является быстрой, очень настраиваемой, а ее «интеллектуальная» адресная строка может сделать навигацию очень быстрой и удобной. Однако существует небольшая и большая проблема, которую не удалось решить даже этому браузеру: как это случилось с Internet Explorer, на многих веб-сайтах вы по-прежнему видите рекламные окна, которые открываются автоматически (так
Как ускорить Chrome для Android
Так происходит все время. Все идет гладко и быстро, когда вы впервые начинаете использовать смартфон. Но потом все начинает замедляться со временем. Самое неприятное замедление? Когда Хром браузер начинает вяло. Если вы попали на эту статью, скорее всего, вы оказались в той же лодке, что и я, и ищете
Q & A: встроенный блокировщик рекламы в Google Chrome
... amp-a-vstroennyj-blokirovsik-reklamy-v-google-chrome-1.jpg" alt="Мало кто увлекается интернет-рекламой"> Технология блокировки рекламы теперь пошла еще дальше: Google Chrome настроен на начать блокировать рекламу автоматически , Не все это, заметьте. Что получит отбивная? И все ли реклама одинаково плоха? Давайте исследуем. Обычно блокировщики рекламы - это расширения
Как создать сайт: пошаговое руководство
Создать сайт очень просто в 2019 году. Вы не должны быть техническим специалистом или программистом. Следуйте правильному методу. Выберите правильные платформы. Используйте правильные инструменты. У вас будет 100% хорошо. Когда я начал свой онлайн-бизнес в 2004 году, у меня не было никаких знаний о создании веб-сайтов. Я не арендовал создателя сайтов до одиннадцати лет спустя. И я хорошо справился. Сегодня - у нас есть инновационные инструменты

Комментарии

Можете ли вы жить без Javascript?
Можете ли вы жить без Javascript? Некоторые люди, вероятно, не могут, но те, кто может, обнаружат, что его отключение заметно ускорит Chrome. Не говоря уже о том, что выполнение этого также избавит от определенных объявлений и других элементов, которые некоторые люди могут найти раздражающими. Просто убедитесь, что вы понимаете, что происходит, если вы хотите пойти по этому пути.
Однако, как и в случае с iPad Pro, возникает вопрос: нужна ли вам в Chromebook мощность 8-го поколения Core i5 или i7?
Однако, как и в случае с iPad Pro, возникает вопрос: нужна ли вам в Chromebook мощность 8-го поколения Core i5 или i7? Не поймите меня неправильно - анимация Pixel Slate и плавная прокрутка выглядят так же мощно, как MacBook. Тем не менее, Core i5-8500Y немного дорог для Chromebook, не говоря уже о планшете с Chrome OS. Я подозреваю, что модель Core m3 за $ 799 будет достаточно для большинства людей, если не модель Celeron за $ 599. Тысяча баксов - это много, что можно потерять на планшете, особенно

О все?
На моей локальной машине Какой фреймворк вы хотите использовать?
Огурец Должен ли я установить адаптер рамки для вас?
Нет # мы уже установили адаптер Где находятся ваши файлы функций?
Где находятся ваши определения шагов?
Features/step-definitions) # Ваша папка с определениями шагов Какой репортер вы хотите использовать?
Com/webdriverio/wdio-dot-reporter # default reporter Должен ли я установить библиотеку reporter для вас?
Хотите добавить службу в настройку теста?
Selenium Standalone Уровень подробности ведения журнала без звука В каком каталоге должны сохраняться снимки экрана при сбое команды?
ErrorShots/ Что такое базовый URL?

Новости

Где купить гибкий штатив для фотоаппарата

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

Походы пешком по Украине

Осуществление пеших походов по своей родной стране является одним из видов познания её достопримечательностей и прекрасных мест. При пеших походах все детали красоты и яркости природы своей страны

Ржачные поздравления с днем рождения
Желаю во всем всегда успевать И все делать лишь на 5. Желаю быть счастливой на свете этом, И чтоб жизнь казалась только летом. Пускай все всегда выходит И все твои мечты реализуются. *** Открыв конверт,

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

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

Значение фамилии порошенко
В 1956 году Алексей Вальцман женился на Евгении Сергеевне Порошенко и при этом изменил фамилию с Вальцман на Порошенко. В 1974 году - занял должность директора Бендерского исследовательского экспериментально-ремонтного

Значение имени артем
Уже известно и доказано, что значение имени артем влияет на судьбу его обладателя. Попытки понять и объяснить влияние имени на судьбу и характер человека начались в прошлом, продолжаются и в настоящее

Сонник толкование снов к чему
Интересные и серые, пропитанные отголосками прошедшего дня или, напротив, несущие в себе некие знамения, переносящие нас в далекое прошлое или рисующие в сознании картины будущего,

Сонник толкование снов миллера
Если к толкованиям сновидений применимо понятие классики, то у нее есть свое имя — Густав Хиндман Миллер, американский психолог, живший в конце XIX столетия. В натуре этого любознательного и умного человека,

Само популярное видео
Предложили мне высокооплачиваемую и интересную работу в Киеве. Согласился сразу, грех такими предложениями в наше время разбрасываться. Работа работой, а образовалась проблема - жильё. По своему опыту