Playwright là một thư viện rất phong phú xây dựng bởi Microsoft, hỗ trợ nhiều ngôn ngữ khác nhau như Node.js, Python, Java, .Net; được tạo ra đặc biệt để đáp ứng yêu cầu của những kiểm thử cuối cùng. Playwright hỗ trợ tất cả các trình duyệt hiện đại bao gồm Chromium, WebKit và Firefox và có khả năng tự động hoá các trình duyệt chỉ với một API duy nhất. Playwright có thể chạy kiểm thử trên Windows, Linux và macOS, Local, trên CI, hoặc với giả lập di động native.
Playwright có thể thực hiện được các mong muốn của người viết automation như:
Để sử dụng, bạn cần cài đặt Python trước khi bắt đầu. Tùy hệ điều hành mà bạn có thể xem hướng dẫn cài đặt Python tại đây.
pip install pytest-playwright
Mặc định Playwright sẽ cài đặt tất cả các trình duyệt (chromium, firefox, webkit,…) được hỗ trợ, nó độc lập với trình duyệt hiện tại trên máy tính của bạn. Nếu bạn không muốn cài đặt tất cả hay chỉ muốn cài đặt một vài trình duyệt nào đó, bạn có thể tham khảo ở đây. Nếu bạn muốn quản lý/xoá các trình duyệt mặc định mà Playwright đã cài đặt cũng rất dễ dàng (tham khảo ở đây).
playwright install
Playwright cũng có thể dễ dàng làm việc được với các trình duyệt có sẵn trên máy tính của bạn, để thực hiện điều này bạn cần có sự hiểu biết đổi chút về cdp (Chrome DevTools Protocol).
Mình sẽ lấy ví dụ đơn giản nhất là kiểm tra khi vào trang playwright.dev có xuất hiện từ Playwright ở title không? Sau đó sẽ thực hiện các hành vi mô phỏng click chuột, tải trang…
Tạo một file “test_my_application.py” bên trong thư mục working của bạn hoặc tuỳ ý ở các nơi với nội dung code như sau:import re from playwright.sync_api import Page, expect def test_homepage_has_Playwright_in_title_and_get_started_link_linking_to_the_intro_page(page: Page): page.goto(“https://playwright.dev/”) # Expect a title “to contain” a substring. title = page.locator(‘.navbar__inner .navbar__title’) expect(title).toHaveText(‘Playwright’) #expect(page).to_have_title(re.compile(“Playwright”)) # create a locator get_started = page.get_by_role(“link”, name=”Get started”) # Expect an attribute “to be strictly equal” to the value. expect(get_started).to_have_attribute(“href”, “/docs/intro”) # Click the get started link. get_started.click() # Expects the URL to contain intro. expect(page).to_have_url(re.compile(“.*intro”))
Chúng ta có thể hiểu đoạn code hoạt động như sau:
Chạy test với câu lệnh sau ở terminal
pytest
Mặc định test sẽ được chạy trên trình duyệt chromium đã được playwright cài đặt ở trên. Bạn cũng có thể chỉ định rõ một trình duyệt khác thông qua các tham số ở CLI. Kết quả của việc test trên và logs sẽ được show trên terminal của bạn.
Một điều không thể thiếu đó là Playwright có khả năng sinh ra những đoạn mã rất dễ dàng qua những thao tác sử dụng của bạn, điều này rất có ích nếu bạn không có nhiều kiến thức về lập trình hoặc muốn nhanh chóng có thể xây dựng được bộ kiểm thử tự động.
playwright codegen demo.playwright.dev/todomvc
Chỉ với một vài command và một file test cơ bản. Bạn đã có thể bắt đầu với Playwright nói riêng, Automation test nói chung. Ở các bài tiếp theo, mình sẽ hướng dẫn các bạn viết test cho API và các kiến thức nâng cao hơn.
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE