вторник, 10 апреля 2012 г.

Robotium: автоматизированное тестирование android приложений методом Blackbox (часть 1)

В этой статье хочу описать как автоматизировать тестирование андроид приложений, имея один лишь 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 и переходим в папку явы:

>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  


И найти там нужную... Или спросить у программистов :)



1 комментарий:

javascript:void(0)