Как я могу сравнить вывод данных из каркаса робота с помощью Python - PullRequest
0 голосов
/ 07 января 2019

вот мой код робота

Database-Keywords-Test

connect to database using custom params  cx_Oracle    ${DB_CONNECT_STRING}

${queryResults}=   Query  Select * from QA_USER.SealTest_Security_A order by SECURITY_ID
Log  ${queryResults}

${queryResults1}=   Query  Select * from QA_USER.SealTest_Security_B order by SECURITY_ID
Log  ${queryResults1}

1 Ответ

0 голосов
/ 07 января 2019

Robot Framework написан на Python, что дает множество хороших точек входа.

Вы должны принять проектное решение (или определить проектное решение, уже принятое вашей командой), чтобы использовать его.

Робот нативное решение

Если результаты двух таблиц в вашей системе должны быть идентичными, вы можете просто использовать встроенное ключевое слово Framework Robot напрямую и вообще не вызывать Python.

*** Settings ***
 Documentation    Exercise database keywords (Robot-only).
 Library          Collections
 Library          # <Database library implied above>

*** Test Cases ***
User Settings Test
    [Documentation]    User details db comparison (Database-Keywords-Test)
   ${queryResultsA}=   Query  Select * from QA_USER.SealTest_Security_A order by SECURITY_ID
   ${queryResultsB}=   Query  Select * from QA_USER.SealTest_Security_B order by SECURITY_ID
    Lists Should Be Equal  ${queryResultsA}  ${queryResultsB}

Робот, вызывающий решение Python

Если вы хотите, чтобы Robot управлял Python, т.е. вы вызываете робота в качестве основной точки входа, вы можете импортировать модули Python, используя ключевое слово Library.

Контрольный пример робота:

*** Settings ***
 Documentation    Exercise database keywords (call out to Python).
 Library          userManagement
 Library          # <Database library implied above>

*** Test Cases ***
User Settings Test
    [Documentation]    User details db comparison (Database-Keywords-Test)
   ${queryResultsA}=   Query  Select * from QA_USER.SealTest_Security_A order by SECURITY_ID
   ${queryResultsB}=   Query  Select * from QA_USER.SealTest_Security_B order by SECURITY_ID
    ${diff} = Compare Users  ${userResultsA}  ${userResultsB}
    Should Be Empty  ${diff}

Библиотека Python userManagement.py:

class UserManagement:

    ROBOT_LIBRARY_SCOPE = 'TEST SUITE'

    def compareUsers(self,userResultsA,userResultsB):
        # diff implementation depends on the structure of user results
        # which are not shared in the question, but will be related to the 
        # database library you are using, perhaps a list of 
        # rows or dictionaries
        ...
        return diff

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#creating-test-library-class-or-module

Решение Python для вызова робота

Если вы хотите, чтобы Python управлял роботом, вы можете получить доступ к API из Python https://robot -framework.readthedocs.io / ен / последний /

Выше приведены некоторые прямо связанные заглушки, которые, надеюсь, позволят вам увидеть карту и оторваться от земли. Используя эту отправную точку, я предлагаю внимательно изучить ссылки на документацию для следующих шагов.

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