Navigateur de nouvelle génération et framework de test d'automatisation mobile pour Node.js
Tester dans des environnements réels
WebdriverIO vous permet de tester sur des navigateurs ou des appareils mobiles utilisés par vos utilisateurs.
Polyvalent et riche en fonctionnalités
Utilisez WebdriverIO pour des tests complets d'e2e ou d'unité et de composants dans le navigateur.
Attente automatique
WebdriverIO attend automatiquement que des éléments apparaissent avant d'interagir avec eux.
Basé sur les standards du Web
Support du navigateur croisé via l'automatisation via WebDriver et WebDriver Bidi.
Support mobile natif
Exécutez WebdriverIO sur des appareils mobiles réels, des télévisions intelligentes ou d'autres appareils IoT via Appium.
Communauté engagée
Exécuter un support channel avec plus de 8k membres et un riche écosystème de plugins gérés par la communauté.
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()
getByText('count is 2')
})
})
E2E et unité / tests de composants dans le navigateur réel!
WebdriverIO est un framework tout en un seul pour le développement de votre application Web. Il vous permet d'exécuter des tests de composants petits et légers ainsi que d'exécuter des scénarios de test e2e dans le navigateur ou sur un appareil mobile. Cela vous garantit de faire les tests dans un environnement utilisé par vos utilisateurs.
Il est livré avec des stratégies de sélecteurs intelligents qui simplifient l’interaction, par exemple avec React components ou avec des sélecteurs profonds avec des arborescences imbriqués DOM. Comme les interactions se produisent par le biais d'un protocole d'automatisation standardisé, il est garanti qu'ils se comportent nativement et pas seulement JavaScript émulé.
Démarrez avec WebdriverIO en quelques secondes
The WebdriverIO testrunner comes with a command line interface that provides a powerful configuration utility and helps you to create your test setup in less than a minute. It lets you pick from available test framework integrations and easily allows to add all supported reporter and service plugins!
Avec une seule commande simple, vous pouvez configurer une suite de tests complète :
$ npm init wdio@latest ./
Commencez à en apprendre plus sur WebdriverIO et comment commencer sur Youtube.
Regardez les discussions à propos de WebdriverIO
La communauté autour de WebdriverIO parle activement de divers groupes d'utilisateurs ou conférences sur des sujets spécifiques concernant les tests automatisés avec WebdriverIO. Jetez un coup d'œil à cette conférence le Mes fonctionnalités préférées de WebdriverIO par Julia Pottinger à Open Quality Conference.
Il y a aussi de nombreuses chaînes YouTube avec des tutoriels utiles par des membres de la communauté tels que Klamping, Seventeenth Sep ou Automation Bro.
Intégration de Google Lighthouse
WebdriverIO n'exécute pas seulement l'automatisation basée sur le protocole WebDriver, il tire également parti des API natives du navigateur pour activer les intégrations aux outils de développement populaires tels que Chrome DevTools ou Google Lighthouse. Avec le plugin @wdio/devtools-service
vous avez accès aux commandes pour valider si votre application est une application PWA valide ainsi qu'aux commandes pour capturer des métriques de performance du frontend telles que `speedIndex` et d'autres.
await browser.emulateDevice('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)