AWS Device Farm — передача параметров в сценарий тестирования Robotium — Android

Я хочу автоматизировать тесты Robotium, работающие в моем приложении для Android, однако мне нужно передать параметры моим тестам, чтобы они могли работать с этой конфигурацией.

Я могу запустить свои тесты из командной строки следующим образом:

adb shell am instrument -r -w -e PARAM PARAM_1,PARAM_2 com.company.product.application.test/android.support.test.runner.AndroidJUnitRunner

Я беру эти параметры как таковые в своем коде:

Bundle extras = InstrumentationRegistry.getArguments();
if (extras.containsKey("PARAM")) {
    this.param1= new ArrayList<>();
    this.param1= Arrays.asList(extras.getString("PARAM").split("\\s*,\\s*"));
}

Я собираюсь вызвать API фермы устройств (https://docs.aws.amazon.com/devicefarm/latest/APIReference/Welcome.html) для запуска тестов, но я изо всех сил пытаюсь найти место, где я могу объявить свои аргументы/параметры. Или найдите способ загрузить их в файл где-нибудь в AWS, чтобы ферма устройств могла их прочитать.

Я нашел несколько статей 4-5-летней давности, в которых утверждалось, что передача параметров запуска не поддерживается, но это изучается, на случай, если кто-то скажет, что я ленив, но никто не ответил ни на какие вопросы ни там, ни на форумах Amazon, поэтому я решил разместить вопрос здесь.

Может ли кто-нибудь помочь мне с вышеизложенным?


person Jeffrom    schedule 25.07.2018    source источник


Ответы (1)


Тесты выполняются Device Farm внутри, поэтому в настоящее время нет возможности контролировать аргументы, которые отправляются ему во время работы. Тем не менее, должна быть возможность включать дополнительные файлы, которые могут содержать ту же информацию для тестов. Вот две идеи, которые у меня есть по этому поводу:

  1. В тестах может использоваться функция дополнительных данных фермы устройств. ZIP-файл с дополнительными данными загружается в /sdcard на устройстве. Тогда тесты могли получить информацию от самого устройства. Это часть API запуска по расписанию, поэтому скрипт, запускающий тесты, может делать это программно.

  2. Это может быть файл, включенный в тестовый APK-файл, загруженный в Device Farm. Я сделал нечто подобное с тестами Java Appium, но не с инструментами. В теории должно работать.

Кроме этого, я не нашел других способов включения аргументов или файлов для Device Farm.

Hth-Джеймс

person jmp    schedule 26.07.2018
comment
Спасибо, @jmp! даже не знал, что это вещь. Таким образом, он распаковывает файл в /sdcard устройства, а тестам просто нужно получить доступ к external/file1.txt через внешнее хранилище? Звучит хорошо - я дам вам знать, как это происходит :) - person Jeffrom; 26.07.2018
comment
Да, вот пример из примера приложения для получения дополнительных данных. github.com/aws-samples/aws-device-farm-sample-app-for-android/ - person jmp; 26.07.2018