Sử dụng Page Object Model trong selenium như thế nào

Để tiếp theo các bài viết về selenium tại mục https://viblo.asia/LeThi/posts/1qm6RWQyGeJE . Trong bài này, mình sẽ tiếp tục giới thiệu về một mô hình thiết kế testscript được sử dụng phổ biến trong selenium : Page Object Model (viết tắt là POM).

1. Giới thiệu về POM

POM là một mô hình thiết kế testscript và có các đặc điểm sau:

  • Tạo Kho đối tượng (object repository) cho các phần tử giao diện của web.
  • Dưới mô hình này, mỗi trang web trong ứng dụng đang viết có thể tương ứng với một lớp.
  • Lớp này sẽ tìm kiếm tất cả phần tử của web và chỉ chứa các phương thức để thực hiện vận hành trên các phần tử của trang web đó.
  • Tên của các phương thức này có thể được đặt như là công việc mà chúng đang thực hiện . Nó rất dễ dàng ánh xạ với các hoạt động xảy ra trong giao diện với người dùng. Ví dụ, Nếu muốn nhập user cho textbox user trên một trang, tên phương thức đó có thể là “setUserName”.

2. Lợi ích của POM

Khi tổ chức theo mô hình POM, các lợi ích thu được là:

  • Mô hình này làm cho code trở nên rõ ràng và dễ hiểu hơn, nó tránh sự lặp lại nhiều lần trong code. Do đó, Mô hình này sẽ trở nên dễ dàng hơn trong việc bảo trì và tái sử dụng.
  • Các kho lưu trữ là độc lập với các kịch bản test. Vì vậy, chúng ta có thể sử các kho lưu trữ giống nhau cho các mục đích khác nhau với những tool khác nhau. Ví dụ, chũng ta có thể tích hợp POM với TNG cho việc test chức năng

3. Thực thi POM và ví dụ

Tôi sẽ trình bày thực thi tạo một project POM trong Eclipse bằng ngôn ngữ lập trình Java.

  • Bước 1: Tạo ra một project có tên là POMFirts.

  • Bước 2: tạo Package có tên là pageObjects và một package có tên là Test
    o Gói pageObject : là gói chứa các class tương ứng với từng trang của website.
    o Gói Test: là gói chứa các class là các kịch bản test.

    POMFirts.png

  • Bước 3: chọn website “ http://demo.guru99.com/V4/ ” để thực hiện demo của mình. Website này gồm 2 trang Login và Home. Như vậy, sẽ tạo ra 2 pom class là: LoginPage và HomePage.

  • Bước 4: Chọn kịch bản test là:

    1. Vào website: http://demo.guru99.com/V4/

    2. Trong trang home kiểm tra “gurubank99” có hiển thị không

    3. Login vào trong ứng dụng

    4. Xác minh rằng trang Home bao gồm nội dung văn bản là “Manger Id : demo”

Như vậy, Kịch bản này sẽ tạo một class để xác minh những yêu câu và đặt tên cho class này là TestLogin.

  • Bước 5 : Dưới đây là test code được tổ chức theo mô hình POM cho kịch bản ở bước 4:

    1.  Lớp LoginPage
    

    LoginPage.png

    2.  Lớp HomePage
    

    HomePage.png

    3.  Lớp LoginTest
    

    LoginTest.png

Trong bài viết lần sau, mình sẽ trình bày tiếp về lập trình selenium trên mô hình MVC sử dụng kỹ thuật POM.