- Cách dễ nhất để tự động hóa kiểm thử UI của ứng dụng di động
- Có khả năng chịu lỗi nội tại đối với sự không ổn định của các phần tử UI
- Vì các phần tử UI không phải lúc nào cũng ở đúng vị trí mong đợi, nên việc chạm vào màn hình không phải lúc nào cũng hoạt động
- Công cụ được thiết kế để chấp nhận và ứng phó với sự không ổn định của ứng dụng di động và thiết bị
- Có khả năng chịu lỗi nội tại đối với độ trễ
- Không cần chèn lệnh gọi
sleep() vào bài kiểm thử
- Công cụ hiểu rằng việc tải nội dung (ví dụ: qua mạng) có thể mất thời gian, nên sẽ tự động chờ nhưng không chờ lâu hơn mức cần thiết
- Cho phép lặp lại rất nhanh
- Các bài kiểm thử được diễn dịch nên không cần biên dịch
- Có thể liên tục theo dõi tệp kiểm thử và chạy lại khi có thay đổi
- Cung cấp cú pháp mang tính khai báo nhưng vẫn mạnh mẽ
- Định nghĩa bài kiểm thử trong tệp
yaml
- Thiết lập đơn giản
- Là một binary duy nhất hoạt động ở mọi nơi
Ý kiến của GN⁺
- Maestro là một công cụ mới cho tự động hóa kiểm thử ứng dụng di động, nhằm khắc phục các hạn chế của Appium, Espresso, UIAutomator, XCTest hiện có. Đặc biệt, công cụ này có khả năng chịu lỗi nội tại đối với sự không ổn định của phần tử UI và độ trễ, nên có vẻ có thể giảm các vấn đề thường phát sinh khi dùng công cụ hiện tại.
- Vì sử dụng cú pháp khai báo dựa trên YAML, ngay cả kỹ sư QA không phải lập trình viên cũng có thể dễ dàng viết test case. Tuy vậy, nếu chưa quen với cú pháp YAML thì vẫn sẽ có chi phí học tập ban đầu.
- Trong các công cụ tự động hóa kiểm thử ứng dụng di động, Appium hiện được sử dụng rất rộng rãi. Appium có ưu điểm là hỗ trợ nhiều nền tảng di động và ngôn ngữ lập trình, nhưng nhược điểm là tỷ lệ test thất bại cao do vấn đề ổn định. Cần tiếp tục theo dõi xem Maestro có thể giải quyết những vấn đề này của Appium đến mức nào.
- Hiện tại Maestro có tài liệu khá đầy đủ và cũng đang vận hành cộng đồng Slack, nên là một lựa chọn đáng cân nhắc để áp dụng. Tuy nhiên, vì vẫn còn là phiên bản giai đoạn đầu, có vẻ sẽ cần kiểm chứng đầy đủ trước khi áp dụng vào môi trường production.
4 bình luận
Mình thử rồi thì thấy cũng ổn, làm khá nhanh (từ lúc setup đến khi tạo file yaml cho bài test đầu tiên chỉ khoảng trong vòng 1 giờ).
maestro đơn giản và có nhiều điểm hay. Tuy nhiên, trên Android vẫn còn vấn đề nhập tiếng Hàn. https://github.com/mobile-dev-inc/maestro/issues/146
Một điểm đáng tiếc nữa là nó không chạy nhanh so với các công cụ test khác. Thông thường, công cụ test chạy rất nhanh, khác với người dùng thực tế, nên nếu không thiết kế
waitthật kỹ thì sẽ có vấn đề test bị fail flaky. Maestro thì chậm đến mức khiến tôi có cảm giác như họ chỉ đơn giản chọn cách giải quyết bằng việc chờ thật lâu. ^^;;;Mặt khác, trong mảng web frontend testing, cách tiếp cận tận dụng các yếu tố accessibility đang ngày càng được ưa chuộng, và trên mobile cũng vậy. (tham khảo: https://blog.banksalad.com/tech/test-in-banksalad-ios-2/)
Do Maestro chủ yếu dựa vào text và id nên khá khó để phân biệt role như link, button hay heading của "danh sách sản phẩm". Cũng khá tiếc là những phần có thể kiểm chứng trên web bằng
aria-checked,aria-expandedv.v. lại không có.Với tôi, để tránh xung đột id,
test-idthường phải gắn thêm prefix các kiểu, và cuối cùng việc phải kiểm tra lại xem phần tử lấy ra theo cách này có render đúng text như mong đợi hay không cũng khá phiền.Cảm ơn bạn vì bình luận đầy những góc nhìn sâu sắc.