Статьи

Один быстрый способ создать свой тестовый скрипт Cucumber.js

  1. Шаг 1. Установите CukeTest
  2. Шаг 2. Создать проект
  3. Шаг 3. Создание сценария
  4. Шаг 4. Генерация кода
  5. Шаг 5. Реализация кода
  6. Шаг 6. Запустите скрипт

Если вы хорошо знаете Node.js и хотите написать автоматизацию тестирования BDD, вы, вероятно, сейчас читаете соответствующую статью.

Как мы знаем Node.js + Cucumber.js Можно создать рабочий тестовый скрипт. Инженеру по автоматизации необходимо знать детали формата gherkin, чтобы создать файл объектов, который соответствует формату gherkin, а также получить советы по созданию соответствующих определений шагов и обновить скрипт, чтобы поддерживать эти соответствия при изменении шагов.

Здесь я хотел бы представить вам инструмент разработки, который облегчает жизнь разработчикам Cucumber.js. CukeTest это инструмент для Windows, который специально разработан для создания сценариев Cucumber.js, и вам не нужно выполнять всю работу по поддержанию соответствия между файлами кода и объектов. CukeTest может генерировать код для шагов, которые вы создали, а также найти шаг с определением одного шага.

Вот простой пример тестирования веб-интерфейса, чтобы показать, как это сделать. Есть 6 шагов для создания скрипта:

Шаг 1. Установите CukeTest

Сначала установите CukeTest из CukeTest Веб-сайт. Вы можете загрузить и установить настольную версию с этого сайта или установить версию из Магазина Windows из Магазин Microsoft если вы используете Windows 10.

Шаг 2. Создать проект

Затем нажмите «Новый проект», чтобы создать проект, назовите его « bing-search », выберите «Веб-шаблон» и папку для размещения этого проекта, как показано в диалоговом окне ниже:

С шаблоном «Web» у вас будет настроен файл функций, код и пакеты npm для веб-тестирования. Например, значение тайм-аута по умолчанию для cucumber.js составляет 5 секунд, и загрузка некоторых веб-страниц может легко превысить это время ожидания. Таким образом, в этом веб-шаблоне он устанавливает значение тайм-аута равным 60 секундам (в hooks.js):

// установить время ожидания шага по умолчанию setDefaultTimeout (60 * 1000);

CukeTest имеет два режима для редактирования файла объектов: визуальный режим и текстовый режим. В визуальном режиме вы можете дважды щелкнуть любые поля, чтобы начать редактирование, например, заголовок объекта, описание, текст шага и т. Д. При редактировании шага вы также можете выбрать любое из ключевых слов в раскрывающемся списке, чтобы выполнить утверждение. осмысленный. При этом вам не нужно запоминать все доступные ключевые слова. Когда вы закончите редактирование одного поля, вы можете нажать клавишу Tab или Shift-Tab, чтобы перейти вперед или назад к другим полям. На следующем рисунке показан пользовательский интерфейс редактирования:

Шаг 3. Создание сценария

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

Функция: поиск Bing Это пример функции для тестирования поисковой системы. Сценарий: поиск чего-либо из bing. При переходе на веб-сайт «https://www.bing.com» при вводе ключевого слова «Mars» нажмите кнопку «Поиск». Результат поиска должен содержать "NASA"

Чтобы скопировать вышеупомянутое содержимое в свой файл объектов, вы можете открыть файл объектов, нажать кнопку «Текст» на панели инструментов, чтобы переключиться на текстовую модель, а затем заменить весь контент текстом выше. Затем вы можете вернуться к визуальной модели, нажав кнопку «Визуальный». В CukeTest вы можете редактировать контент в одном из этих двух режимов и переключаться между ними, что дает вам огромную гибкость в редактировании файлов Gherkin.

Шаг 4. Генерация кода

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

В CukeTest эта кнопка будет отображаться серым цветом для шага без соответствующего определения шага. После определения соответствующего шага кнопка изменит свой цвет, чтобы указать новый статус: оранжевый, если есть соответствующие определения шага и определение не реализовано, или зеленый, если определение соответствующего шага реализовано. Как мы знаем, в Cucumber.js заглушка невыполненного кода по умолчанию возвращает строку «pending», которая является кодом, сгенерированным по умолчанию.

В CukeTest вы можете не только генерировать код и переходить к нему, но и переходить от кода определения шага к соответствующему шагу:

В CukeTest вы можете не только генерировать код и переходить к нему, но и переходить от кода определения шага к соответствующему шагу:

Шаг 5. Реализация кода

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

const {Дано, Когда, Тогда} = требуют ('огурец'); const assert = require ('assert'); const {driver} = require ('../ support / web_driver'); Дано (/ ^ перейти к веб-сайту "([^"] *) "$ /, асинхронная функция (url) {return driver.get (url);}); Когда (/ ^ ввод ключевого слова" ([^ "] * ) "$ /, асинхронная функция (ключевое слово) {return driver.findElement ({id:" sb_form_q "}). sendKeys (keyword);}); Затем (/ ^ нажмите кнопку поиска $ /, async function () {return driver.findElement ({id: "sb_form_go"}). Click ();}); Тогда (/ ^ результат поиска должен содержать "([^"] *) "$ /, асинхронная функция (ключевое слово) {await driver.sleep (1000); пусть result = await driver.findElement ({id:" b_results "}) .getText (); вернуть assert.ok (result.includes (ключевое слово));});

По сравнению с автоматически сгенерированным кодом измененная часть является кодом в функциях «Задано», «Когда» и «Затем».

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

Теперь вы заканчиваете создание тестового скрипта. Осталось что-нибудь сделать для запуска этого скрипта ...?

Вы, наверное, подумали о правильном, который должен загружать зависимые пакеты npm. Для запуска этого скрипта необходимо установить пакет selenium-webdriver, а также некоторые другие пакеты драйверов браузера. При создании проекта из шаблона «Web» ваш package.json был предварительно заполнен популярными пакетами следующим образом:

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

Если вам не нужны все эти драйверы браузера, вы можете обновить package.json, удалив соответствующие записи из package.json. Например, если вы хотите запустить тестовый браузер Chrome, вы можете удалить «geckodriver» для FireFox или «iedriver» для Internet Explorer. Помните, что если вы удалите эти два пакета, вы также должны обновить файл web_driver.js в своем проекте и удалить соответствующий оператор «require», чтобы избежать ошибки времени выполнения.

Чтобы установить пакеты, вам просто нужно открыть командную строку, изменить каталог на эту папку (это «bing-search») и запустить «npm install» из командной строки.

Еще одна вещь, которую вы можете сделать в CukeTest - это проверить скрипт перед запуском. Он проверит все аспекты сценария Cucumber.js, включая синтаксическую ошибку JS, неосуществленные шаги, несоответствие между шагами и определениями шагов. Это сэкономит разработчикам время по сравнению с запуском скрипта и последующим поиском ошибок. Например, на рисунке ниже я намеренно создаю ошибку в скрипте, и она показывает следующий экран после того, как я нажимаю «Проверить проект». Он показывает предупреждающее сообщение, и, нажав на предупреждающее сообщение, откроется соответствующее местоположение файла для вас.

Он показывает предупреждающее сообщение, и, нажав на предупреждающее сообщение, откроется соответствующее местоположение файла для вас

Шаг 6. Запустите скрипт

Теперь вы действительно можете запустить свой скрипт. Это самый простой шаг: вы просто нажимаете кнопку «Запустить проект» на панели инструментов и все. «Run Project» - кнопка с двойной стрелкой. Он запустит браузер, произведет поиск по ключевому слову «Марс» и проверит, содержит ли результат поиска ключевое слово «НАСА». Если этого не произойдет, будет отображаться ошибка в окне вывода и в отчете.

