Pabot - выполнение теста продолжается после закрытия браузера - PullRequest
0 голосов
/ 16 октября 2018

Я успешно выполняю параллельные тесты роботизированной конструкции с Pabot (если вы еще этого не сделали, проверьте его).На данный момент я запускаю два простых теста одновременно, которые состоят в выполнении входа в систему с двумя различными типами пользователей.Я запускаю свои тесты из командной строки с помощью команды:

pabot --pabotlib --processes 2 --resourcefile valueset.dat --outputdir c:\pabot-demo\reports\ *.robot

Все идет гладко: браузер открывается, данные для входа в систему корректно отправляются в форму, появляется домашняя страница после входа в систему и браузерзакрывается.Проблема в том, что после этого мой терминал входит в какой-то цикл, и выполнение, похоже, технически не завершено:

Robot Framework remote server at 127.0.0.1:8270 started.
2018-10-16 15:58:38.109000 [PID:2144] [0] EXECUTING Suites.LoginAdmin
2018-10-16 15:58:38.109000 [PID:9736] [1] EXECUTING Suites.LoginUser

DevTools listening on ws://127.0.0.1:55688/devtools/browser/9bed6f8e-36c8-40b2-81f5-4622a4933c12

DevTools listening on ws://127.0.0.1:55689/devtools/browser/074fb0f2-5613-4483-9747-5b98eff98dcd
2018-10-16 15:58:53.853000 [PID:2144] [0] still running Suites.LoginAdmin after 15.0 seconds (next ping in 20.0 seconds)
2018-10-16 15:58:53.953000 [PID:9736] [1] still running Suites.LoginUser after 15.0 seconds (next ping in 20.0 seconds)
2018-10-16 15:59:15.693000 [PID:2144] [0] still running Suites.LoginAdmin after 35.0 seconds (next ping in 25.0 seconds)
2018-10-16 15:59:15.809000 [PID:9736] [1] still running Suites.LoginUser after 35.0 seconds (next ping in 25.0 seconds)
2018-10-16 15:59:43.321000 [PID:2144] [0] still running Suites.LoginAdmin after 60.0 seconds (next ping in 30.0 seconds)
2018-10-16 15:59:43.437000 [PID:9736] [1] still running Suites.LoginUser after 60.0 seconds (next ping in 30.0 seconds)
2018-10-16 16:00:16.330000 [PID:2144] [0] still running Suites.LoginAdmin after 90.0 seconds (next ping in 35.0 seconds)
2018-10-16 16:00:16.415000 [PID:9736] [1] still running Suites.LoginUser after 90.0 seconds (next ping in 35.0 seconds)
2018-10-16 16:00:55.144000 [PID:2144] [0] still running Suites.LoginAdmin after 125.0 seconds (next ping in 40.0 seconds)
2018-10-16 16:00:55.212000 [PID:9736] [1] still running Suites.LoginUser after 125.0 seconds (next ping in 40.0 seconds)
2018-10-16 16:01:39.360000 [PID:2144] [0] still running Suites.LoginAdmin after 165.0 seconds (next ping in 45.0 seconds)
2018-10-16 16:01:39.507000 [PID:9736] [1] still running Suites.LoginUser after 165.0 seconds (next ping in 45.0 seconds)
2018-10-16 16:02:29.098000 [PID:2144] [0] still running Suites.LoginAdmin after 210.0 seconds (next ping in 50.0 seconds)
2018-10-16 16:02:29.445000 [PID:9736] [1] still running Suites.LoginUser after 210.0 seconds (next ping in 50.0 seconds)
2018-10-16 16:02:31.716000 [PID:2144] [0] PASSED Suites.LoginAdmin in 212.3 seconds
2018-10-16 16:02:32.300000 [PID:9736] [1] PASSED Suites.LoginUser in 212.5 seconds
Output:  c:\pabot-demo\reports\output.xml
Log:     c:\pabot-demo\reports\log.html
Report:  c:\pabot-demo\reports\report.html
Stopping PabotLib process
Robot Framework remote server at 127.0.0.1:8270 stopped.
PabotLib process stopped
Elapsed time: 3 minutes 54.904 seconds`

Это происходит в течение 3-4 минут каждый раз перед остановкойпо собственному желанию.Мои тестовые сценарии довольно просты:

*** Settings ***
Documentation   Tests login functionality
Library         SeleniumLibrary
Library         OperatingSystem
Library         DateTime
Library         Screenshot
Library         pabot.PabotLib
Resource        common.robot
Test Setup      General Setup
Test Teardown   End Scenario

*** Tags ***
Enduser

*** Keywords ***
End Scenario
    Run Keyword If Test Failed  Take Screenshot   01_LoginEnduserTest_FAILED_ScreenShot.png
    Close Browser

General Setup
    # CREATING THE DRIVER VARIABLE
    Set Global Variable     ${DRIVERNAME}   Chrome
    # CREATING THE SCREENSHOT DIRECTORY
    Set Global Variable     ${SCREENSHOTPATH}   [a path]/target/robotframework-reports/${DRIVERNAME}
    Create Directory    ${SCREENSHOTPATH}
    Set Screenshot Directory    ${SCREENSHOTPATH}
    # Getting the valueset
    ${valuesetname}=    Acquire Value Set
    # Opening the browser
    Open Browser    [the application's URL]    Chrome
    Maximize Browser Window
    Location Should Contain     [part of the application's URL]

*** Test Cases ***
Login
    ${username} =   Get Value From Set  username
    ${password} =   Get Value From Set  password
    Input Text      //input[@name='josso_username']     ${username}
    Input Text      //input[@name='josso_password']     ${password}
    Click Element   //input[@type='submit']
    Wait Until Page Contains    Dossier     60
    Location Should Be      [the application's URL]
    Sleep  5s

Другой сценарий, конечно, является вариантом этого.После обычного выполнения браузер закрывается, и мне приходится ждать от 3 до 4 минут, пока сообщение ping не прекратится и отчеты не будут сгенерированы, как мы видим здесь:

Robotframework report screenshot

Имея в виду потенциальные будущие разработки (т. Е. Запуск тестов на разных машинах, на которые у нас в настоящее время нет ресурсов), я использую файл valueset.dat для получения другой комбинации имени пользователя и пароля,Содержимое этого файла очень похоже на то, что мы видим в примере Pabot, но я мог бы также включить его в любом случае:

[Server1]
HOST=(my local IP)
USERNAME=system_admin
PASSWORD=1234

[Server2]
HOST=(my local IP)
USERNAME=system_user
PASSWORD=1234

Любая идея, как заставить это долгое ожидание уйти?Возможно ли, что, поскольку я добавляю больше тестов к каждому набору / большему количеству комплектов, это ожидание станет неактуальным?

Редактировать Я использую следующую настройку:

  • Python 2.7.14

  • wxPython 2.8.12.1 , win64, Unicode, для py27

  • setuptools 40.2.0 (чтобы я мог использовать команду easy_install)

  • Robot Framework 3.0.4

  • robotremoteserver 1.1

  • Selenium2Library 3.0.0

  • и Pabot версии 0.45 .

Кроме того, мои тесты выполняются на Chrome, поэтому я использую chromedriver 2.41 .

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