Pabot и RED подходят к Robot Framework по-разному. Подход RED является функциональным и будет запускать сценарии / наборы по одному за раз, что позволяет выполнять сложные функции, такие как отладка. Подход Pabot заключается в параллельном запуске пакетов. RED не может обрабатывать поток данных параллельно, и поэтому не следует ожидать, что вы сможете запускать его с теми же функциями, что и обычный робот.
Вот почему загрузка pabot.PabotLib
в RED также не будет работать. Однако есть способ узнать ключевые слова библиотеки. Это не сделает возможным запуск Pabot из RED, но, по крайней мере, поможет в написании сценариев.
При загрузке приведенного ниже XML-файла в виде файла libspec в файле RED.xml в разделе «Библиотеки со ссылками». Это обеспечит распознавание ключевых слов и библиотеки.
pabot.PabotLib.xml
<?xml version="1.0" encoding="UTF-8"?>
<keywordspec name="pabot.PabotLib" type="library"
format="ROBOT" generated="20181102 15:20:05">
<version>0.28</version>
<scope>global</scope>
<namedargs>yes</namedargs>
<doc>Documentation for test library ``pabot.PabotLib``.</doc>
<kw name="Acquire Lock">
<arguments>
<arg>name</arg>
</arguments>
<doc>Wait for a lock with name.
This will prevent other processes from acquiring the lock with
the name while it is held. Thus they will wait in the position
where they are acquiring the lock until the process that has it
releases it.
</doc>
<tags>
</tags>
</kw>
<kw name="Acquire Value Set">
<arguments>
</arguments>
<doc>Reserve a set of values for this execution.
No other process can reserve the same set of values while the set is
reserved. Acquired value set needs to be released after use to allow
other processes to access it.
</doc>
<tags>
</tags>
</kw>
<kw name="Get Parallel Value For Key">
<arguments>
<arg>key</arg>
</arguments>
<doc>Get the value for a key. If there is no value for the key then
empty
string is returned.
</doc>
<tags>
</tags>
</kw>
<kw name="Get Value From Set">
<arguments>
<arg>key</arg>
</arguments>
<doc>Get a value from previously reserved value set.</doc>
<tags>
</tags>
</kw>
<kw name="Release Lock">
<arguments>
<arg>name</arg>
</arguments>
<doc>Release a lock with name.
This will enable others to acquire the lock.
</doc>
<tags>
</tags>
</kw>
<kw name="Release Locks">
<arguments>
</arguments>
<doc>Release all locks called by instance.</doc>
<tags>
</tags>
</kw>
<kw name="Release Value Set">
<arguments>
</arguments>
<doc>Release a reserved value set so that other executions can use it
also.</doc>
<tags>
</tags>
</kw>
<kw name="Run Only Once">
<arguments>
<arg>keyword</arg>
</arguments>
<doc>This is an *experimental* keyword for building setups that
should be executed only once. As the keyword will be called
only in one process and the return value could basically be anything.
The "Run Only Once" can't return the actual value.
If the keyword fails, "Run Only Once" fails.
Others executing "Run Only Once" wait before going through this
keyword before the actual command has been executed.
NOTE! This is a potential "Shoot yourself in to knee" keyword
Especially note that all the namespace changes are only visible
in the process that actually executed the keyword.
Also note that this might lead to odd situations if used inside
of other keywords.
Also at this point the keyword will be identified to be same
if it has the same name.
</doc>
<tags>
</tags>
</kw>
<kw name="Set Parallel Value For Key">
<arguments>
<arg>key</arg>
<arg>value</arg>
</arguments>
<doc>Set a globally available key and value that can be accessed
from all the pabot processes.
</doc>
<tags>
</tags>
</kw>
</keywordspec>