前面已经介绍了如何进行
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类来测试,那我们就可以把这些测试做一个分类,如下:
执行脚本时,即可以单独执行某个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
如此以来login test case file中的内容将变成如下
而对于更高级的test suite(BaiDu)中的__init__.txt文件来说,其内容应该是所有的test suites中共存的东西,即
那下一级的test suite的初始化文件中应该将高一级的test suite中包含的东西移除掉,即
所以总结一下:
第一级test suite - BaiDu包含的内容如下:
*** Keywords ***
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
Enter Username [Arguments] ${username}
Click Link link=登录
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
- __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
- __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
Enter Username [Arguments] ${username}
Click Link link=登录
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 ...
***Variables***
@{username}= user1 user2 user3 ...
@{password}= password1 password2 password3 ...
*** Testcases ***
Login Should Succeed When the Correct Username and Password are Entered
Open Login Page
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}
Click Link link=登录
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}