Запустив проект, вы можете получить html отчет, который показывает, сколько функций или сценариев успешно выполнено в этом прогоне:

Запустив проект, вы можете получить html отчет, который показывает, сколько функций или сценариев успешно выполнено в этом прогоне:

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

А также он сделает снимок экрана до конца каждого сценария, как показано на следующем рисунке

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

Снимок экрана - это возможность Selenium-webdriver, и вы можете настроить это поведение в своем коде. Например, вместо создания одного снимка экрана для каждого сценария, вы можете сделать снимок одного снимка экрана для каждого шага или для каждого неудачного шага. Этот отчет в формате html, поэтому его можно отправить по почте любому, кто хочет просмотреть отчет, или экспортировать его в виде файла PDF из CuteTest.

В CukeTest также можно захватывать видео во время пробного запуска.

Вы, вероятно, заметите, что есть несколько способов запустить тест, включая запуск проекта, запуск файла компонента, запуск одного сценария или настройку профиля проекта для запуска, который можно настроить для фильтра сценариев или форматов отчетов. Только запущенный проект показывает HTML-отчет. Для других, CukeTest покажет вам результат в панели «Вывод».

Node.js + Cucumber.js является отличным выбором для тестирования, поскольку он может полностью использовать существующие богатые библиотеки автоматизации тестирования для node.js. Например, для веб-сайтов есть «селен-веб-драйвер», «веб-драйвер», «wdio», «кукловод» и т. Д., Для RESTful API есть «полученный», «запрос», «аксиос» и т. Д. Для мобильных устройств, есть «appium», «macaca» и т. д. А с CukeTest создание тестового сценария BDD очень просто и интуитивно понятно. Не нужно запоминать детали синтаксиса Cucumber, чтобы создать рабочий скрипт.

Созданный сценарий CukeTest может выполняться на Node.js + Cucumber.js на платформах, отличных от Windows, например, Linux или Mac. Некоторое дальнейшее чтение о том, как создавать сценарии автоматизации с Node.js + Cucumber.js:

Похожие

