Kiểm thử tự động, Playwright

Playwright là gì? Tìm hiểu về framework kiểm thử tự động Web

⚙️ Khi ứng dụng Web ngày càng phức tạp, việc lặp lại các test case thủ công có thể tiêu tốn nhiều thời gian, đặc biệt với kiểm thử hồi quy (regression testing). Kiểm thử tự động giúp chúng ta tự động hóa các test case phù hợp và có thể thực thi chúng thường xuyên trong quá trình phát triển phần mềm.

Một trong những công cụ được sử dụng phổ biến cho kiểm thử tự động các ứng dụng web hiện nay là Playwright.

Vậy Playwright là gì? Playwright có những tính năng nào và phù hợp với những ai? Hãy cùng TESTING VN tìm hiểu.

Playwright là gì?

Playwright là một framework mã nguồn mở được sử dụng để tự động hóa và kiểm thử ứng dụng Web, được phát triển bởi Microsoft.

Playwright cho phép Developer và Tester điều khiển trình duyệt bằng code để thực hiện các thao tác tương tự người dùng, chẳng hạn như:

  • Mở một trang Web
  • Click vào button hoặc link
  • Nhập dữ liệu vào form
  • Chọn một giá trị
  • Kiểm tra nội dung hiển thị
  • Kiểm tra URL
  • Kiểm tra title của trang
  • Kiểm tra các trạng thái hoặc kết quả của ứng dụng

Playwright hỗ trợ nhiều ngôn ngữ lập trình, trong đó Playwright cho Node.js hỗ trợ JavaScript và TypeScript và đi kèm Playwright Test – test runner được thiết kế cho kiểm thử end-to-end. Playwright cũng có phiên bản cho Python, Java và .NET.

Nói một cách đơn giản, Playwright giúp Tester viết code để tự động thực hiện và kiểm tra các test case trên ứng dụng Web.

Playwright dùng để làm gì?

Playwright chủ yếu được sử dụng để kiểm thử và tự động hóa các ứng dụng Web.

Ví dụ, với chức năng đăng nhập, thay vì Tester phải thực hiện thủ công nhiều lần:

  1. Mở trang đăng nhập.
  2. Nhập username.
  3. Nhập password.
  4. Click nút Login.
  5. Kiểm tra người dùng được chuyển đến trang Dashboard.

Tester có thể xây dựng một test case tự động bằng Playwright để thực hiện các bước trên và kiểm tra kết quả.

Playwright đặc biệt hữu ích với những test case:

  • Được thực hiện thường xuyên.
  • Có các bước tương đối ổn định.
  • Cần chạy trên nhiều trình duyệt.
  • Cần thực hiện trong kiểm thử hồi quy.
  • Có thể tích hợp vào CI/CD.

Tuy nhiên, không phải mọi test case đều phù hợp để automation. Việc lựa chọn test case nào nên tự động hóa vẫn cần dựa trên mục tiêu, rủi ro và bối cảnh của dự án.

Playwright hỗ trợ những trình duyệt nào?

Playwright hỗ trợ ba browser engine chính:

  • Chromium
  • Firefox
  • WebKit

Playwright có thể sử dụng các browser này để chạy cùng một bộ test case trên nhiều môi trường khác nhau. Ngoài ra, Playwright cũng hỗ trợ chạy test với các browser channel như Google Chrome và Microsoft Edge.

Ví dụ, một bộ test case có thể được cấu hình để chạy trên:

Chromium → Firefox → WebKit

Điều này giúp Tester kiểm tra khả năng hoạt động của ứng dụng Web trên nhiều browser engine thay vì chỉ kiểm tra trên một trình duyệt.

Playwright cũng hỗ trợ emulation cho một số thiết bị và viewport mobile. Tuy nhiên, điều này khác với việc kiểm thử ứng dụng mobile native; Playwright chủ yếu tập trung vào kiểm thử Web.

Playwright hỗ trợ những ngôn ngữ nào?

Playwright hiện có các phiên bản dành cho:

  • JavaScript / TypeScript
  • Python
  • Java
  • .NET

Các ngôn ngữ này sử dụng cùng nền tảng Playwright để tự động hóa trình duyệt, nhưng hệ sinh thái testing có thể khác nhau tùy ngôn ngữ.

Đối với Tester sử dụng JavaScript hoặc TypeScript, Playwright cung cấp Playwright Test, một test runner có các tính năng phục vụ trực tiếp cho kiểm thử như chạy test song song, HTML report, screenshot assertion và tracing.

Những tính năng nổi bật của Playwright

Hỗ trợ nhiều browser engine

Một trong những điểm đáng chú ý của Playwright là khả năng chạy test case trên Chromium, Firefox và WebKit.

