t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f7489b6a0d0> #<Tag:0x00007f7489b69f40> #<Tag:0x00007f7489b69ce8> #<Tag:0x00007f7489b69950>

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

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

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

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

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

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

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

Winappdriver поддерживает из коробки взятие скриншота как элемента, так всего окна приложения.
Вам остаётся прикрутить сравнение 2х картинок (я нагуглил типа такого: https://dev.to/atir_tahir/how-to-compare-two-images-in-c-net-5glo). Но возможно, вам более подробно подскажут про хорошую библиотеку сравнения изображений.
А вот это что такое https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.testtools.uitesting.imagecomparer?view=visualstudiosdk-2017 ?

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

2 Симпатий

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

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

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

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

3 Симпатий