Можно ли сделать снимок экрана и проверить значения пикселей с помощью эспрессо?

Я начал использовать эспрессо и написал несколько простых UI-тестов для нажатия на кнопки, ввода текста и проверки, все ли там, где должно быть. Теперь я хотел сделать снимок экрана и проверить некоторые значения пикселей, но не могу найти способ сделать это. У кого-нибудь есть предложения? Возможно ли это даже с эспрессо?


person meatboy    schedule 12.11.2013    source источник


Ответы (4)


Поскольку тесты эспрессо — это простые тесты InstrumentationTestCases, вы можете использовать папарацци и знаменитостей, чтобы делать снимки экрана вашего приложения. .

Spoon также как очень удобная система скриншотов. Острее, чем папарацци, но они могут делать скриншоты только действий, а не диалогов, например.

И последнее, но не менее важное: начиная с Android SDK 16, вы можете использовать утилита для скриншотов, позволяющая делать очень быстрые и четкие скриншоты приложения. Я думаю, что это решение действительно лучшее, но оно работает только с SDK 16+.

Наконец, чтобы проверить скриншоты на эталонном скриншоте, нет реальных инструментов. Вы можете найти отличные идеи реализации в stack overflow, но до сих пор ни у кого не было справочного инструмента, который можно было бы использовать на Android.

person Snicolas    schedule 16.11.2013
comment
Спасибо за ваш ответ. Проблема в том, что мне действительно нужно протестировать LiveWallpaperService. Мне нужно сделать снимок экрана PreviewMode LiveWallpaper и снимок экрана домашнего экрана, а затем выполнить на них пиксельные тесты, чтобы я мог видеть, совпадают ли они. - person meatboy; 22.11.2013
comment
Звучит довольно сложно, на мой взгляд, добиться этого. Нет ли способа получить имя файла, который используется для обоев? - person Snicolas; 22.11.2013
comment
Я не могу этого сделать, потому что у пользователя есть возможность создавать свои собственные живые обои, изменяя различные изображения и поведение, и нет файла, который я мог бы прочитать, где отображаются все живые обои. Я постараюсь найти обходной путь для этого - person meatboy; 25.11.2013
comment
Таким образом, вы действительно должны отметить несколько пикселей, чтобы их было легко обнаружить. Вы можете использовать некоторые приемы стеганографии: .com/ - person Snicolas; 25.11.2013

Facebook создал инструмент для сравнения скриншотов, если это то, что вам нужно: http://facebook.github.io/screenshot-tests-for-android/

Итерировать код пользовательского интерфейса сложно. Как быстро убедиться, что изменения вашего макета или представления работают правильно во всех конфигурациях? screenshot-tests-for-android может решить эти проблемы, предоставив тестовую среду, которая проверяет визуальные различия между изменениями.

person Piotr Zawadzki    schedule 21.06.2016

Я развил версию, чтобы добавить Espresso run with Spoon в набор инструментов отличного качества для Android, проверьте это вне

Просто запустите, и вы увидите:

mvn clean install -P espresso-spoon
person Wangchao0721    schedule 05.12.2013
comment
разветвленная версия чего? Последнее обновление в репозитории было более 4 лет назад. Есть ли какие-либо планы по обновлению/поддержанию улучшений инструментов тестирования рефлексов за последние несколько лет? Благодарность - person Ewoks; 29.05.2017

В качестве альтернативы сравнению скриншотов вы можете рассмотреть возможность сравнения самого состояния макета (т. е. позиций представлений) с помощью таких библиотек, как LayoutVerifier.

Хотя это не даст вам визуального представления макета в виде снимка экрана, по сути, оно выполняет ту же функцию, сравнивая состояния представлений. Кроме того, он работает на Robolectric, что избавляет от необходимости запускать его на реальном устройстве.

person Dmitry Zaytsev    schedule 10.05.2020