【问题标题】:Running RobotFramework Tests on Sauce Labs - error with timing out在 Sauce Labs 上运行 RobotFramework 测试 - 超时错误
【发布时间】:2014-11-09 12:30:40
【问题描述】:

我有现有的用 Robot IDE 框架编写的硒测试,我正试图在 Sauce Labs 中运行。

我正在使用本教程中的示例测试来查看是否可以运行至少一项测试。 http://datakurre.pandala.org/2014/03/cross-browser-selenium-testing-with.html

测试在本地通过,并通过了 Sauce Labs 上的所有测试,但随后超时并给出错误,“测试在 90 秒内没有看到新命令。超时。 错误”,因为它没有断开远程 Web 驱动程序。

我已经在“关闭测试浏览器”功能的末尾分别尝试了所有这些:

  • 关闭所有浏览器
  • 进程关闭
  • 停止 selenium 服务器

我还尝试在关闭过程中运行的 python 函数之一中添加 ((RemoteWebDriver) getCurrentWebDriver()).quit()。我是 Selenium 和机器人框架的新手,所以我不确定如何获取远程 Web 驱动程序。

这是代码,以防有帮助:

    *** 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:key@ondemand.saucelabs.com:80/wd/hub
${REMOTE_URL}     http://username:key@ondemand.saucelabs.com: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

【问题讨论】:

  • 您为什么认为这与${DESURED_CAPABILITIES} 有任何关系?什么关键字超时?
  • 没有关键字超时。它永远不会停止运行,这就是为什么我试图弄清楚如何停止 RemoteWebDriver。请记住,我们使用的是机器人 IDE,它是 GUI 界面,所以我不能只添加 driver.quit(),因为驱动程序是通过 Open browser google.com ${BROWSER} \ remote_url=${ 启动的REMOTE_URL} desired_capabilities=${DESIRED_CAPABILITIES}
  • 第一步是停止使用 IDE 并尝试从命令提示符运行命令。这将消除可能出错的一件事,并且您可能会在显示屏上看到一条错误消息。
  • 我可以在 Sauce Labs 中看到硒日志。关键字没有错误。我只需要弄清楚如何访问远程 Web 驱动程序。
  • 您不需要访问远程 Web 驱动程序。我已经编写了在酱汁上运行的测试,并且一切都按预期工作。必须有其他原因导致问题。您是否尝试过从命令行运行?也许 RIDE 是罪魁祸首。

标签: selenium robotframework saucelabs


【解决方案1】:

您不需要做任何特别的事情来关闭连接。我的猜测是,您的测试中有一些东西阻止了浏览器被关闭。我的建议是从一个更简单的例子开始,从命令行开始。让它发挥作用,然后按照自己的方式努力,以便能够在 RIDE 中运行更复杂的东西。

这是一个工作示例,我删除了测试中的所有额外内容。我可以从命令行和通过 Windows 上的 RIDE 运行它。但是,您必须添加自己的密钥:

*** 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

【讨论】:

  • 谢谢,我在命令行中运行了您的代码并且它工作了,然后重构它以在 RIDE 中运行。但是,我无法在不指定浏览器的情况下运行“打开浏览器”命令。
  • 在您的代码中,您没有在“打开浏览器”命令中指定浏览器。即使从命令行,我也无法让我这样做。不知道我是否应该为此提出一个新问题。
  • @Ana:我不明白你的评论。一周前,您写道您从命令行运行它并且它有效。现在你说它没有在命令行上运行?我糊涂了。至于指定浏览器——因为测试与远程系统对话,所以浏览器是在${CAPABILITIES}变量中定义的。
  • 我只能通过添加浏览器名称来使其工作(请参阅我在 9 月 16 日的评论)。 Selenium2Library 说浏览器名称是必需的。我不确定如何让命令仅远程运行。 rtomac.github.io/robotframework-selenium2library/doc/…浏览器
  • @Ana:浏览器不是必需的,因为它的默认值为 firefox。只有在没有默认值时才需要它。
猜你喜欢
  • 2015-03-19
  • 2014-01-19
  • 1970-01-01
  • 2015-12-12
  • 2021-09-23
  • 2014-03-01
  • 2016-09-12
  • 2019-01-21
  • 2017-03-24
相关资源
最近更新 更多