WinAppDriver сравнение скриншотов для windows wpf приложения

Нужна помощь в выборе инструмента для тестирования watermark / image overlay. Transparency может быть 0%, это не должно быть проблемой.

Приложение WPF на Windows, автотесты написаны на Winappdriver + C#, теперь хочется сделать скриншот конкретного элемента и видимо потом надо по маске сравнить действительное изображения с идеальным образцом.

Тестируемое приложение по факту видеокамера с возможностью вставить логотип / watermark и/или дополнительные данные (дата / ФИО / место) на изображение и видео. Задача - автоматически проверять корректность вставленного в изображение/видео логотипа и информации (размер, цвет, вдруг логотип был вставлен зеркально, вдруг ФИО введено некорректно и тд…).

Пока думаю про OpenCV и Sikuli. Знаю, что у Appium было что-то похожее, но не уверена насчет возможности использовать это с WinAppDriver.

Также непонятно, как и что можно тестировать с видео. Брать один случайный frame и провеярять для него, как для картинки?

Инструменты типа Gemini / Ashot мне скорее всего не подойдут из-за моего браузера?
Еще нашла ImageMagic и PixelMatch…

В общем глаза разбегаются, что проще взять - не понятно.

Winappdriver поддерживает из коробки взятие скриншота как элемента, так всего окна приложения.
Вам остаётся прикрутить сравнение 2х картинок (я нагуглил типа такого: How to compare two images in C# .NET - DEV Community). Но возможно, вам более подробно подскажут про хорошую библиотеку сравнения изображений.
А вот это что такое ImageComparer Class (Microsoft.VisualStudio.TestTools.UITesting) | Microsoft Learn ?

А по сути теста - сохраняете эталон (картинка видео на нужном времени), а тесте переходите на это время в видео и берёте скриншот, ну и сравниваете с эталоном.

2 лайка

Спасибо, не знала про ImageComparer от Майкрософт, попробую сделать на нем для начала тогда, просто с картинкой

Лично я использую для сравнения картинок ImageMagick библиотеку, да и вообще для работы с изображениями это один из лучших вариантов на c# в опенсорсе, имхо, использовал её при написании бота для мобильной игры, всё работает быстро и так, как ожидается (сравнение цвета пикселей, ресайзы, смена цвета, повороты, там в общем огромное количество всего).

Конечно, данный инструмент тяжёл для входа, но в нём есть всё, что может потребоваться и в будущем.

А так же при сравнении картинок можно задавать погрешность.

3 лайка