PixelGrabber là một thư viện Java cho phép lấy ra các điểm ảnh (pixels) trên hình và từ đó có thể dùng để so sánh để phát hiện ra sự thay đổi, khác biệt giữa hai bức ảnh. Có thể ứng dụng vào Automation để nhận biết những sự thay đổi layout.

Kết quả:

Input layout: 01.png & 02.png
Output: Passed. They are the same!

Input layout: 01_changed.png vs 02_changed.png
Output: Failed. There are some difference between 2 images!

Nếu file không tồn tại sẽ hiển thị thông báo: File(s) could not found!

The PixelGrabber class implements an ImageConsumer which can be attached to an Image or ImageProducer object to retrieve a subset of the pixels in that image.

Nhận diện hình ảnh là một chủ đề hay và đáng tìm hiểu để ứng dụng vào kiểm thử tự động.

3 Comments

  1. Thanks Sáng nhiều nhé. Nhiều chia sẻ hữu ích quá em 🙂

  2. Test này sẽ fail nếu 2 screenshot có 1/vài dữ liệu khác nhau phải không anh? Vd: screenshots được chụp vào thời điểm khác nhau, khi đó goá trị thời gian trên góc trên của 2 screenshot sẽ khác nhau => lúc compare sẽ fail?

    • Chào em, cách này sẽ so sánh hai layout và chỉ ra những sự khác biệt. Giống như em nói nếu thời gian chụp khác nhau thì cũng xem là một khác biệt và code sẽ báo Fail. Em có thể tìm cách để ẩn Status Bar trên điện thoại (có cách để ẩn) sau đó chụp màn hình layout.
      Ngoài ra cách này còn áp dụng trên web và một vài trường hợp so sánh ảnh khác, tuy nhiên nó cũng mang nhiều khuyết điểm khi so sánh theo pixel to pixel.

Leave a Comment

Your email address will not be published. Required fields are marked *