2. Редактировать проект в редакторе
... шага с минимальными функциональными возможностями , будет доступен журнал версий EasyClient : 1) извлечение , 2) редактирование проекта с помощью редактора, 3) создание новой версии и"> Обратите внимание, что для ситуаций, когда вам нужно выполнить только три следующих простых шага с минимальными функциональными возможностями , будет доступен журнал версий EasyClient : 1) извлечение , 2) редактирование проекта с помощью редактора, 3) создание новой версии и
Vue.js Интервью Вопросы
Жизненный цикл каждого экземпляра Vue проходит серию этапов инициализации при его создании. - например, ему нужно настроить данные наблюдения, скомпилировать шаблон и создать необходимые привязки данных. Попутно он также вызовет некоторые хуки жизненного цикла, которые дают нам возможность выполнять пользовательскую логику. Например, созданный хук вызывается после создания экземпляра: new Vue ({data: {a: 1}, create: function () {// `this` указывает на экземпляр vm console.log ('a is: '+
Как установить приложения на Samsung Galaxy S6 (edge ​​+) / S5 / S4
Как установить приложения на Android , например, Samsung Galaxy S6 edge + напрямую? Статья покажет вам, как использовать профессиональный установщик приложений для Android - установщик приложений для Android, чтобы помочь вам решить вашу задачу простым, быстрым и пошаговым способом. Вы можете сначала загрузить на свой компьютер приложения, которые хотите установить на свой край + Galaxy S6. Это тот способ, который выберет большинство из нас, потому что загрузка приложения
Создайте сайт фотогалереи Joomla самостоятельно
... создать сайт галереи Joomla самостоятельно. В настоящее время количество шаблонов, разработанных для Joomla Галерея сайтов значительно увеличилась на рынке. Учитывая этот факт, я хотел бы поделиться с вами некоторым опытом создания сайта фотогалереи с нуля на основе версии 1.5. Цель этой статьи - помочь вам построить галерею Joomla версии 1.5 наиболее экономичным способом. Поэтому я предпочитаю
Галерея макетов | Поставщик шаблонов и расширений Joomla
Страница Галерея использует тип содержимого Галерея, чтобы узнать больше о типе содержимого, проверьте его →. Раздел содержимого на странице галереи загружается из модулей JA ACM, проверьте конфигурацию этих модулей в следующей инструкции. Создать модуль JA ACM В блок контента входят ведущие статьи (отображаются в слайдере), вступительные элементы и ссылки.
Настройка виртуальных хостов Apache в Debain 9 / Ubuntu 16.04 / LinuxMint 18
Виртуальный хостинг используется для размещения нескольких веб-сайтов на одном веб-сервере. Веб-сервер может быть чем-либо из HTTP-сервер Apache , Microsoft IIS , Lighttpd , openLiteSpeed и т. д. Это руководство
Создание виртуальных хостов на сервере WAMP
Этот простой пример демонстрирует, как быстро настроить и запустить виртуальные хосты на вашем сервере WAMP. Сервер Windows Apache MySQL PHP (WAMP) невероятно мощный. Он не только позволяет вам размещать веб-сайт с помощью самого гибкого в мире веб-сервера, но также позволяет делать это на вашем хосте Windows. Но не думайте, что из-за того, что вы находитесь на хосте Windows, вы теряете большую часть гибкости, найденной в Linux-эквиваленте. Фактически, большая часть набора
«Мы не ожидали, что это станет чем-то таким, каким стал НОК», - сказал Пейсон Кеннеди, которому се...
«Мы не ожидали, что это станет чем-то таким, каким стал НОК», - сказал Пейсон Кеннеди, которому сейчас 85 лет, во время недавнего интервью на просторной палубе его дома. «Мы ожидали, что это будет небольшая группа семьи и друзей, которая будет работать в гораздо меньших масштабах. Первые несколько лет у нас была только пузатая печь, и мы всю зиму сидели у этой печи, занимаясь ремеслами, чтобы продавать летом, и изготавливая юбки-распылители для продажи ». Справедливо сказать, что после
PCSX2 - установка и настройка эмулятора Playstation 2
PCSX2 - установка и настройка эмулятора Playstation 2 Обновлено: 15 ноября 2012 г. Позвольте мне начать с большой жирной оговорки: последний раз, когда я использовал игровую консоль, был период расцвета Commodore 64. Тем не менее, я внимательно отношусь к потребностям моих читателей, и один или несколько криков: как, черт возьми, я получаю мне эмулированные игры PSP2 на ПК? Поэтому я вмешался, чтобы помочь им. Эта статья покажет вам, как установить и настроить
Обзор ASUS Zenfone 3 Deluxe: игра с большими мальчиками
После более чем 6 месяцев ожидания нам, наконец, удалось поймать ASUS Zenfone 3 Deluxe. ZF3 Deluxe - это крем из всей линейки ZF3, обладающий цельнометаллическим дизайном, цельным корпусом и высококачественными внутренними деталями. Это первый настоящий флагман, когда-либо выпущенный тайваньским
Плата за проезд - виньетки - Чехия 2018 - Путеводитель
Наши южные соседи с 1 января 2018 года внесли изменения в карту дорог, за которые мы должны платить пошлину в виде виньетки. Помимо шоссе городские обходы исключены из сборов в 2017 году. Кроме того, в 2018 году еще 49 км автомобильных дорог были исключены из сборов. Чехи до сих пор не решили ввести электронную виньетку. Виньетки, доступные в этой стране, имеют традиционную форму наклейки на окна. Помните, что информация в этой статье относится к транспортным средствам весом до

Комментарии

Не можете найти подходящий плагин галереи для установки на свой сайт WordPress?
Не можете найти подходящий плагин галереи для установки на свой сайт WordPress? Плагин Unite Gallery - хороший вариант, когда нужно легко создавать чистые, красивые фото и видео галереи. Плагин поддерживает полностью адаптивный фреймворк, что значительно упрощает использование и просмотр ваших галерей с вашего компьютера или мобильного устройства. Функция масштабирования плагина довольно уникальна для плагинов галереи. Функция масштабирования также работает с сенсорными устройствами и
Готовы начать свой собственный бизнес?
Готовы начать свой собственный бизнес? Начните бесплатную 14-дневную пробную версию Shopify сегодня
Зачем вам нужен еще один пропущенный подарок, который вы с сожалением убрали на полку и думаете, что снова не получили то, что хотели?
Зачем вам нужен еще один пропущенный подарок, который вы с сожалением убрали на полку и думаете, что снова не получили то, что хотели? Ни один мужчина не выберет для тебя что-то лучшее, чем ты сам. Время перемен 8 марта - хорошая возможность для перемен. С приходом весны стоит больше сосредоточиться на себе. На свои ожидания, планы и мечты. Женский день должен стать движущей силой перемен, границей, отделяющей зимнюю версию вас - этой ленивой, а иногда даже
Так, как новый маленький спикер Google формируется против его большего родного брата и его претендента номер один?
Так, как новый маленький спикер Google формируется против его большего родного брата и его претендента номер один? Мы живем с этим уже неделю - вот что мы считаем. Google Home Mini: Дизайн В наши дни Google действительно вплетен в ткань, и он полностью покрывает верхнюю часть Home Mini. Как гигантская плетеная галька, Mini удается не выглядеть как кусок техники
64. Тем не менее, я внимательно отношусь к потребностям моих читателей, и один или несколько криков: как, черт возьми, я получаю мне эмулированные игры PSP2 на ПК?
64. Тем не менее, я внимательно отношусь к потребностям моих читателей, и один или несколько криков: как, черт возьми, я получаю мне эмулированные игры PSP2 на ПК? Поэтому я вмешался, чтобы помочь им. Эта статья покажет вам, как установить и настроить PCSX2 эмулятор на Linux, точнее, последний мятный релиз; хотя, он работает так же хорошо на Windows, и, возможно, даже
Итак, как создать собственный дистрибутив с кросс-скомпилированными приложениями, предназначенными для конкретной цели?
Итак, как создать собственный дистрибутив с кросс-скомпилированными приложениями, предназначенными для конкретной цели? Как объясняет Майкл Дж. Хаммель, это не так сложно, как вы думаете. Зачем идти на заказ? В прошлом многие встраиваемые проекты использовали готовые дистрибутивы и сокращали их до самых необходимых по ряду причин. Во-первых, удаление неиспользуемых пакетов снижает требования к хранилищу. Встраиваемые системы обычно не используют большие объемы памяти

64. Тем не менее, я внимательно отношусь к потребностям моих читателей, и один или несколько криков: как, черт возьми, я получаю мне эмулированные игры PSP2 на ПК?
Не можете найти подходящий плагин галереи для установки на свой сайт WordPress?
Готовы начать свой собственный бизнес?
Зачем вам нужен еще один пропущенный подарок, который вы с сожалением убрали на полку и думаете, что снова не получили то, что хотели?
Так, как новый маленький спикер Google формируется против его большего родного брата и его претендента номер один?
64. Тем не менее, я внимательно отношусь к потребностям моих читателей, и один или несколько криков: как, черт возьми, я получаю мне эмулированные игры PSP2 на ПК?
64. Тем не менее, я внимательно отношусь к потребностям моих читателей, и один или несколько криков: как, черт возьми, я получаю мне эмулированные игры PSP2 на ПК?
Итак, как создать собственный дистрибутив с кросс-скомпилированными приложениями, предназначенными для конкретной цели?
Зачем идти на заказ?

Новости

Карта