跳至主要内容

WebdriverIO

基于 Node.js 的下一代浏览器和移动自动化测试框架

赞助商  和  
🌎

在真实环境中进行测试

WebdriverIO 允许您在用户使用的实际浏览器或移动设备中进行测试。

🔩

多功能且功能丰富

使用 WebdriverIO 进行完整的端到端测试或浏览器中的单元和组件测试。

💤

自动等待

WebdriverIO 会自动等待元素出现,然后再与它们交互。

📒

基于 Web 标准

通过WebDriverWebDriver Bidi进行自动化,实现跨浏览器支持。

📱

原生移动支持

通过Appium在真实的移动设备、智能电视或其他物联网设备上运行 WebdriverIO。

🫂

积极的社区

运营着一个拥有超过 8000 名成员的支持渠道,以及丰富的社区维护插件生态系统。


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"
)
})
})

在真实浏览器中进行端到端和单元/组件测试!

WebdriverIO 是一个一体化的 Web 应用开发框架。它使您能够运行小型且轻量级的组件测试,以及在浏览器或移动设备上运行端到端测试场景。这保证了您在用户使用的环境中进行测试。

它带有智能选择器策略,简化了与例如React 组件的交互,或使用嵌套的 Shadow DOM 树运行深度选择器查询。由于交互是通过标准化的自动化协议进行的,因此可以保证它们的行为是原生的,而不仅仅是 JavaScript 模拟。

Web 组件测试的简单设置

Vue.jsNuxtSveltePreactSolidJSLitStencil

在几秒钟内开始使用 WebdriverIO

WebdriverIO 测试运行器带有一个命令行界面,该界面提供了一个强大的配置实用程序,并帮助您在不到一分钟的时间内创建测试设置。它允许您从可用的测试框架集成中进行选择,并轻松添加所有支持的报告程序和服务插件!

只需一个简单的命令,即可设置完整的测试套件


$ npm init wdio@latest ./

开始了解有关 WebdriverIO 及其如何开始使用的更多信息在 YouTube 上

观看有关 WebdriverIO 的演讲

WebdriverIO 周围的社区积极地在各种用户组或会议上讨论有关使用 WebdriverIO 进行自动化测试的特定主题。查看 Julia Pottinger 在开放质量大会上关于我最喜欢的 WebdriverIO 功能的演讲。Julia Pottinger

还有许多 YouTube 频道,社区成员提供了有用的教程,例如KlampingSeventeenth SepAutomation Bro

Google Lighthouse 集成

WebdriverIO 不仅运行基于 WebDriver 协议的自动化,还利用原生浏览器 API 来启用与流行的开发者工具(如Chrome DevToolsGoogle Lighthouse)的集成。@wdio/lighthouse-service 插件允许您访问命令,用于验证您的应用是否为有效的 PWA 应用,以及用于捕获前端性能指标(如 `speedIndex` 等)的命令。

与开发者工具集成,例如

Chrome DevToolsGoogle LighthouseAxe Accessibility Engine

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

// open application under test
await browser.url('https://127.0.0.1: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 基金会的一部分,该基金会是Linux 基金会的一部分。该项目完全由志愿者运营,并由希望看到项目成功的投资公司资助。项目团队感谢这些公司的慷慨赞助。

💎 高级赞助商

🥇 金牌赞助商

如果您在组织中使用 WebdriverIO,请考虑通过成为赞助商来支持该项目。这将有助于我们保持项目的运行和发展。

欢迎!我如何提供帮助?

WebdriverIO AI Copilot