В этой статье хочу описать как автоматизировать тестирование андроид приложений, имея один лишь apk файл с помощью Robotium. В ру-нете я не нашел подобного описания, поэтому надеюсь эта статья кому-то очень поможет.
Все действия будут выполняться в среде Win7 x64.
Основной момент в тестировании без исходников заключается в переподписании своими ключами тестируемого приложения.
1. Подпись через ява-приложение
Самый быстрый способ подписать приложение своими ключами - скачать ява-приложение отсюда. Перетаскиваем в него apk файл, выбираем куда сохранить переподписанное приложение и вуаля. Но у меня такое вуаля не получилось... Поэтому я пошел по второму пути
2. Подпись через командную строку
Итак, чтобы начать нам понадобятся:
- тестируемое приложение. Его необходимо открыть и удалить оттуда папку META-INF, содержащую подпись разработчиков.
- установленный эклипс с avd manager;
- установленная Java jdk версии 1.6.0_29 (с версией 1.7.0_1 работает не всегда корректно).
- копируем из папки C:\Users\user\.android и переносим в C:\Program Files\Java\jdk1.6.0_29\bin файл debug.keystore. Это файл ключей, которым нам необходимо переподписать наше тестируемое приложение.
Открываем командную строку cmd и переходим в папку явы:
//Указываем хранилище ключей и место расположения тестируемого приложения
//вводим пароль
Если все хорошо, то выпадет листинг подписанных файлов:
На всякий случай лучше проверить подпись:
Выполняем zipalign:
3. Установка приложения
Теперь можно перейти к установке приложения на эмулятор:
>cd /d C:\Program Files (x86)\Android\android-sdk\platform-tools
4. Обнаружение launcher activity
Для роботиума важно знать имя активности которая выполняет запуск нашего приложения. Мы сможем узнать ее открыв логи. Очень удобно выводить логи в отдельный текстовый файл.
cd C:\Program Files (x86)\Android\android-sdk\platform-tools
Кстати, все активности можно посмотреть командой:
platform-tools> adb shell pm list packages
И найти там нужную... Или спросить у программистов :)
Основной момент в тестировании без исходников заключается в переподписании своими ключами тестируемого приложения.
1. Подпись через ява-приложение
Самый быстрый способ подписать приложение своими ключами - скачать ява-приложение отсюда. Перетаскиваем в него apk файл, выбираем куда сохранить переподписанное приложение и вуаля. Но у меня такое вуаля не получилось... Поэтому я пошел по второму пути
2. Подпись через командную строку
Итак, чтобы начать нам понадобятся:
- тестируемое приложение. Его необходимо открыть и удалить оттуда папку META-INF, содержащую подпись разработчиков.
- установленный эклипс с avd manager;
- установленная Java jdk версии 1.6.0_29 (с версией 1.7.0_1 работает не всегда корректно).
- копируем из папки C:\Users\user\.android и переносим в C:\Program Files\Java\jdk1.6.0_29\bin файл debug.keystore. Это файл ключей, которым нам необходимо переподписать наше тестируемое приложение.
Открываем командную строку cmd и переходим в папку явы:
>cd C:\Program Files\Java\jdk1.6.0_29\bin
//Указываем хранилище ключей и место расположения тестируемого приложения
>jarsigner -verbose -keystore debug.keystore -storepass android -keypass android D:\test\App.apk androiddebugkey
//вводим пароль
>android
Если все хорошо, то выпадет листинг подписанных файлов:
На всякий случай лучше проверить подпись:
> jarsigner -verify -verbose -certs D:\tests\App.apk
Выполняем zipalign:
>cd C:\Program Files (x86)\Android\android-sdk\tools
>zipalign -v 4 D:\tests\test.apk D:\tests\App.apk D:\tests\AppToTest.apk
3. Установка приложения
Теперь можно перейти к установке приложения на эмулятор:
>cd /d C:\Program Files (x86)\Android\android-sdk\platform-tools
>adb install D:\test\AppToTest.apk
4. Обнаружение launcher activity
Для роботиума важно знать имя активности которая выполняет запуск нашего приложения. Мы сможем узнать ее открыв логи. Очень удобно выводить логи в отдельный текстовый файл.
cd C:\Program Files (x86)\Android\android-sdk\platform-tools
>adb.exe > adb logcat > c:\logcat.txtПосле этого выполняем запуск на эмуляторе приложения и смотрим логи. Там находим имя активности которая выполняется первой в тестируемом приложении.
Кстати, все активности можно посмотреть командой:
platform-tools> adb shell pm list packages
И найти там нужную... Или спросить у программистов :)
Очень интересно, а продолжение планируется?
ОтветитьУдалить