Платформа автоматического тестирования браузеров и мобильных устройств нового поколения для Node.js — WebdriverIO
Платформа автоматического тестирования браузеров и мобильных устройств нового поколения для Node.js — WebdriverIO

1. Предисловие

Инструмент веб-автоматизации Selenium поддерживает несколько языков, таких как Python, Java, Ruby, JavaScript и т. д. Большинство тестировщиков чаще всего используют Python и Java, а многие технические сообщества и онлайн-обучающие материалы очень удобны и просты в использовании. найди. Но для других языков, таких как JavaScript, ресурсов относительно меньше. Для JavaScript в этой статье будет представлена ​​среда автоматизированного веб-тестирования и мобильного тестирования в среде Node.js — WebdriverIO.

2. Введение

WebdriverIO — это среда автоматизации тестирования для модульного и компонентного тестирования в e2e, а также в браузере. Она позволяет запускать тесты на основе технологий автоматизации WebDriver и WebDriver BiDi и Appium. Обеспечивает поддержку платформ тестирования BDD/TDD и запускает тесты локально или в облаке с помощью Sauce Labs, BrowserStack, TestingBot или LambdaTest.

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

Функции:

  • Расширяемость: добавляйте вспомогательные функции или более сложные наборы команд и комбинации.
  • Совместимость: WebdriverIO может работать по протоколу WebDriver для обеспечения настоящей кроссплатформенной связи.,Также работает по протоколу Chrome DevTools.,Реализовать автоматизацию на базе Chrome с помощью Puppeter.
  • Функциональность: Разнообразные встроенные и общественные плагины позволяют легко интегрировать и расширять настройку в соответствии с вашими потребностями.

Вы можете использовать WebdriverIO для автоматизации:

  • Используйте Реагировать、Vue、Angular、Веб-приложения, написанные на Svelte или другом интерфейсном фреймворке.
  • Гибридные или собственные мобильные приложения, работающие на эмуляторе или реальном устройстве.
  • Собственное настольное приложение (например, написанное с использованием Electron.js).
  • Модульное или компонентное тестирование веб-компонентов в Браузер.

Официальный сайт:

https://webdriver.io/

3. Установка

База кода содержит некоторые основные пакеты проекта WebdriverIO. Сообщество WebdriverIO собрало множество тщательно отобранных ресурсов.

Ниже перечислены некоторые типичные библиотеки кода.

1. Основной пакет:

webdriver - W3C WebDriver и мобильные устройства Реализация привязки Node.js протокола JSONWire.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/webdriver

webdriverio - Платформа следующего поколения для автоматизации тестирования браузеров и мобильных устройств для Node.js.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/webdriverio

@wdio/cli - WebdriverIO Интерфейс командной строки testrunner.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-cli

2. Пакет отчетов:

@wdio/allure-reporter - Плагин отчетов WebdriverIO для создания отчетов об испытаниях Allure.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-allure-reporter

@wdio/junit-reporter - Плагин отчетов WebdriverIO, который создает результаты тестов в формате XML.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-junit-reporter

3. Пакет услуг:

@wdio/appium-service - Служба WebdriverIO, используемая для запуска и остановки сервера Appium.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-appium-service

@wdio/lighthouse-service - Сервис WebdriverIO, интегрированный с Google Команда Lighthouse, чтобы использовать ее для автоматического тестирования.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-lighthouse-service

@wdio/firefox-profile-service - Служба WebdriverIO позволяет вам определять файлы конфигурации Firefox в wdio.conf.js.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-firefox-profile-service

4. Пакет рамы:

@wdio/cucumber-framework - Адаптер тестовой среды огурца.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-cucumber-framework

@wdio/jasmine-framework - Адаптер тестовой среды Jasmine.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-jasmine-framework

@wdio/mocha-framework - Адаптер тестовой среды mocha.

адрес гитхаба:

https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-mocha-framework

4. Приступайте к работе быстро

Установите основной пакет webdriverio

Этот пакет предоставляет простой в управлении API и обширный синтаксис, основанный на спецификации WebDriver. Вы можете использовать WebdriverIO как отдельный пакет или в качестве средства запуска тестов через @wdio/cli. WebdriverIO позволяет запускать тесты локально с помощью WebDriver или с помощью удаленного пользовательского агента через облачного провайдера, такого как Sauce Labs.

Язык кода:javascript
копировать
npm install webdriverio

По умолчанию WebdriverIO использует Puppeteer для автоматизации таких браузеров, как Chrome, Firefox или Chromium Edge.

Официальный пример: запустите браузер Chrome и получите заголовок страницы.

Язык кода:javascript
копировать
import { remote } from 'webdriverio'

const browser = await remote({
    capabilities: { browserName: 'chrome' }
})

await browser.navigateTo('https://www.google.com/ncr')

const searchInput = await browser.$('#lst-ib')
await searchInput.setValue('WebdriverIO')

const searchBtn = await browser.$('input[value="Google Search"]')
await searchBtn.click()

console.log(await browser.getTitle()) // outputs "WebdriverIO - Google Search"

await browser.deleteSession()
boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.