Со временем наше сообщество разработало несколько проектов, которые вы можете использовать в качестве вдохновения для создания собственного набора тестов.
Шаблонные проекты v9
webdriverio/cucumber-boilerplate
Наш собственный шаблон для тестовых наборов Cucumber. Мы создали более 150 предопределенных определений шагов для вас, чтобы вы могли сразу начать писать файлы функций в своем проекте.
- Фреймворк:
- Cucumber
- WebdriverIO
- Особенности:
- Более 150 предопределенных шагов, которые охватывают почти все, что вам нужно
- Интегрирует функциональность Multiremote WebdriverIO
- Собственное демо-приложение
webdriverio/jasmine-boilerplate
Шаблонный проект для запуска тестов WebdriverIO с Jasmine, использ ующий возможности Babel и шаблон объектов страниц.
- Фреймворки
- WebdriverIO
- Jasmine
- Особенности
- Шаблон объектов страниц
- Интеграция с Sauce Labs
webdriverio/electron-boilerplate
Шаблонный проект для запуска тестов WebdriverIO на минимальном приложении Electron.
- Фреймворки
- WebdriverIO
- Mocha
- Особенности
- Моки API Electron
amiya-pattnaik/wdio-testgen-from-gherkin-js
amiya-pattnaik/wdio-testgen-from-gherkin-ts
Автоматически генерируйте классы Page Object WebdriverIO и тестовые спецификации Mocha из Gherkin .feature файлов — уменьшая ручные усилия, улучшая согласованность и ускоряя автоматизацию QA. Этот проект не только создает код, совместимый с webdriver.io, но и расширяет все функциональные возможности webdriver.io. Мы создали два варианта: один для пользователей JavaScript, другой для пользователей TypeScript. Но оба проекта работают одинаково.
Как это работает?
- Процесс следует двухэтапной автоматизации:
- Шаг 1: Gherkin в stepMap (Создание файлов stepMap.json)
- Создание файлов stepMap.json:
- Анализирует .feature файлы, написанные на языке Gherkin.
- Извлекает сценарии и шаги.
- Создает структурированный файл .stepMap.json, содержащий:
- действие для выполнения (например, click, setText, assertVisible)
- selectorName для логического сопоставления
- selector для элемента DOM
- note для значений или утверждений
- Создание файлов stepMap.json:
- Шаг 2: stepMap в код (Создание кода WebdriverIO).
Использует stepMap.json для создания:
- Базового класса page.js с общими методами и настройкой browser.url().
- Классов Page Object Model (POM), совместимых с WebdriverIO, для каждой функции внутри test/pageobjects/.
- Тестовых спецификаций на основе Mocha.
- Пример структуры каталогов для JavaScript / TypeScript. Ниже представлена версия для JS, версия TS имеет такую же структуру.
project-root/
├── features/ # Gherkin .feature файлы (пользовательский ввод / исходный файл)
├── stepMaps/ # Автоматически сгенерированные файлы .stepMap.json
├── test/
│ ├── pageobjects/ # Автоматически сгенерированные классы Page Object Model тестов WebdriverIO
│ └── specs/ # Автоматически сгенерированные тестовые спецификации Mocha
├── src/
│ ├── cli.js # Основная логика CLI
│ ├── generateStepsMap.js # Генератор feature-to-stepMap
│ ├── generateTestsFromMap.js # Генератор stepMap-to-page/spec
│ ├── utils.js # Вспомогательные методы
│ └── config.js # Пути, резервные селекторы, псевдонимы
│ └── __tests__/ # Модульные тесты (Vitest)
├── testgen.js # Точка входа CLI
│── wdio.config.js # Конфигурация WebdriverIO
├── package.json # Скрипты и зависимости
├── selector-aliases.json # Опциональные пользовательские селекторы, которые переопределяют основной селектор
Шаблонные проекты v8
amiya-pattnaik/webdriverIO-with-cucumberBDD
- Фреймворк: WDIO-V8 с Cucumber (V8x).
- Особенности:
- Page Objects Model использует подход на основе классов ES6/ES7 и поддержку TypeScript
- Примеры опции множественного селектора для запроса элемента с несколькими селекторами одновременно
- Примеры выполнения в нескольких браузерах и браузерах без графического интерфейса - Chrome и Firefox
- Интеграция с облачным тестированием BrowserStack, Sauce Labs, LambdaTest
- Примеры чтения/записи данных из MS-Excel для удобного управления тестовыми данными из внешних источников с примерами
- Поддержка базы данных для любой СУБД (Oracle, MySql, TeraData, Vertica и т.д.), выполнение любых запросов / получение набора результатов и т.д. с примерами для E2E тестирования
- Множественная отчетность (Spec, Xunit/Junit, Allure, JSON) и размещение отчетов Allure и Xunit/Junit на веб-сервере.
- Примеры с демо-приложениями https://search.yahoo.com/ и http://the-internet.herokuapp.com.
- Специальный файл
.config
для BrowserStack, Sauce Labs, LambdaTest и Appium (для воспроизведения на мобильных устройствах). Для быстрой настройки Appium на локальной машине для iOS и Android обратитесь к appium-setup-made-easy-OSX.
amiya-pattnaik/webdriverIO-with-mochaBDD
- Фреймворк: WDIO-V8 с Mocha (V10x).
- Особенности:
- Page Objects Model использует подход на основе классов ES6/ES7 и поддержку TypeScript
- Примеры с демо-приложениями https://search.yahoo.com и http://the-internet.herokuapp.com
- Примеры выполнения в нескольких браузерах и браузерах без графического интерфейса - Chrome и Firefox
- Интеграция с облачным тестированием BrowserStack, Sauce Labs, LambdaTest
- Множественная отчетность (Spec, Xunit/Junit, Allure, JSON) и размещение отчетов Allure и Xunit/Junit на веб-сервере.
- Примеры чтения/записи данных из MS-Excel для удобного управления тестовыми данными из внешних источников с примерами
- Примеры подключения к БД для любой СУБД (Oracle, MySql, TeraData, Vertica и т.д.), выполнения любых запросов / получения набора результатов и т.д. с примерами для E2E тестирования
- Специальный файл
.config
для BrowserStack, Sauce Labs, LambdaTest и Appium (для воспроизведения на мобильных устройствах). Для быстрой настройки Appium на локальной машине для iOS и Android обратитесь к appium-setup-made-easy-OSX.
amiya-pattnaik/webdriverIO-with-jasmineBDD
- Фреймворк: WDIO-V8 с Jasmine (V4x).
- Особенности:
- Page Objects Model использует подход на основе классов ES6/ES7 и поддержку TypeScript
- Примеры с демо-приложениями https://search.yahoo.com и http://the-internet.herokuapp.com