Параллельное выполнение в каркасе робота (Threading) - PullRequest
1 голос
/ 31 мая 2019

Пример переменных:

  1. UDID: [42439492, 3203201]
  2. Версии платформы: [8.0, 7,0]
  3. Порты 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.

Предлагаемые способы?

  1. Изменить код для параллельного выполнения без использования потоковв Python
  2. Я читал о процессе робототехники, чтобы посмотреть, смогу ли я сделать эквивалент в среде роботов.
  3. Pabot (Это хороший инструмент, но мы предпочитаем просто использовать Python или роботFramework)

Буду признателен, если кто-нибудь может предоставить некоторые идеи или помощь.

Спасибо!

...