Как использовать Cucumber в качестве среды тестирования корпоративного класса

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

Cucumber также имеет реализации на разных языках программирования, таких как Java, JavaScript, Ruby и т. д. Несмотря на разные реализации, все они имеют один и тот же принцип и используют один и тот же формат файла функций (он же корнишон).

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

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

  • Генерация отчета
  • Размер JSON-файла
  • Управление сценарием
  • Подзаголовок для отображения бегущих шагов

Генерация отчета

При запуске Cucumber.js из командная строка, по умолчанию используется вывод в текстовом формате. При использовании параметра --format json:filename.json, он сохраняет данные отчета в файл JSON после завершения проекта. Файл JSON содержит данные для всех результатов выполнения, затем его можно отформатировать в отчеты HTML для удовлетворения различных потребностей пользователя. Каждый пользователь может применить к отчету свой собственный HTML-шаблон, поэтому выходной файл JSON очень удобен в использовании.

Мы знаем, что JSON не является потоковым файлом, все данные должны быть готовы до создания целевого файла JSON. При запуске Cucumber.js сохраняет все результаты в члене и, наконец, после завершения работы выводит данные в файл JSON. Уайт работает таким образом, он создает проблему: если в проекте много сценариев, его запуск требует много времени, а если он остановлен в середине, результат запуска не создается. Например, предположим, что в проекте есть 200 тестовых сценариев. Если вы запустите этот проект, через некоторое время 190 из них завершатся и будут близки к результату отчета. При выполнении 191-го сценария тестовый сценарий зависает и не продолжается (например, причиной может быть какая-то проблема с обработкой ошибок в вашем тестовом сценарии). Если вы принудительно остановите выполнение сейчас, файл JSON не будет сгенерирован, и вы потеряете все данные о результатах выполнения для этого запуска. Файл JSON не генерируется, поэтому и отчет о тестировании не создается, и время, затрачиваемое на это выполнение, тратится впустую. Довольно огорчительно, не так ли? И вы должны исправить проблему в своем скрипте и начать работу с самого начала.

В CukeTest, который имеет встроенный движок Cucumber.js, мы устранили это ограничение путем потоковой передачи данных JSON в файл журнала. Во время выполнения проекта, когда каждый сценарий завершает выполнение, соответствующие данные результатов выполнения JSON записываются в файл на диске. Если выполнение остановлено посередине, он по-прежнему показывает тестовый отчет в формате html из уже сгенерированных данных. аналогично следующему, который содержит все готовые сценарии.

отчет.jpg

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

Размер JSON-файла

При автоматическом тестировании веб-приложений, мобильных приложений или приложений Windows для настольных ПК одной из распространенных практик является добавление снимков экрана в отчет о выполнении при выполнении сценария в качестве доказательства того, что сценарий работает хорошо. Его также можно использовать для обнаружения потенциальных ошибок пользовательского интерфейса. Cucumber.js записывает все данные в файл JSON, включая скриншоты, что удобно. Скриншоты также хранятся в этом файле JSON в формате base64. Если встроено много изображений, этот файл JSON становится огромным. Node.js выдает исключение (что-то вроде «Неверная длина строки») при преобразовании изображений в JSON, когда данные превышают установленный лимит. Кроме того, все данные скриншотов сохраняются в памяти перед генерацией файла JSON, что потребляет много памяти и делает систему менее стабильной.

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

Параметры.png

Поскольку это настройка переключателя, у вас все еще есть гибкость:

  1. Вы можете прикрепить все изображения в отчете в формате html, чтобы получить один файл отчета, или сохранить их отдельно.
  2. Вы также можете уменьшить размер своего html-отчета, обратившись к ресурсам css/js из общедоступного CDN; или, если вы находитесь в отключенной сети, выберите встраивание всех ресурсов css/js в ваш html-файл. Последний генерирует немного больший файл отчета, но больше не нужно беспокоиться о проблеме с сетью, которая может привести к сбою отчета.

Управление сценариями

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

В инструменте кодирования Cucumber.js, CukeTest, есть встроенные функции просмотра и поиска senarios. Когда открывается папка проекта, в ней перечислены все функции, сценарии и, возможно, шаги на левой панели. вы можете щелкнуть любой из них, чтобы быстро перейти к сценарию или шагам. Кроме того, можно ввести текст для поиска сценария/шага, когда текст вводится, отображаются только соответствующие результаты, вы можете щелкнуть параметры фильтра, чтобы отобразить только сценарий, только функцию или только шаги.

Шаги можно легко использовать повторно, просто перетащив шаг с левой панели в свой сценарий:

DropProject4.gif

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

Подзаголовок для отображения бегущих шагов

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

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

SubtitleProject.gif
меньший белый текст в верхнем левом углу — это сценарий, а больший белый текст посередине — текст шага.

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

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

Резюме

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

Похожие записи

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

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