Перейти до основного вмісту

WebdriverIO

Фреймворк нового покоління для автоматизації тестування браузерів та мобільних пристроїв на Node.js

За підтримки
🌎

Тестування в реальних середовищах

WebdriverIO дозволяє тестувати в актуальних браузерах або мобільних пристроях, якими користуються ваші користувачі.

🔩

Універсальний та багатофункціональний

Використовуйте WebdriverIO для повного e2e або модульного та компонентного тестування в браузері.

💤

Автоматичне очікування

WebdriverIO автоматично чекає на появу елементів перед взаємодією з ними.

📒

Базується на веб-стандартах

Підтримка крос-браузерності через автоматизацію за допомогою WebDriver та WebDriver Bidi.

📱

Нативна підтримка мобільних пристроїв

Запускайте WebdriverIO на реальних мобільних пристроях, смарт-телевізорах або інших IoT-пристроях за допомогою Appium.

🫂

Віддана спільнота

Підтримуємо канал підтримки з понад 8 тисячами учасників та багатою екосистемою плагінів, які підтримуються спільнотою.


import { $, expect } from '@wdio/globals'
import { render } from '@testing-library/vue'
import HelloWorld from '../../src/components/HelloWorld.vue'

describe('Component Testing', () => {
it('increments value on click', async () => {
const { getByText } = render(HelloWorld)
const btn = getByText('count is 0')

// transform into WebdriverIO element
const button = await $(btn)

// interact with element like a real user
await button.click()
await button.click()

await expect(button).toMatchInlineSnapshot(
"count is 2"
)
})
})

E2E та модульне/компонентне тестування в реальному браузері!

WebdriverIO - це універсальний фреймворк для розробки веб-додатків. Він дозволяє запускати невеликі та легкі компонентні тести, а також сценарії e2e тестів у браузері чи на мобільному пристрої. Це гарантує тестування у середовищі, яке використовують ваші користувачі.

Він має розумні стратегії селекторів, які спрощують взаємодію, наприклад, з React components або виконання глибоких запитів селекторів із вкладеними деревами shadow DOM. Оскільки взаємодії відбуваються через стандартизований протокол автоматизації, гарантується, що вони поводяться нативно і не емулюються JavaScript.

Легке налаштування для тестування веб-компонентів із:

Vue.jsNuxtSveltePreactSolidJSLitStencil

Почніть роботу з WebdriverIO за секунди

Тестовий раннер WebdriverIO поставляється з інтерфейсом командного рядка, який надає потужну утиліту налаштування та допомагає створити тестове середовище менш ніж за хвилину. Він дозволяє вибирати з доступних інтеграцій фреймворків тестування та легко додавати всі підтримувані плагіни репортерів та сервісів!

За допомогою лише однієї простої команди ви можете налаштувати повний набір тестів:


$ npm init wdio@latest ./

Почніть дізнаватися більше про WebdriverIO та як розпочати роботу на YouTube.

Дивіться доповіді про WebdriverIO

Спільнота навколо WebdriverIO активно виступає на різних групах користувачів або конференціях з конкретних тем автоматизованого тестування з WebdriverIO. Перегляньте цю доповідь на Мої улюблені функції WebdriverIO від Julia Pottinger на Open Quality Conference.

Також є багато YouTube-каналів з корисними навчальними матеріалами від членів спільноти, таких як Klamping, Seventeenth Sep або Automation Bro.

Інтеграція з Google Lighthouse

WebdriverIO не лише запускає автоматизацію на основі протоколу WebDriver, але також використовує нативні API браузерів для забезпечення інтеграції з популярними інструментами розробника, такими як Chrome DevTools або Google Lighthouse. З плагіном @wdio/lighthouse-service ви маєте доступ до команд для перевірки, чи є ваш додаток дійсним PWA-додатком, а також до команд для збору метрик продуктивності фронтенду, таких як `speedIndex` та інших.

Інтеграція з інструментами розробника, такими як:

Chrome DevToolsGoogle LighthouseAxe Accessibility Engine

await browser.emulate('device', 'iPhone X')
await browser.enablePerformanceAudits({
networkThrottling: 'Good 3G',
cacheEnabled: true,
formFactor: 'mobile'
})

// open application under test
await browser.url('https://localhost:3000')

expect(await browser.getMetrics().firstMeaningfulPaint)
.toBeBelow(2500)

const pwaCheckResult = await browser.checkPWA()
expect(pwaCheckResult.passed).toBe(true)

Хто використовує WebdriverIO?

  • Google
  • Netflix
  • Microsoft
  • Mozilla
  • Buoyant
  • SAP
  • Salesforce
  • Hilton
  • Charles Schwab
  • JW Player
  • BBVA
  • GoPro
  • Algolia
  • Financial Times
  • Zendesk
  • 1&1
  • Avira
  • Deloitte
  • Rabobank
  • Bedrock Streaming

Відкритий код та відкрите управління

Ми є проєктом з відкритим кодом з сильною прихильністю до прозорості та спільного управління. Ми є частиною OpenJS Foundation, яка є частиною Linux Foundation. Проєкт повністю управляється волонтерами та фінансується зацікавленими компаніями, які хочуть бачити успіх проєкту. Команда проєкту вдячна за щедру спонсорську підтримку цих компаній.

💎 Преміум-спонсори

🥇 Золоті спонсори

Якщо ви використовуєте WebdriverIO у своїй організації, будь ласка, розгляньте можливість підтримки проєкту ставши спонсором. Це допоможе нам підтримувати роботу та розвиток проєкту.

Ми хотіли б висловити нашу щиру подяку всім учасникам, які допомогли зробити WebdriverIO тим потужним інструментом, яким він є сьогодні. Ваша відданість та зусилля дійсно цінуються!

Welcome! How can I help?

WebdriverIO AI Copilot