Xin chào các bạn – đây loạt bài viết hướng dẫn về Protractor – Angular E2E Testing. Series bài viết này trích từ khóa học Protractor E2E Testing – 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 từ A-Z nhé.

Bài viết đầu tiên so sánh sự khác nhau giữa Selenium vs Protractor – nên lựa chọn tool nào cho dự án và ứng dụng cần test – ưu nhược điểm của từng loại tool.

Selenium vs Protractor

  • Binding Language:
    • Selenium Binding:
      • Java | C# | Python | Ruby | Javascript | PHP
      • Support cho hầu hết các ngôn ngữ lập trình thông dụng
    • Protractor Binding:
      • Javascript | Typescript
  • AUT (Application Under Test):
    • Selenium:
      • Non-Angular: Good
      • Angular: Fluent wait (Deep)
    • Protractor
      • Non-Angular: browser.ignoreSynchronization = true
      • Angular: Good – Protractor tự động wait cho Ajax/ Angular app
  • Unit testing framework support:
    • Selenium
      • JUnit | TestNG | NUnit | xUnit | MSTest | PyTest | …
    • Protractor
      • Jasmine | Mocha | Cucumber-JS
  • Performance:
    • Non-Angular:
      • Selenium faster
    • Angular:
      • Protractor faster (Built-in wait for Ajax | Angular)
  • Selection:
    • Non-Angular app:
      • Nên sử dụng Selenium binding theo đúng ngôn ngữ đã được implement bên dev team – tiện cho quá trình tích hợp process CI/ CD/ build app
      • Ví dụ: App dev bằng C# thì nên (ko phải bắt buộc) chọn Selenium C# để tận dụng được support từ bên đội dev cũng như server/ CI/ CD
      • Không nên sử dụng Protractor cho các app là non-angular
    • Angular app:
      • Nên sử dụng Protractor để tận dụng được những tính năng phát triển riêng cho Angular app (Wait/ Locator/ Language/..)
      • Các app viết bằng Angular thường sử dụng Javascript (AngularJS) và Typescript (Angular 2 trở lên) nên việc sử dụng Protractor tiện cho quá trình tích hợp từ build/ CI/ CD

Bài viết tiếp theo hướng dẫn cách tạo ra 1 project protractor-e2e-testing sử dụng Angular CLI và cài đặt những tool cần thiết – hẹn gặp lại.