Chuyển đến nội dung chính

WebdriverIO

Framework kiểm thử tự động hóa trình duyệt và di động thế hệ mới cho Node.js

Được tài trợ bởi
🌎

Kiểm thử trong Môi trường Thực tế

WebdriverIO cho phép bạn kiểm thử trên các trình duyệt hoặc thiết bị di động thực tế được sử dụng bởi người dùng của bạn.

🔩

Linh hoạt và Giàu tính năng

Sử dụng WebdriverIO cho kiểm thử e2e đầy đủ hoặc kiểm thử đơn vị và component trong trình duyệt.

💤

Tự động Chờ

WebdriverIO tự động chờ các phần tử xuất hiện trước khi tương tác với chúng.

📒

Dựa trên Tiêu chuẩn Web

Hỗ trợ đa trình duyệt thông qua tự động hóa với WebDriverWebDriver Bidi.

📱

Hỗ trợ Di động Tích hợp

Chạy WebdriverIO trên thiết bị di động thực tế, smart TV hoặc các thiết bị IoT khác thông qua Appium.

🫂

Cộng đồng Tận tâm

Vận hành một kênh hỗ trợ với hơn 8 nghìn thành viên và một hệ sinh thái phong phú các plugin được duy trì bởi cộng đồng.


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

Kiểm thử E2E và Đơn vị/Component trong trình duyệt thực tế!

WebdriverIO là một framework tất cả trong một cho phát triển ứng dụng web của bạn. Nó cho phép bạn chạy các bài kiểm thử component nhỏ gọn cũng như các kịch bản kiểm thử e2e trên trình duyệt hoặc thiết bị di động. Điều này đảm bảo bạn thực hiện kiểm thử trong môi trường được sử dụng bởi người dùng của bạn.

Nó đi kèm với các chiến lược bộ chọn thông minh giúp đơn giản hóa việc tương tác, chẳng hạn như với React components hoặc chạy các truy vấn bộ chọn sâu với cây shadow DOM lồng nhau. Vì các tương tác diễn ra thông qua giao thức tự động hóa tiêu chuẩn, nên đảm bảo chúng hoạt động một cách tự nhiên và không chỉ được mô phỏng bằng JavaScript.

Thiết lập dễ dàng cho kiểm thử web component với:

Vue.jsNuxtSveltePreactSolidJSLitStencil

Bắt đầu với WebdriverIO trong Tích tắc

Trình chạy kiểm thử WebdriverIO đi kèm với một giao diện dòng lệnh cung cấp tiện ích cấu hình mạnh mẽ và giúp bạn tạo thiết lập kiểm thử của mình trong chưa đầy một phút. Nó cho phép bạn chọn từ các tích hợp framework kiểm thử có sẵn và dễ dàng cho phép thêm tất cả các plugin báo cáo và dịch vụ được hỗ trợ!

Chỉ với một lệnh đơn giản, bạn có thể thiết lập một bộ kiểm thử hoàn chỉnh:


$ npm init wdio@latest ./

Bắt đầu tìm hiểu thêm về WebdriverIO và cách bắt đầu trên YouTube.

Xem các Bài nói về WebdriverIO

Cộng đồng xung quanh WebdriverIO đang tích cực nói chuyện tại các nhóm người dùng hoặc hội nghị khác nhau về các chủ đề cụ thể xoay quanh kiểm thử tự động hóa với WebdriverIO. Hãy xem bài nói này trên Các tính năng yêu thích của tôi trong WebdriverIO của Julia Pottinger tại Open Quality Conference.

Cũng có nhiều kênh YouTube với hướng dẫn hữu ích từ các thành viên cộng đồng như Klamping, Seventeenth Sep hoặc Automation Bro.

Tích hợp Google Lighthouse

WebdriverIO không chỉ chạy tự động hóa dựa trên giao thức WebDriver, mà còn tận dụng các API trình duyệt gốc để cho phép tích hợp với các công cụ phát triển phổ biến như Chrome DevTools hoặc Google Lighthouse. Với plugin @wdio/lighthouse-service, bạn có quyền truy cập vào các lệnh để xác thực xem ứng dụng của bạn có phải là ứng dụng PWA hợp lệ hay không, cũng như các lệnh để nắm bắt các số liệu hiệu suất giao diện người dùng như `speedIndex` và các chỉ số khác.

Tích hợp với các công cụ phát triển như:

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)

Ai đang sử dụng 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

Mã nguồn mở và Quản trị mở

Chúng tôi là một dự án mã nguồn mở với cam kết mạnh mẽ về tính minh bạch và quản trị cộng đồng. Chúng tôi là một phần của OpenJS Foundation thuộc Linux Foundation. Dự án được vận hành hoàn toàn bởi tình nguyện viên và được tài trợ bởi các công ty đầu tư muốn nhìn thấy dự án thành công. Nhóm dự án rất biết ơn sự tài trợ hào phóng từ các công ty này.

💎 Nhà tài trợ Cao cấp

🥇 Nhà tài trợ Vàng

Nếu bạn sử dụng WebdriverIO trong tổ chức của bạn, vui lòng cân nhắc hỗ trợ dự án bằng cách trở thành nhà tài trợ. Điều này sẽ giúp chúng tôi duy trì và phát triển dự án.

Chúng tôi muốn gửi lời cảm ơn chân thành đến tất cả những người đóng góp đã giúp WebdriverIO trở thành công cụ mạnh mẽ như ngày nay. Sự cống hiến và nỗ lực của bạn thực sự được đánh giá cao!

Welcome! How can I help?

WebdriverIO AI Copilot