2014-01-27 5 views
0

Мне нужно найти решение для проверки некоторых сценариев рендеринга. В основном это некоторые приложения, которые отображают некоторые анимации на экране. Если анимация отображается, тест проходит, если не выполняется. У меня нет источников для apk. До сих пор, используя monkeyrunner, я использовал 2 скриншота и сравнивал их. Если две фотографии, где проходят разные тесты. Теперь из-за ошибки в эмуляторе Android я больше не могу снимать скриншот.Автоматическая обработка сценариев рендеринга Blackbox

+0

Добро пожаловать! Как правило, мы стараемся избегать благодарения taglines в вопросах, чтобы сохранить их более аккуратными, вы можете прочитать, почему здесь: «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http: // meta. stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts)». – veducm

ответ

0

Если вы не можете делать скриншоты с помощью MonkeyRunner, я предлагаю попробовать сделать снимок экрана на устройстве с помощью команды оболочки, вытащив полученное изображение на главный компьютер и прочитав изображение в MonkeyImage.

Во-первых, получить устройство, чтобы сделать скриншот на своем собственном:

monkeyDevice.shell("screencap -p /sdcard/screen.png") 

Во-вторых, вытащить скриншот из устройства:

from subprocess import call 
call(["adb", "pull", "/sdcard/screen.png"]) 

В-третьих, загрузите скриншот как MonkeyImage

image = MonkeyRunner.loadImageFromFile('screen.png') 

Теперь вы можете сравнить изображения, используя image.sameAs как обычно.

Обратите внимание, что MonkeyRunner.loadImageFromFile был добавлен в версию SDK 13.

+0

Я уже говорил вам, что это больше не работает из-за ошибки в andoird, картинки всегда черные, поэтому мне нужен рабочий стол –

+0

Извините, я не думал, что только скриншоты через MonkeyRunner не работают из вашего описания. Вы могли бы написать класс ActivityInstrumentationTestCase2 и использовать getActivity для доступа к корневому представлению. Когда у вас есть корневой вид, вы можете записать его в файл несколькими способами (см. Http://stackoverflow.com/questions/2661536/how-to-programatically-take-a-screenshot-on-android) и вытащите результирующий файл, как описано выше. Поскольку вы тестируете Blackbox, вы должны повторно подписать целевое приложение с тем же ключом, что и приложение для инструментов, используя инструмент подписи: http://www.troido.de/re-sign.jar –

Смежные вопросы