Xin chào các bạn – đây loạt bài viết hướng dẫn về Build Automation Framework. Loạt bài viết này được hướng dẫn từ khóa học Build Automation Framework in Java with Page Object Pattern – bạn nào quan tâm và muốn làm bài bản thì nên tham gia để học và thực hành trên dự án từ A-Z nhé.

 


Bài viết này hướng dẫn tạo Java project và xây dựng cấu trúc của 1 test automation framework – các bạn lưu ý rằng 1 framework không bó buộc phải theo style nào nhất định vì nó còn tùy thuộc vào tool/ thư viện đang sử dụng và chức năng mà dự án cần/ khả năng và tư duy của người xây dựng lên framework đó

Tools

  • Trong phạm vi các bài đầu mình sẽ hướng dẫn từ cơ bản nên sẽ tạo dự án dạng Java project – sẽ convert qa Maven project trong các bài viết sau theo đúng lộ trình
  • Môi trường ổn định các bạn đọc thêm về bài viết này (Sự tương thích giữa các version)
    • Java JDK (version 1.8)
    • Eclipse for Java Developer
    • Chrome browser mới nhất
    • Chrome driver mới nhất
    • Firefox 47.0.2 hoặc mới nhất
    • Selenium 2.53.1 hoặc mới nhất

Framework structure

  • Khởi tạo 1 Java project và các tầng tương ứng – tùy vào phạm vi của framework và cách người triển khai đặt tên nhưng về cơ bản có thể tạo ra các tầng (source folder) như sau:
    • testcases: chứa các testscript (chia nhỏ ra để quản lí từ function/ module/ class)
    • testdata: chứa bộ data test (nếu có) khi tách riêng ra các external file để quản lí (.xlsx/ .json/ .java/..)
    • actions: chứa các module
      • pageObjects: chứa các page class
      • commons: chứa các common class như AbstractPage/ AbstractTest/ Global_Constant
      • reportConfig: chứa các class để config report html (ReportNG/ Extent Report)
    • interfaces: chứa các UI (User Interface) của các page application – cụ thể là định nghĩa các locator cho element trong 1 page
    • resources: chứa các external config như log.xml/ testng.xml/ .properties/…
    • các thư mục khác:
      • libraries
      • browserDriver
      • uploadFiles
      • downloadFiles
      • screenshot
      • ..
    • Sau khi tạo xong cấu trúc hiển thị như thế này là finish

Add lib/ driver

  • Bài sau mình sẽ hướng dẫn để tạo test sample đầu tiên viết theo level basic (step-by-step) – mục đích để compare ưu/ nhược điểm vs các cách viết khác