Robot Framework - Как начать с библиотеки pabot.PabotLib? - PullRequest
0 голосов
/ 02 ноября 2018

В документе Pabot приведен пример, иллюстрирующий способ его вызова, например:

***Settings***
Library    pabot.PabotLib

*** Test Case ***
Testing PabotLib
    Acquire Lock   MyLock
    Log   This part is critical section
    Release Lock   MyLock

    ${valuesetname}=    Acquire Value Set
    ${host}=            Get Value From Set   host
    ${username}=        Get Value From Set   username
    ${password}=        Get Value From Set   password
    Log   Do something with the values (for example access host with username and password)

    Release Value Set
    Log   After value set release others can obtain the variable values

Но я просто могу использовать «Library pabot», он всегда напоминает «Unknown» pabot.PabotLib «library», когда я пытаюсь «Library pabot.PabotLib» в моем RED RobotEditor и Pycharm.

Как мне вызвать "pabot.PabotLib" в моей IDE?

1 Ответ

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

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...