Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

автоматизация обработки нескольких устройств android


(Eugene Borodenkov) #1

Привет, есть скрипт который удаляет устанавливает а потом запускает monkey тест и все пишет в логи.

adb devices
adb logcat -c
adb uninstall NAME
adb install NAME.apk
adb logcat -d > log/AppRun.log
adb logcat -c
adb shell monkey -p NAME -v 500
adb logcat -d > log/AppMonkey.log

Подскажите как можно сделать что бы он проходился по очереди по всем подключенным устройствам


(Oleksandr Pylkevych) #2

у каждого устройства есть уникальный идентификатор. Чтобы его посмотреть выполните команду:

adb devices

После этого перед каждой командой в Вашем скрипте добавьте опцию -s. Т.е.:

adb -s тут_вставь_уникальный_номер_девайса logcat -c
adb -s тут_вставь_уникальный_номер_девайса uninstall NAME
adb -s тут_вставь_уникальный_номер_девайса install NAME.apk

и так далее.


(Eugene Borodenkov) #3

А если этих устройств 30?


(Oleksandr Pylkevych) #4

может можно сделать как-то быстрее, но что трудного в том, чтобы запускать команды на 30-ти устройствах?


(Andrey Kharkov) #5

Напишите java класс который будет в цикле запускать все эти комманды для каждого устройства, либо напишите какой-нибудь примитивный батник


(Dmitry Cheremushkin) #6

Если в unix-подобной системе, то так:

rm log/AppRun.log
rm log/AppMonkey.log

NUM=`expr $(adb devices | wc -l) - 1`
DEVICES_LIST=`adb devices | tail -$NUM | awk -F " " '{print $1}'`

for DEVICE in $DEVICES_LIST; do \
  adb -s $DEVICE logcat -c
  adb -s $DEVICE uninstall NAME
  adb -s $DEVICE install NAME.apk
  adb -s $DEVICE logcat -d >> log/AppRun.log
  echo "" >> log/AppRun.log
  adb -s $DEVICE logcat -c
  adb -s $DEVICE shell monkey -p NAME -v 500
  adb -s $DEVICE logcat -d >> log/AppMonkey.log
  echo "" >> log/AppMonkey.log
done