RequestsLibrary поддерживает параллельное выполнение пакетов с pabot? - PullRequest
0 голосов
/ 09 ноября 2018

Мой проект использует RequestsLibrary для автоматизации интерфейса, и все вызовы интерфейса совместно используют сеанс, который является сеансом, созданным функцией [Create Session] .

Исходя из этого, мы хотим сделать параллелизм, используя pabot , и способ, которым мы хотим использовать это: все многопоточности совместно используют сеанс для параллелизма, поэтому [ Создать сеанс] функция в настоящее время вызывается только один раз, и затем все потоки совместно используют сеанс.

Сессия может быть получена из многопоточности в моем тесте, но когда вызывается интерфейс, обнаруживается, что другие запросы интерфейса потока не выполняются:

сообщения об ошибках:

KEYWORD RequestsLibrary . Get Request ${agent.session}, ${uri}, headers=${header}, timeout=${timeout}
Documentation:  
Send a GET request on the session object found using the

Start / End / Elapsed:  20181109 15:06:36.520 / 20181109 15:06:36.523 / 00:00:00.003
15:06:36.523    FAIL    Non-existing index or alias 'adminsession'.

Итак, я хотел бы спросить, поддерживаем ли мы параллельные сценарии?

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Почему вы хотите, чтобы сеанс создавался только один раз? Pabot порождает разные процессы, которые не могут ничего совместно использовать, поэтому вам нужно создать один сеанс для каждого процесса, но в основном вам нужно просто добавить все необходимое для ваших тестов в Setup Suite или Setup Test. Таким образом, этот сеанс всегда доступен для каждого процесса, и он разделяется таким образом, что имеет одинаковые конфигурации, но не совсем один и тот же экземпляр. Надеюсь, это поможет.

0 голосов
/ 12 ноября 2018

Способ, которым Pabot создает параллельные процессы, заключается в запуске нескольких независимых экземпляров Robot Framework.В каждом случае у вас будет отдельное создание экземпляра RequestLibrary.В результате вы не сможете использовать один и тот же сеанс.

Хотя существует возможность обмениваться значениями от экземпляра к другому экземпляру через pabotlib, это не работает для объектов.Часто объект можно сериализовать в строку, но, к сожалению, модуль Requests, от которого зависит RequestsLibrary, не поддерживает это.

На мой взгляд, лучший подход состоит в том, чтобы воссоздавать идентичные сеансы в разных сеансах, повторно используя те же файлы cookie и другие переменные, специфичные для сеанса, через pabotlib.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...