Tester có thể cấu hình nhiều project trong playwright.config.ts để chạy cùng một bộ test case trên các browser hoặc thiết bị khác nhau.

Auto-waiting

Trong kiểm thử Web, một vấn đề thường gặp là ứng dụng chưa sẵn sàng khi automation thực hiện thao tác.

Playwright có cơ chế auto-waiting trong nhiều thao tác và assertion. Framework có thể chờ cho đến khi các điều kiện phù hợp được đáp ứng trước khi tiếp tục thực hiện thao tác.

Điều này giúp Tester giảm sự phụ thuộc vào những khoảng thời gian chờ cố định và góp phần xây dựng test case ổn định hơn.

Locator

Playwright cung cấp hệ thống Locator để xác định các phần tử trên trang Web.

Ví dụ:

page.getByRole('button', { name: 'Login' })

Hoặc:

page.getByLabel('Username')

Locator là một phần quan trọng trong Playwright vì cách xác định phần tử có ảnh hưởng đến khả năng ổn định và bảo trì của test case.

Assertion

Playwright Test cung cấp nhiều assertion để kiểm tra kết quả.

Ví dụ:

await expect(page).toHaveTitle(/Playwright/);

Hoặc:

await expect(page.getByText('Welcome')).toBeVisible();

Nhờ assertion, test case không chỉ thực hiện các thao tác trên giao diện mà còn có thể kiểm tra kết quả thực tế của ứng dụng.

Codegen

Playwright cung cấp Codegen, một công cụ có thể ghi lại các thao tác trên trình duyệt và tạo code tương ứng.

Ví dụ, Tester có thể thực hiện các thao tác như:

  • Mở trang Web
  • Click button
  • Nhập dữ liệu
  • Chọn option

Sau đó sử dụng code được tạo làm điểm bắt đầu để xây dựng test case.

Codegen có thể hữu ích khi mới làm quen với Playwright, nhưng code được tạo ra vẫn cần được Tester xem xét và chỉnh sửa để phù hợp với mục đích kiểm thử và khả năng bảo trì.

Parallel testing

Playwright Test hỗ trợ chạy nhiều test case song song thông qua cơ chế worker.

Điều này có thể giúp giảm thời gian thực thi khi bộ test case có số lượng lớn, đặc biệt trong các pipeline CI/CD.

Tuy nhiên, việc chạy song song cần được thiết kế phù hợp để tránh các test case phụ thuộc lẫn nhau hoặc tranh chấp dữ liệu.

Test report và Trace

Playwright Test cung cấp các công cụ hỗ trợ phân tích kết quả thực thi.

Tester có thể sử dụng HTML report, screenshot, video hoặc Trace Viewer tùy cấu hình để tìm hiểu test case đã thực hiện những gì và hỗ trợ phân tích khi test case thất bại.

Những tính năng này đặc biệt hữu ích khi automation test được chạy trên CI/CD và Tester không trực tiếp quan sát trình duyệt.

Playwright có phù hợp với Manual Tester không?

Có.

Manual Tester có thể học Playwright để mở rộng từ kiểm thử thủ công sang kiểm thử tự động Web.

Tuy nhiên, học Playwright không chỉ là học cách:

  • Click button
  • Nhập dữ liệu
  • Kiểm tra text
  • Mở URL

Tester vẫn cần sử dụng kiến thức kiểm thử để quyết định:

  • Test case nào phù hợp để automation?
  • Nên kiểm tra những scenario nào?
  • Test data được tổ chức như thế nào?
  • Assertion nào cần được sử dụng?
  • Làm thế nào để test case dễ bảo trì?
  • Làm thế nào để hạn chế flaky test?

Do đó, kiến thức kiểm thử vẫn là nền tảng, còn Playwright là một công cụ giúp Tester hiện thực hóa kiểm thử tự động. Và để làm việc hiệu quả với kiểm thử tự động, Tester cần trang bị kỹ năng lập trình cơ bản.

Tham khảo khoá Lập trình dành cho Tester tại đây.

Playwright và kiểm thử hồi quy

Kiểm thử hồi quy là một trong những trường hợp sử dụng phổ biến của kiểm thử tự động.

Khi một ứng dụng liên tục được cập nhật, Tester có thể phải thực hiện lại nhiều test case để kiểm tra những chức năng đã hoạt động trước đó.

Với những test case phù hợp, Playwright có thể giúp tự động hóa việc thực thi và chạy lại chúng nhiều lần.

Ví dụ: Thay đổi mã nguồn → Build → Deploy → Chạy bộ regression test → Phân tích kết quả

Khi được tích hợp vào CI/CD, các test case tự động có thể được thực thi thường xuyên hơn trong quá trình phát triển.

Tuy nhiên, automation không thay thế toàn bộ kiểm thử hồi quy. Tester vẫn cần duy trì, cập nhật và đánh giá giá trị của các test case trong bộ regression test.

