Robot Framework — как подключиться к Amazon Device Farm

В настоящее время ферма устройств Amazon не поддерживает инфраструктуру роботов с Appium. Есть ли обходной путь или инструмент, который позволит мне запускать сценарии роботов на ферме устройств Amazon?


person blin92    schedule 01.06.2017    source источник


Ответы (2)


Используя пользовательскую среду, можно использовать роботфреймворк. Например, вот шаги, которые я использовал для запуска теста robotframework в Device Farm.

git clone https://github.com/serhatbolsu/robotframework-appiumlibrary.git
cd robotframework-appiumlibrary

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

./demo/test_android_contact_resource.txt

*** Settings ***
Library           AppiumLibrary

*** Variables ***
${REMOTE_URL}     http://localhost:4723/wd/hub
${PLATFORM_NAME}    %{DEVICEFARM_DEVICE_PLATFORM_NAME}
${DEVICE_NAME}    %{DEVICEFARM_DEVICE_NAME}
${APP}            %{DEVICEFARM_APP_PATH}

*** Keywords ***
add new contact
    [Arguments]    ${contact_name}    ${contact_phone}    ${contact_email}
    Open Application  ${REMOTE_URL}  platformName=${PLATFORM_NAME}  deviceName=${DEVICE_NAME}  app=${APP}  automationName=UIAutomator2
    Click Element    accessibility_id=Add Contact
    Input Text    id=com.example.android.contactmanager:id/contactNameEditText    ${contact_name}
    Input Text    id=com.example.android.contactmanager:id/contactPhoneEditText    ${contact_phone}
    Input Text    id=com.example.android.contactmanager:id/contactEmailEditText    ${contact_email}
    Click Element    accessibility_id=Save

Затем я создал тестовый пакет для загрузки в Device Farm, выполнив следующие действия:


# assumes we're still in the same directory as local execution
# create a virtual directory
/usr/local/bin/python2 /Users/$(whoami)/Library/Python/2.7/lib/python/site-packages/virtualenv.py workspace
cd workspace/
source bin/activate
pip install pytest
pip install Appium-Python-Client
pip install robotframework
pip install robotframework-appiumlibrary
mkdir tests
cp ../demo/*.txt ./tests/
pip freeze > requirements.txt
pip wheel --wheel-dir wheelhouse -r requirements.txt
echo "# This is a dummy file to appease the parser in Device Farm" > ./tests/dummy_test.py
# mv command might be required on mac to appease the Device Farm parser
mv wheelhouse/scandir-1.10.0-cp27-cp27m-macosx_10_12_x86_64.whl wheelhouse/scandir-1.10.0-py2.py3-none-any.whl
# changed ./bin/robot to use #!/bin/python instead of absolute path to workspace
zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt

Затем я использовал следующую команду в testspec.yml для выполнения тестов в Device Farm.

bin/robot --outputdir $DEVICEFARM_LOG_DIR/robotresults tests/test_android_contacts.txt

person jmp    schedule 20.10.2019
comment
Привет, я пытаюсь сделать то, что вы указали, но не могу следовать этому. Не могли бы вы объяснить, как правильно выполнить шаги, которые я могу выполнить, потому что отсюда я создал тестовый пакет для загрузки в ферму устройств, используя следующие шаги: я не знаю, где вы это сделали, на ферме устройств AWS или на вашем локальном компьютере. - person Manish Boricha; 13.01.2020
comment
Я создал тестовый пакет на своем локальном компьютере, которым был Mac. Было бы лучше, если бы мы использовали экземпляр Ubuntu ec2, так как это ОС, которую использует ферма устройств хост-машины. Получив тестовый пакет, я загрузил его на ферму устройств с помощью веб-консоли и пользовательской среды, как показано в этом видео youtu.be /PRA1WlR0nvU - person jmp; 17.01.2020
comment
Спасибо за ответ. Я думаю, что тот, который вы написали, предназначен для Android, можете ли вы помочь мне выполнить то же самое для автоматизации платформы роботов iOS? Потому что, когда я запускаю вышеуказанные команды, это дает мне ошибку, что java.io.IOException: Не удается запустить программу bin/robot: ошибка = 2, Нет такого файла или каталога - person Manish Boricha; 20.01.2020
comment
Хм, я думаю, что команды для сборки тестового пакета будут такими же. Что было в вашем файле testpec.yml? Похоже, рабочий каталог был изменен или каркас робота не был включен в тестовый пакет. - person jmp; 20.01.2020
comment
Я добавил всего 4 строки вашего кода в файл testpec.yml и бум... это сработало как шарм. Другое выполнение запускается из моего java-кода. Спасибо за этот пост, он действительно очень помог. - person Manish Boricha; 23.01.2020
comment
Вы создали часть, которую я затем создал тестовый пакет для загрузки в ферму устройств, выполнив следующие действия: на локальном компьютере или ферме устройств AWS? - person Manish Boricha; 28.01.2020
comment
Локальная машина, которая является Mac - person jmp; 28.01.2020

AWS Device Farm поддерживает такие платформы, как Robotium, которые имеют инструменты для записи и воспроизведения сценариев. Если вы хотите использовать TestNG или JUnit, вы можете вставить язык в свой скрипт, который делает снимки экрана:

public boolean takeScreenshot(final String name) {
String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", ""));
File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name)));
}

Это важная функция для отчетности. Вы можете поместить этот метод на свою абстрактную базовую страницу или абстрактную тестовую базу.

person Emna Ayadi    schedule 01.06.2017