Automation One By One - Robot Framework - Test Suite

上一篇 / 下一篇  2011-07-08 13:55:40 / 个人分类:Robot Framework

前面已经介绍了如何进行Test case及Test file的编写,如果要编写的test case有很多,我们需要对这些test case分类,形成不同的test file或是test suite.

test file:可以整合一个或多个test case,一个test file可以看成是一个test suite.
test suite: 可以整合一个或多个test file,是比test file更高一级的test suite.

比如前面介绍的百度账号登录的功能,要想登录肯定是先注册,对注册的测试应该分为成功注册和失败注册2类,登录也要分成登录成功和登录失败2类来测试,那我们就可以把这些测试做一个分类,如下:

- Baidu                   -- test suite      
 - 01_register              -- test suite 
  -  01_registerfailed       -- test file
  -  02_registersucceed      -- test file
 - 02_login                 -- test suite
  -  01_loginfailed          -- test file
  -  02_loginsucceed         -- test file


执行脚本时,即可以单独执行某个test file,又可以执行某一类test suite(比如Baidu(执行所有test file),01_register(只执行其下的test file),02_login(只执行其下的test file))

Automation One By One - Robot Framework - Conception这篇文章中已经介绍了test suite,要想把一个文件夹当成一个test suite必须添加一个初始化文件 (initialization file), 这个初始化文件中存放的是test file中共同的settings或keyword, 所以我们要想真正的执行一个test suite必须将上述的组织结构加入初始人文件 __init__.txt

- Baidu                   -- test suite  
 - __init__.txt   
 - 01_register              -- test suite 
  -  01_registerfailed       -- test file
  -  02_registersucceed      -- test file
  -  __init__.txt
 - 02_login                 -- test suite
  -  01_loginfailed          -- test file
  -  02_loginsucceed         -- test file
  -  __init__.txt


__init__.txt中的内容是从原来的test case file中挑出来的共用的东西,比如02_login中的初始化文件内容包括:

*** Settings ***
Suite Setup     Start Selenium Server
Suite Teardown  Stop Selenium Server
Test Setup      Setup Test
Test Teardown   Close All Browsers

*** Keywords ***
Setup Test
  Open Browser  Open Browser  http://www.baidu.com/  chrome
  Maximize Browser Window

如此以来login test case file中的内容将变成如下


*** Settings ***
Library       Selenium Library

***Variables***
@{username}=  user4  user5  user6  ...
@{password}=  password1  password2  password3  ...

*** Testcases ***
Login Should Succeed When the Correct Username and Password are Entered
  Open Login Page
  Enter Username  @{username}[0]
  Enter Password  @{password}[0]
  Click the Login Button
  Login Is Successful @{username}[0]

*** Keywords ***
Open Login Page
  Click Link  link=登录
Enter Username  [Arguments]  ${username}
  Input Text  uname  ${username}
Enter Password  [Arguments]  ${password}
  Input Text  pwd  ${password}
Click the Login Button
  Click Button  login
Login Is Successful  [Arguments]  ${username}
  Page Should Contain  ${username}

而对于更高级的test suite(BaiDu)中的__init__.txt文件来说,其内容应该是所有的test suites中共存的东西,即
*** Settings ***
Suite Setup     Start Selenium Server
Suite Teardown  Stop Selenium Server

那下一级的test suite的初始化文件中应该将高一级的test suite中包含的东西移除掉,即

低一级test suite中的初始化文件

*** Settings ***
Test Setup      Setup Test
Test Teardown   Close All Browsers

*** Keywords ***
Setup Test
  Open Browser  Open Browser  http://www.baidu.com/  chrome
  Maximize Browser Window




所以总结一下:

第一级test suite - BaiDu包含的内容如下:
  • __init__.txt
*** Settings ***
Suite Setup     Start Selenium Server
Suite Teardown  Stop Selenium Server

  • 01_register-test suite
  • 02_login-test suite
第二级test suite - 01_register包含的内容如下:
  • __init__.txt
*** Settings ***
Test Setup      Setup Test
Test Teardown   Close All Browsers

*** Keywords ***
Setup Test
  Open Browser  Open Browser  http://www.baidu.com/  chrome
  Maximize Browser Window
  • 01_registerfailed-test case file
  • 02_registersucceed-test case file
第三级test suite - 02_login包含的内容如下

  • __init__.txt
*** Settings ***
Test Setup      Setup Test
Test Teardown   Close All Browsers

*** Keywords ***
Setup Test
  Open Browser  Open Browser  http://www.baidu.com/  chrome
  Maximize Browser Window
  • 01_loginfailed-test case file

*** Settings ***
Library       Selenium Library

***Variables***
@{username}=  user1  user2  user3  ...
@{password}=  password1  password2  password3  ...

*** Testcases ***
Login Should Succeed When the Correct Username and Password are Entered
  Open Login Page
  Enter Username  @{username}[0]
  Enter Password  @{password}[0]
  Click the Login Button
  Login Is Failed

*** Keywords ***
Open Login Page
  Click Link  link=登录
Enter Username  [Arguments]  ${username}
  Input Text  uname  ${username}
Enter Password  [Arguments]  ${password}
  Input Text  pwd  ${password}
Click the Login Button
  Click Button  login
Login Is Failed  [Arguments]  ${username}
  Page Should Not Contain  ${username}

  • 02_loginsucceed-test case file

*** Settings ***
Library       Selenium Library

***Variables***
@{username}=  user1  user2  user3  ...
@{password}=  password1  password2  password3  ...

*** Testcases ***
Login Should Succeed When the Correct Username and Password are Entered
  Open Login Page
  Enter Username  @{username}[0]
  Enter Password  @{password}[0]
  Click the Login Button
  Login Is Successful @{username}[0]

*** Keywords ***
Open Login Page
  Click Link  link=登录
Enter Username  [Arguments]  ${username}
  Input Text  uname  ${username}
Enter Password  [Arguments]  ${password}
  Input Text  pwd  ${password}
Click the Login Button
  Click Button  login
Login Is Successful  [Arguments]  ${username}
  Page Should Contain  ${username}



TAG:

 

评分:0

我来说两句

Open Toolbar