2014-09-15 3 views
0

У меня есть существующие тесты на селен, написанные в Robot IDE Framework, которые я пытаюсь запустить в Sauce Labs.Запуск RobotFramework Тесты на Sauce Labs - ошибка с тайм-аутом

Я использую образец теста из этого учебника, чтобы узнать, могу ли я получить хотя бы один тест. http://datakurre.pandala.org/2014/03/cross-browser-selenium-testing-with.html

Испытание проходит локально, и проходит все тесты на Соус Labs, но раз из и дает и ошибок, «Тест не видел новую команду в течение 90 секунд. Таймаут. ошибку», потому что это не отсоединяя Удаленный веб-драйвер.

Я пытался все это, вместе и по отдельности в конце функции «Закрыть тест браузера»:

  • Закрыть все браузеры
  • Процесс близко
  • селеном сервер Stop

Я также попытался добавить ((RemoteWebDriver) getCurrentWebDriver()). Quit() в одной из функций python, которая выполняется во время процесса закрытия. Я новичок в Selenium и Robot Framework, поэтому я не уверен, как захватить удаленный веб-драйвер.

Вот код, в случае, который помогает:

*** Settings *** 
Test Setup  Open test browser 
Test Teardown  Close test browser 
Resource   ../../Keywords/super.txt 
Library   Selenium2Library 
Library   ../../Library/SauceLabs.py 

*** Variables *** 
${LOGIN_FAIL_MSG} Incorrect username or password. 
${COMMAND_EXECUTOR} http://username:[email protected]:80/wd/hub 
${REMOTE_URL}  http://username:[email protected]:80/wd/hub 
${DESIRED_CAPABILITIES} username:name,access-key:key,name:Testing RobotFramework,platform:Windows 8.1,version:26,browserName:CHROME,javascriptEnabled:True 

*** Test Cases *** 
Incorrect username or password 
    [Tags] Login 
    Go to https://saucelabs.com/login 
    Page should contain element id=username 
    Page should contain element id=password 
    Input text id=username anonymous 
    Input text id=password secret 
    Click button id=submit 
    Page should contain ${LOGIN_FAIL_MSG} 
    [Teardown] 

*** Keywords *** 
Open test browser 
    Open browser http://www.google.com ${BROWSER} \ remote_url=${REMOTE_URL} desired_capabilities=${DESIRED_CAPABILITIES} 

Close test browser 
    Run keyword if '${REMOTE_URL}' != '' Report Sauce status ${SUITE_NAME} | ${TEST_NAME} ${TEST_STATUS} ${TEST_TAGS} ${REMOTE_URL} 
    Close all browsers 
    Process close 
    Stop selenium server 
+0

Почему, по вашему мнению, это имеет что-либо с '$ {DESURED_CAPABILITIES}'? Какое ключевое слово выберет время? –

+0

Ни один из ключевых слов не синхронизирован. Он просто не останавливается, поэтому я пытаюсь понять, как остановить RemoteWebDriver. Имейте в виду, что мы используем Robot IDE, который является интерфейсом графического интерфейса, поэтому я не могу просто добавить driver.quit(), потому что драйвер запускается при открытии браузера http://www.google.com $ {BROWSER } \ remote_url = $ {REMOTE_URL} wish_capabilities = $ {DESIRED_CAPABILITIES} – Ana

+0

Первым шагом будет прекращение использования IDE и попытка запуска команды из командной строки. Это устранит одну вещь, которая может пойти не так, и, возможно, вы увидите сообщение об ошибке на дисплее. –

ответ

1

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

Вот рабочий пример, где я удалил все лишние вещи в тесте. Я могу запустить это как из командной строки, так и через RIDE в Windows. Однако вам придется добавить свой собственный ключ:

*** Settings *** 
| Library | Selenium2Library 

*** Variables *** 
| @{_tmp} 
| ... | name:Testing RobotFramework Selenium2Library, 
| ... | browserName:internet explorer, 
| ... | platform:Windows 8, 
| ... | version:10 

| ${CAPABILITIES} | ${EMPTY.join(${_tmp})} 
| ${KEY}   | <put your username:key here> 
| ${REMOTE_URL}  | http://${KEY}@ondemand.saucelabs.com:80/wd/hub 
| ${URL}   | https://saucelabs.com/login 
| ${LOGIN_FAIL_MSG} | Incorrect username or password. 

*** Test cases *** 
| Example of connecting to saucelabs via robot 
| | [Setup] 
| | ... | Open Browser 
| | ... | ${URL} 
| | ... | remote_url=${REMOTE_URL} 
| | ... | desired_capabilities=${CAPABILITIES} 
| | 
| | Page should contain element | id=username 
| | Page should contain element | id=password 
| | 
| | Input text | id=username | anonymous 
| | Input text | id=password | secret 
| | Click button | id=submit 
| | 
| | Page should contain | ${LOGIN_FAIL_MSG} 
| | 
| | [Teardown] | Close all browsers 
+0

Спасибо, я запустил ваш код в командной строке и работал, а затем реорганизовал его для запуска в RIDE. Однако я не смог заставить команду Open Browser работать без указания браузера. – Ana

+0

В вашем коде вы не указали broswer в команде Open Browser. Я не могу сделать это для себя, канун n из командной строки. Не уверен, что я должен открыть для этого новый вопрос. – Ana

+0

@ Ана: Я не понимаю вашего комментария. Неделю назад вы пишете, что вы запускали его из командной строки, и это сработало. Теперь вы говорите, что _didn't_ работает в командной строке? Я смущен. Что касается указания браузера - поскольку тест говорит о удаленной системе, браузер определяется в переменной '$ {CAPABILITIES}. –

Смежные вопросы