UiAutomator передача параметров в тест

Здравствуйте подскажите пожалуйста:

1. Как передать параметры в UiAutomator тест из коммандной строки и как потом их в тесте взять?

2. Как запустить UiAutomator тест на эмуляторе с API <16?

3. Как запустить UiAutomator тест сразу на нескольких устройствах?

Заранее большое спасибо.

 

С задачей номер 1 уже разобрался.

Все оказалось очень просто.
Запускаем тест с коммандой строки: adb shell uiautomator runtest Demo.jar -e x test -c q.w.TestSecond
А в тесте добавляем две строчки
Bundle bun=this.getParams();
String w=bun.getString("x");
И теперь w=test. Передача параметров в тест это круто!
 

1 лайк

AndreyKharkov, Спасибо за пример решения

Для всех подключенных устройств так:

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 shell uiautomator runtest Demo.jar -c q.w.TestSecond
done

Если в цикле выполняется только 1 тест / команда, то целесообразно поставить амперсанд на конце — так тест будет запущен в фоне, т.е. практически одновременно на всех устройствах (без ожидания выполнения на предыдущем).

for DEVICE in $DEVICES_LIST; do \
  adb -s $DEVICE shell uiautomator runtest Demo.jar -c q.w.TestSecond &
done

К сожалению, никак. uiautomator появился в API 16. Раньше его просто не было – соответственно и тесты работать не будут.


В качестве альтернативы можете посмотреть в сторону monkeyrunner или Selendroid.

1 лайк

Спасибо!