Статьи

Один быстрый способ создать свой тестовый скрипт 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:

Новости

Блог по SEO-продвижению
Всем доброго времени суток! С вами на связи Макс Метелев и порадую я вас сегодня свеженьким постом на тему — как раскрутить блог в интернете. Мало просто создать блог, для этого необходимо провести

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

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

Кымдан 2 купить
Доныне Кымдан-2 Инъекция более 30 раз была представлена на муниципальных и интернациональных выставках и удостоена золотых медалей и премий, сначала золотой медали WIPO (Глобальная организация умственной

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

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

Доставка контейнера из китая
телефон: +86 13999179145 Гуанчжоу телефон: +86 18609000245 ТЕКУЩЕЕ ВРЕМЯ Новосибирск Китай USD/RUB63. 907410

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

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

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

Карта