使用Robot框架和Ride重新运行具有不同登录信息的测试套件



我已经用Robot框架和Ride做了一些测试套件,包括几个测试用例这需要启动网络浏览器和用户登录网站。

不需要仅仅复制testsuites/testcase并对其他浏览器和用户登录进行硬编码,我如何重复使用和重新运行现有的浏览器,只需首先更改使用过的浏览器,然后用user2重新运行相同的程序?

测试用例类似于:

Open Browser - Chrome
#Open Browser - Firefox 
Login1
#Login2
Do something....
#For loop already used inside the testcase
FOR    ${var}    IN    IN RANGE    1    10
Exit For Loop If    Some condition is true
${var} =    Evaluate    ${var} + 1
#do something until condition is true
Scroll Element Into View    test_element
Set Focus To Element    test_element
END
Continue test case....

关键词:

Open Browser - Chrome
Open Browser    https://test.testpage.com/  chrome
......
Open Browser - Firefox
Open Browser    https://test.testpage.com/  ff
......
Login1
Wait Until Element Is Visible   test_Login_username 
Input Text  test_Login_username test.id1
Input Password  test_Login_password test.password1
Click Button    test_Login_LoginBtn
.....
Login2
Wait Until Element Is Visible   test_Login_username 
Input Text  test_Login_username test.id2
Input Password  test_Login_password test.password2
Click Button    test_Login_LoginBtn     

我知道,例如,我可以将浏览器设置为类似的循环

*** Variables ***
@{BROWSERS}       Chrome    ff

然后像一样在测试用例中循环它们

FOR    ${Browser}    IN    @{BROWSERS}
Open Browser    https://test.testpage.com/    ${Browser}
END

但问题是,你不能使用嵌套的循环??

的确,RF中不能有嵌套循环。用户指南中记载了一个简单的解决方法:

*** Keywords ***
Handle Table
[Arguments]    @{table}
FOR    ${row}    IN    @{table}
Handle Row    @{row}
END
Handle Row
[Arguments]    @{row}
FOR    ${cell}    IN    @{row}
Handle Cell    ${cell}
END

您的代码示例对我来说有点混乱,所以我不打算将其作为示例。但总的来说,我会:

  1. 创建一个带有for循环的关键字,该循环表示一些测试步骤
  2. 实现一个测试用例,其中我在不同的浏览器上循环执行来自1的关键字。for循环内部

相关内容

  • 没有找到相关文章

最新更新