Как передать несколько аргументов в контрольный пример в среде автоматизации тестирования CumulusCI? - PullRequest
0 голосов
/ 27 мая 2019

Постановка задачи:

Невозможно передать несколько значений переменных в мой тестовый набор с помощью команды CumulusCI:

`cci task run robot...
  1. Я использую этот раздел для построения моей команды: https://cumulusci.readthedocs.io/en/latest/tasks.html#id49

  2. Если мне нужно передать только одну переменную таким же образом, как указано выше, скажем, например. просто LocalOrRemote, тогда код работает отлично, поэтому, похоже, это связано с тем, как я передаю несколько переменных.

  3. Мой технический стек автоматизации тестирования - Robot Framework, CumulusCI, Selenium

Пример кода:

*** Settings ***
Resource  C:/Dev/myproject/robotframework/EnvironmentSetupFile.robot
Suite Setup  Run Keywords  Suite Setup KW1  AND  Suite Setup OS And Browser  ${LocalOrRemote}  ${Browser}


*** Test Cases ***
Verify whether I am able to set environment and browser
    [Tags]  LocalEdge
    [Documentation]  This test should run on the local edge browser
    Keyword X
    Keyword Y


*** Keywords ***
Suite Setup KW1
    do something
Suite Setup OS And Browser
    [Arguments]  ${LocalOrRemote}  ${Browser}
    Log Many  ${LocalOrRemote}  ${Browser}
    run keyword if  '${LocalOrRemote}'=='Local'  Setup Local Browser  ${Browser}  
    ...  ELSE IF  '${LocalOrRemote}'=='Remote'  Setup Remote Browser  ${Browser}
    ...  ELSE  FAIL  "Incorrect environment value passed! Please refer the instructions in README for running the test suite"

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

cci task run robot -o suites mypath/MyTestFile.robot -o include LocalEdge -o vars LocalOrRemote:Local,Browser:edge

Проблема, с которой я столкнулся:

Значение ${Browser} не получено как ребро, но по умолчанию установлено значение chrome, что означает, что команда не может передать желаемое значение в TC.

KEYWORD BuiltIn . Log Many ${LocalOrRemote}, ${Browser}
Documentation:  
Logs the given messages as separate entries using the INFO level.
Start / End / Elapsed:  20190522 16:36:53.877 / 20190522 16:36:53.878 / 00:00:00.001
16:36:53.877    INFO    Local   
16:36:53.877    INFO    chrome

Ответы [ 2 ]

1 голос
/ 31 мая 2019

Как передать несколько аргументов в тестовый набор в среде автоматизации тестирования CumulusCI?

То, как вы это делаете, является правильным: -o vars var1:value1,var2:value2

Вот действительно простой пример:

*** Test cases ***
Example
    Should be equal  ${LocalOrRemote}  Local
    Should be equal  ${Browser}        edge

Сохраните это в файл и затем запустите его с задачей робота, подобной этой:

cci task run robot -o vars LocalOrRemote:Local,Browser:edge -o suites example.robot 

Вы увидите, что переменные инициализированы правильно. Если открывается не тот браузер, одна из ваших библиотек должна изменить значение переменной ${Browser}, пока вы этого не поймете.

0 голосов
/ 28 мая 2019

Спасибо за тонну @Bryan за направление. Это был тот момент, когда вы были настолько потрясены своим собственным созданием и забыли попробовать базовую отладку в вашей среде.

В любом случае, проблема здесь заключалась в размещении ресурсов, как вы правильно указали. Соблюдайте код до и после кода ниже. Проблема (на данный момент я не могу комментировать, что это проблема или недостаток) связана с размещением ресурса Salesforce.robot. Чтобы команда Cci передала правильное значение 2-й переменной, мне пришлось поместить этот ресурс в сам тестовый пример. Команда Cci не передала правильное значение 2-й переменной, когда этот ресурс был загружен через файл среды; странно.

*** Settings ***
Documentation  ###My setup before: 
Resource  C:/Dev/myproject/robotframework/EnvironmentSetupFile.robot
Suite Setup  Run Keywords  Suite Setup KW1  AND  Suite Setup OS And Browser  ${LocalOrRemote}  ${Browser}
Documentation  ###My setup after: 
Resource  C:/Dev/myproject/robotframework/EnvironmentSetupFile.robot
Resource  cumulusci/robotframework/Salesforce.robot  #had to place this resource here
Suite Setup  Run Keywords  Suite Setup KW1  AND  Suite Setup OS And Browser  ${LocalOrRemote}  ${Browser}

*** Test Cases ***
Verify whether I am able to set environment and browser
    [Tags]  LocalEdge
    [Documentation]  This test should run on the local edge browser
    Log  "TC passed"

Мои настройки до:

C: /Dev/myproject/robotframework/EnvironmentSetupFile.robot

*** Keywords ***
Suite Setup KW1
    Import Resource  cumulusci/robotframework/Salesforce.robot  #the resource that was causing the issue
    Import Resource  C:/Dev/myproject/robotframework/BrowserSetupKeywords.robot
    import resource  C:/Dev/myproject/robotframework/ValidationKeywords.robot
    Import Library  cumulusci.robotframework.CumulusCI  ${ORG}
    import library  SeleniumLibrary  timeout=7 seconds  implicit_wait=5 seconds
    import library  OperatingSystem
    import library  BuiltIn

C: /Dev/myproject/robotframework/BrowserSetupKeywords.robot

*** Keywords ***
Suite Setup OS And Browser
    [Arguments]  ${LocalOrRemote}  ${Browser}
    Log Many  ${LocalOrRemote}  ${Browser}  #used to default Browser value passed to chrome

`

Моя настройка после:

C: /Dev/myproject/robotframework/EnvironmentSetupFile.robot

*** Keywords ***
Suite Setup KW1
    #Import Resource  cumulusci/robotframework/Salesforce.robot  # had to comment this resource here and place it before the Suite Setup
    Import Resource  C:/Dev/myproject/robotframework/BrowserSetupKeywords.robot
    import resource  C:/Dev/myproject/robotframework/ValidationKeywords.robot
    Import Library  cumulusci.robotframework.CumulusCI  ${ORG}
    import library  SeleniumLibrary  timeout=7 seconds  implicit_wait=5 seconds
    import library  OperatingSystem
    import library  BuiltIn

C: /Dev/myproject/robotframework/BrowserSetupKeywords.robot

*** Keywords ***
Suite Setup OS And Browser
    [Arguments]  ${LocalOrRemote}  ${Browser}
    Log Many  ${LocalOrRemote}  ${Browser}  #now returns the correct Browser value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...