Xin chào các bạn – đây loạt bài viết hướng dẫn về Protractor – Angular E2E Testing. Loạt 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
- Selenium Binding:
- 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
- Selenium:
- Unit testing framework support:
- Selenium
- JUnit | TestNG | NUnit | xUnit | MSTest | PyTest | …
- Protractor
- Jasmine | Mocha | Cucumber-JS
- Selenium
- Performance:
- Non-Angular:
- Selenium faster
- Angular:
- Protractor faster (Built-in wait for Ajax | Angular)
- Non-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
- Non-Angular app:
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.