0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: nodejs, selenium, webdriver, codeceptjs, nightmarejs, protractor</p>
1
<p>Теги: nodejs, selenium, webdriver, codeceptjs, nightmarejs, protractor</p>
2
<p><strong>CodeceptJS</strong>- фреймворк, который позволяет описывать тесты на DSL высокого уровня. При этом сами тесты будут выполняться одной из популярных библиотек на выбор тестировщика:<strong>Protractor, webdriverio, NightmareJS</strong>. Как правило, в большинстве случаев вам не придётся учить синтаксис вышеупомянутых библиотек - достаточно будет применить готовый универсальный API. Давайте рассмотрим, как выглядит простейший тест в CodeceptJS:</p>
2
<p><strong>CodeceptJS</strong>- фреймворк, который позволяет описывать тесты на DSL высокого уровня. При этом сами тесты будут выполняться одной из популярных библиотек на выбор тестировщика:<strong>Protractor, webdriverio, NightmareJS</strong>. Как правило, в большинстве случаев вам не придётся учить синтаксис вышеупомянутых библиотек - достаточно будет применить готовый универсальный API. Давайте рассмотрим, как выглядит простейший тест в CodeceptJS:</p>
3
<p>CodeceptJS позволяет QA-инженеру писать линейные сценарии для тестов, для чего применяется глобальная цепочка промисов - в неё добавляют новые и новые команды. В результате CodeceptJS позволяет без проблем реализовать те же PageObjects:</p>
3
<p>CodeceptJS позволяет QA-инженеру писать линейные сценарии для тестов, для чего применяется глобальная цепочка промисов - в неё добавляют новые и новые команды. В результате CodeceptJS позволяет без проблем реализовать те же PageObjects:</p>
4
<p>В результате мы выполнили перенос команд из предыдущего примера в отдельно созданный класс.</p>
4
<p>В результате мы выполнили перенос команд из предыдущего примера в отдельно созданный класс.</p>
5
<p>Как видите, всё получилось весьма читабельно: команды описаны как действия от первого лица, а селекторы почти не перегружают код технической информацией, делая это минимально.</p>
5
<p>Как видите, всё получилось весьма читабельно: команды описаны как действия от первого лица, а селекторы почти не перегружают код технической информацией, делая это минимально.</p>
6
<p>Как уже было сказано, в конфигурации можно без проблем выбрать движок для выполнения тестов. Если интересует стабильный webdriver API, вам подойдёт WebDriverIO, если предпочитаете Angular, включите Protractor, если желаете ускорить тесты раза так в три, отказавшись от webdriver и запуская приложение внутри Electron, обратите внимание на Nightmare.</p>
6
<p>Как уже было сказано, в конфигурации можно без проблем выбрать движок для выполнения тестов. Если интересует стабильный webdriver API, вам подойдёт WebDriverIO, если предпочитаете Angular, включите Protractor, если желаете ускорить тесты раза так в три, отказавшись от webdriver и запуская приложение внутри Electron, обратите внимание на Nightmare.</p>
7
<p>Таким образом, CodeceptJS даёт возможность писать свои расширения, дополняя текущую функциональность. Да, придётся слегка поработать с низкоуровневым API того же webdriverio, однако если вы реализуете требуемый функционал, вы без проблем сможете применять его в своих сценариях.</p>
7
<p>Таким образом, CodeceptJS даёт возможность писать свои расширения, дополняя текущую функциональность. Да, придётся слегка поработать с низкоуровневым API того же webdriverio, однако если вы реализуете требуемый функционал, вы без проблем сможете применять его в своих сценариях.</p>
8
<p><strong>Какие ещё есть плюшки в CodeceptJS</strong>: • пошаговый вывод прохождения тестов; • наличие режима интерактивной паузы; • генераторы тестов, helpers, pageobjects.</p>
8
<p><strong>Какие ещё есть плюшки в CodeceptJS</strong>: • пошаговый вывод прохождения тестов; • наличие режима интерактивной паузы; • генераторы тестов, helpers, pageobjects.</p>
9
<h2>Установка</h2>
9
<h2>Установка</h2>
10
<p>Установить CodeceptJS совсем несложно:</p>
10
<p>Установить CodeceptJS совсем несложно:</p>
11
[sudo] npm install -g codeceptjs codeceptjs init<p>Останется выбрать один из драйверов для выполнения тестов и установить пакеты для них. В этом вам поможет команда<em>codeceptjs init</em>, которая ещё и подскажет, как писать первый тест.</p>
11
[sudo] npm install -g codeceptjs codeceptjs init<p>Останется выбрать один из драйверов для выполнения тестов и установить пакеты для них. В этом вам поможет команда<em>codeceptjs init</em>, которая ещё и подскажет, как писать первый тест.</p>
12
<p><em>Более подробную информацию о CodeceptJS вы можете получить на курсе "<a>Автоматизация тестирования на JavaScript</a>" в OTUS.</em></p>
12
<p><em>Более подробную информацию о CodeceptJS вы можете получить на курсе "<a>Автоматизация тестирования на JavaScript</a>" в OTUS.</em></p>
13
<p>Источники: • https://automated-testing.info/t/codeceptjs-priemochnoe-testirovanie-dlya-nodejs/8578/2; • https://habr.com/ru/post/319656/.</p>
13
<p>Источники: • https://automated-testing.info/t/codeceptjs-priemochnoe-testirovanie-dlya-nodejs/8578/2; • https://habr.com/ru/post/319656/.</p>
14
14