Playwright có phải là Selenium không?

Playwright và Selenium đều có thể được sử dụng để tự động hóa trình duyệt cho kiểm thử Web, nhưng chúng là những công cụ/framework khác nhau và có cách tiếp cận kỹ thuật khác nhau.

Một số khác biệt có thể được xem xét gồm:

Khía cạnhPlaywrightSelenium
Browser automationCóCó
ChromiumCóCó
FirefoxCóCó
WebKitCóKhông phải mục tiêu chính của Selenium
JavaScript / TypeScriptCóCó
PythonCóCó
JavaCóCó
.NETCóCó
Test runner tích hợpPlaywright Test cho Node.jsThường sử dụng framework testing riêng
Auto-waitingCó nhiều cơ chế tích hợpCách tiếp cận khác

Việc lựa chọn công cụ nào phụ thuộc vào công nghệ của dự án, kỹ năng của đội ngũ, yêu cầu về browser, hệ thống hiện có và nhiều yếu tố khác.

Nếu muốn tìm hiểu sâu hơn về hai công cụ, có thể xem thêm bài Playwright và Selenium: So sánh hai công cụ kiểm thử tự động Web.

Playwright có khó học không?

Mức độ khó khi học Playwright phụ thuộc nhiều vào nền tảng của người học.

Nếu đã có kiến thức kiểm thử và một số kiến thức lập trình cơ bản, bạn có thể bắt đầu với những nội dung đơn giản như:

  1. Cài đặt Playwright.
  2. Tạo project.
  3. Viết test case đầu tiên.
  4. Sử dụng Locator.
  5. Sử dụng Assertion.
  6. Chạy test case.
  7. Xem test report.

Sau đó có thể tiếp tục với những chủ đề nâng cao hơn như:

  • Fixtures
  • Test hooks
  • Test data
  • Page Object Model
  • Multiple browsers
  • Parallel testing
  • Trace và debugging
  • CI/CD
  • Quản lý và giảm flaky test
Bạn có thể bắt đầu với bài hướng dẫn Cài đặt Playwright và viết test case đầu tiên với TypeScript tại đây.

Playwright phù hợp với ai?

Playwright có thể phù hợp với nhiều đối tượng tham gia phát triển và kiểm thử phần mềm, chẳng hạn:

Manual Tester muốn học Automation Testing

Nếu đã có nền tảng kiểm thử thủ công và muốn phát triển thêm kỹ năng automation, Playwright có thể là một lựa chọn để bắt đầu với kiểm thử tự động Web.

Automation Tester

Automation Tester có thể sử dụng Playwright để xây dựng và duy trì các bộ test case tự động cho ứng dụng Web.

Developer

Developer cũng có thể sử dụng Playwright để xây dựng end-to-end test và kiểm tra hành vi của ứng dụng trong quá trình phát triển.

Học Playwright với TypeScript

Playwright hỗ trợ cả JavaScript và TypeScript. Đối với người muốn xây dựng automation test có cấu trúc rõ ràng, TypeScript là một lựa chọn đáng tìm hiểu.

Nếu bạn muốn học Playwright một cách có hệ thống, TESTING VN có Khóa học Playwright – Kiểm thử tự động Web với TypeScript.

Khóa học tập trung vào việc sử dụng Playwright và TypeScript để xây dựng kiểm thử tự động Web, từ kiến thức nền tảng đến các kỹ thuật cần thiết để phát triển automation test trong dự án thực tế.

👉 Xem Khóa học Playwright – Kiểm thử tự động Web với TypeScript tại TESTING VN.

Kết luận

Playwright là một framework mã nguồn mở dành cho tự động hóa và kiểm thử ứng dụng Web, hỗ trợ Chromium, Firefox và WebKit cùng nhiều tính năng phục vụ kiểm thử tự động như Locator, Auto-waiting, Assertion, parallel testing, test report và tracing.

Playwright không thay thế kiến thức kiểm thử. Để xây dựng automation test có giá trị, Tester vẫn cần biết cách phân tích yêu cầu, thiết kế test case, lựa chọn test case phù hợp để automation và duy trì bộ test trong suốt vòng đời của sản phẩm.

Nếu bạn mới bắt đầu, có thể đi theo lộ trình: Kiến thức Testing → TypeScript cơ bản → Playwright → Viết test case → Xây dựng bộ test case tự động → CI/CD

Từ đây, bạn có thể tiếp tục tìm hiểu Playwright thông qua các bài hướng dẫn chuyên sâu hoặc tham gia Khóa học Playwright – Kiểm thử tự động Web với TypeScript tại TESTING VN.

Cần tư vấn thêm, vui lòng liên hệ fanpage: https://www.facebook.com/testingvn

You Might Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *