Пример переменных:
- UDID: [42439492, 3203201]
- Версии платформы: [8.0, 7,0]
- Порты Appium: [4921, 4320]
Текущая проблема
У меня 2 UDID, поэтому у него будет 2 работающих порта.Но в настоящее время он просто продолжает бесконечно создавать новые порты.
Коды Python
Следующие коды заставили сервер appium продолжать запуск на новом порту.
Итак, проблема в том, что код работает, когда я просто вызываю скрипты Python, но если я вызываю его через среду робота, он не заканчивается.Таким образом, мы выяснили, что среда робота не может быть поточно-ориентированной.
def run_tests_on_devices(udid):
threads=[]
for idx, device in enumerate(udid):
cmd = "robot --variable PLATFORM_VERSION:" + str(get_platform_version_of_android_phone(device)) + " --variable DEVICE_UDID:" + str(device) + " --variable APPIUM_PORT:" + str(appiumInstances[idx]) + " android.robot"
t = threading.Thread(target=run_command, args = (cmd,))
t.daemon = True
threads.append(t)
for x in threads:
x.start()
sleep(3)
#Code is printing/working until here
for x in threads:
x.join()
#Does not reach until this stage. x.join() does not seem to be executed so the server kept on starting a new port.
Предлагаемые способы?
- Изменить код для параллельного выполнения без использования потоковв Python
- Я читал о процессе робототехники, чтобы посмотреть, смогу ли я сделать эквивалент в среде роботов.
- Pabot (Это хороший инструмент, но мы предпочитаем просто использовать Python или роботFramework)
Буду признателен, если кто-нибудь может предоставить некоторые идеи или помощь.
Спасибо!