【问题标题】:URL re-direction issueURL重定向问题
【发布时间】:2021-03-30 07:23:30
【问题描述】:

我正在使用数据驱动程序一起验证几个 URL,有些被重定向仍然会打印 200 响应。在这种情况下,测试用例需要失败并提及失败的原因。

任何线索将不胜感激。

代码sn-p:

create session  current_session     ${URL}

${Response}=  get request     current_session  /${gmail}

在这里,我需要验证该 URL 是否已导航到正确的页面而没有任何重定向。我使用的是数据驱动库。

【问题讨论】:

  • 你用的是哪个库,这不是 selenium 关键字
  • @PDHide 它是一个 GUI 应用程序,但我使用请求库,因为我必须验证从 URL 收到的响应正文和代码。关于如何验证 URL 是否导航到正确页面而没有任何重定向的任何建议?
  • @BenceKaulics 它是一个 GUI 应用程序,但我需要获取传递给它的 URL 的响应。这样,我还需要验证 URL 是否指向正确的页面?没有任何重定向。
  • @PDHide 非常理想,要求我需要打印来自我传递的 URL 的所有响应。

标签: robotframework robotframework-ide


【解决方案1】:

我认为你应该分开你的测试用例。您应该有一个(或多个)用于验证响应正文,另一个用于验证 URL 重定向。

对于后者,我肯定会使用 SeleniumLibrary。

*** Settings ***
Library    SeleniumLibrary

*** Test Cases ***
Redirect Test
    Open Browser    https://stackoverflow.com/    Firefox
    Location Should Be     https://stackoverflow.com/
    [Teardown]    Close Browser

但如果您也想为该对象使用 RequestsLibrary,则返回的对象具有可用于验证的 urlstatus_code 属性。

*** Settings ***
Library    RequestsLibrary

*** Test Cases ***
Redirect Test With Requests
    Create Session    SO    https://stackoverflow.com/
    ${response}=    Get Request    SO    /tags
    Log    ${response.status_code}
    Should Be Equal As Integers    ${response.status_code}    200
    Log    ${response.url}
    Should Be Equal As Strings    ${response.url}    https://stackoverflow.com/tags
    [Teardown]    Delete All Sessions

【讨论】:

  • 感谢您的详细解释。但我的问题是我有这么多的 URL,有些被重定向仍然打印 200 响应。在这种情况下,测试用例需要失败并提及重定向的原因。你能就此提出建议吗?
  • @Harini 此测试还检查响应中的 URL 而不仅仅是代码。因此,如果代码为 200 但 URL 不正确,则测试将失败。至于重定向的原因,我不知道是否包含在响应中。
  • @Harini 据我所见,URL 重定向有自己的响应代码,如果在您的情况下它仍然是 200,那么我不确定您是否还有其他事情要找出重定向的原因发生了。如果它被认为是测试应用程序中的错误,那么我想它可以提供调试输出,例如在浏览器控制台等中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 2017-06-01
  • 2018-02-14
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多