Огурец Является ли основой для тестирования поведения (BDD), и с ним можно писать тестовые сценарии на родном языке. Это позволяет эффективно сотрудничать и эффективное общение среди членов команды. Огурец уже был принят в качестве автоматизированной структуры тестирования во многих компаниях.
Огурец также имеет реализации на разных языках программирования, таких как Java, JavaScript и Ruby и т. Д. Ступит разные реализации, все они имеют одинаковый принцип и используют один и тот же формат файла функций (A.k.a. Gherkin ).
Мы используем Cucumber.js до Проверьте наше собственное приложение и Сайты , и это легко использовать и позволяет пользователям быстро создавать сценарий автоматизации. Когда сценарий автоматизации растет более сложным, пользователи могут найти некоторые ограничения в инструменте, который, если не решен, может ограничить его масштабируемость и предотвратить его принятую на приложениях большого класса Big Enterprise.
Чтобы лучше удовлетворить необходимость тестирования автоматизации на предприятии, мы сделали некоторые улучшения или решайте некоторые его ограничения:
- Доклад генерации
- Размер файла JSON
- Управление сценарием
- Субтитры для отображения запущенных шагов
Доклад генерации
При запуске CuCumber.js от командная строка По умолчанию он использует вывод формата текста. При использовании параметр - ФОРМАТ JSON: filename.json
, он сохраняет данные отчета в файл JSON после завершения работы проекта. Файл JSON содержит данные для всех результатов выполнения, он может быть отформатирован в HTML-отчеты для удовлетворения потребностей разных пользователей. Каждый пользователь может применить свой собственный шаблон HTML к отчету, поэтому выходной файл json довольно удобно использовать.
Мы знаем, что JSON не является потоковым файлом, все данные должны быть готовы, прежде чем генерировать целевой файл json. При запуске CuCumber.js хранит все результаты у члена, и, наконец, после того, как он завершит работу, выходные данные в файл json. White Этот путь работает, это создает проблему: если в нем есть проект много сценариев, он потребляет время для запуска, и если он остановлен в середине, результат запуска не генерируется. Например, предположим, что в проекте существует 200 тестовых сценариев. Если вы запустите этот проект, после некоторого времени 190 из них завершается и близок к получению результата отчета. При запусках сценария 191-х годов сценарий тестирования застрял и не работает (например, причина может быть некоторая проблема обработки ошибок в вашем тестовом скрипте). Если вы остановите выполнение сейчас за счет силы, файл JSON не генерируется, и вы потеряете все данные результата выполнения для этого запуска. Там нет файла JSON, поэтому отсутствие тестового отчета либо, и время, затраченное на это выполнение, потрачено впустую. Довольно расстраивает, верно? И вы должны решить проблему в вашем скрипте и начать работать с самого начала.
В Cuketest , который имеет встроенный двигатель CuCumber.js, мы обратились к этому ограничениям, передавая данные JSON в файл журнала. Во время запуска проекта, когда каждый сценарий заканчивается выполнение соответствующих данных результатов JSON RUB, записан файл диска. Если выполнение останавливается в середине, он все еще показывает отчет о тестировании HTML из уже сгенерированных данных. Стать по следующему, который содержит все готовые сценарии.
Инженеры автоматизации, в процессе разработки, могут остановить проект вручную, когда обратите внимание на проблему, исследуйте проблемы в частично законченном отчете о завершении и запускают его снова. В любое время вы можете получить отчет для этих сценариев, которые заканчивают работать.
Размер файла JSON
При выполнении тестирования автоматизации для веб-сайтов, мобильного или настольного настольного компьютера Windows, одна общая практика добавляет скриншоты в прогон, когда выполняется сценарий, в качестве доказательства того, что сценарий работает хорошо. Он также может быть использован для размещения потенциальных ошибок пользовательских интерфейсов. Cucumber.js записывает все данные в файле JSON, включая скриншоты, что удобно. Изображения скриншота также хранятся в этом файле JSON, в формате Base64. Если многие изображения встроены, этот файл JSON становится огромным. Node.js бросит исключение (что-то вроде «неверная длина строки») при внесении изображений к JSON, когда данные превышают его предел. Кроме того, все данные скриншотов хранятся в памяти, прежде чем генерировать файл JSON, который потребляет много памяти и сделать систему менее стабильной.
Чтобы устранить это ограничение, Cuketest обеспечить Опция Чтобы сохранить изображение для отдельных файлов. Выбирая опцию, даже если у вас есть сотни сценариев, или запечатлены тысячи изображений, отчеты о тестовых отчетах могут быть все еще сгенерированы немедленно.
Поскольку это настройка коммутатора, у вас все еще есть всю гибкость:
- Вы можете приложить все изображения в отчете HTML, чтобы получить один файл отчета, или вы можете выбрать их хранить отдельно.
- Вы также можете выбрать свой HTML-отчет меньше, ссылаясь на ресурсы CSS/JS с публичного CDN; Или если вы находитесь в отключенной сети, выберите встроенные ресурсы CSS/JS внутри вашего файла HTML. Последний генерирует немного большего файла отчета, но больше не нужно беспокоиться о проблеме сети, которая может привести к неспособности отчета.
Сценарии управления
При осуществлении автоматизированных тестовых проектов, поддержание автоматизированных тестовых скриптов становится проблемой, поскольку сценарий автоматизации тестирования растет больше. Огурец имеет хорошую репутацию создания сценариев автоматизации с хорошей читаемостью, по форматам тестируемых случаев с файлами функций и сценариями. Однако задача все еще существует, если сценарий растет на определенный большой размер. Представьте, что вы разрабатываете сценарии автоматизации тестирования для большого корпоративного приложения, могут быть десятки функций, сотни сценариев, как вы планируете управлять всеми из них и быстро находить один сценарий теста и соответствующий код для модификации? Иногда некоторые шаги должны быть повторно использованы в нескольких функциях файлов функций, что создает еще одно измерение сложности.
В инструменте кодирования Cucumber.js Cuketest, встроен в встроенный просмотр Senarios и функциональность поиска. Когда открывает папку Project, она перечисляет все функции, сценарии и, необязательно, шаги на левой панели. Вы можете щелкнуть любой из них, чтобы быстро перейти к сценарию или шагам. Кроме того, можно ввести текст для поиска сценария/шага, когда текст вводится, отображается только соответствующий результат, вы можете щелкнуть параметры фильтра, чтобы показать только сценарию, только функцию или только шаги.
Можно легко использовать шаги, просто перетащите шаг с левой панели в ваш сценарий:
Кроме того, в Cuketest, нажав на каждую круглую кнопку на каждом этапе работы, вы можете напрямую найти часть реализации кода, чтобы облегчить разработку и отладку.
Субтитры для отображения запущенных шагов
При запуске проекта огурца при запуске много сценариев вы не всегда знаете, какой сценарий или какой шаг в данный момент работает. Или, может быть, вы, как инженер автоматизации, знает его, но когда демонстрируют бегущую к некоторым другим членам команды, они хотят знать, что это тестирование.
В Cuketest при запуске проекта он может показать текущий рабочий сценарий, а также шаг запуска на экране, например, субтитров для фильма. Он описывает то, что именно делает с людьми, которые смотрят казнь. Кроме того, он показывает количество сценариев, которые он работает, и индекс работы запуска. Следующий GIF показывает вам, как в нижней части экрана отображается субтитры при запуске образца Шоппинг Веб-проект:
Меньший белый текст на верхнем левом направлении – это сценарий, а более крупный белый текст в середине – это текст шага.
Вы также можете Настройте профиль Run Для записи видео для тестового прогона. Таким образом, чтобы выполнение можно было воспроизвести позже, когда-нибудь за бесперебойную стрельбу проблем, выявленные во время тестового прогона. Видео уже содержит сценарий и информацию о шагах, поэтому легко перейти к сценарию, что имеет проблему. Субтитр делает записанное видео более ценно для бесперебойных съемков и некоторых других целей.
Примечание. К моменту записи функция субтитров находится только в версии Windows, Mac и Linux пользователи все еще нужно еще несколько дней для нового выпуска, чтобы получить эту функцию.
Резюме
С этими улучшениями огурец становится еще более удобным для использования и более квалифицирован как структура автоматизации тестирования корпоративных классов. Cuketest в качестве ориентированного на BDD-ориентированной автоматизации, теперь является выбором предприятий, включая финансовые компании, производство и некоторые исследовательские институты.