根据
Automation One By One - Robot Framework -
Test Suite中所描述的
百度账号的feature,我们分成了几个test suites,每个suite中都包含了一类test case files.
比如02_login test suite中包含了成功登录和登录失败2个test case files,比对一下2个test case file中不同的地方:
2. 提取成功后,原来的test suites的结构就发生了变化
3. 提取后test case file的内容也有变化,如登录中2个test file 内容的变化
总之一句话 :Test Case File中只保留初始化所必须的settings及test case中不重复的步骤,越精简越好。即写脚本要有面向对象的思想(封装,继承,多态)
比如02_login test suite中包含了成功登录和登录失败2个test case files,比对一下2个test case file中不同的地方:
- Variable表中的username内容不同
- Test Case表中最后一句,一个是Login Is Successful, 一个是Login Is Failed
- Keywords表中Login Is Successful/Login Is Failed定义的内容不同
- 把Variable的内容提取出来形成一个名称为variables.txt的文档。(文档名称可自定义)
variable.txt文档中的内容: ***Variables*** @{username}= user1 user2 user3 user4 user5 user6 @{password}= password1 password2 password3 ... |
- 把keywords中的内容提取出来形成一个名称为loginkeywords.txt的文档。(文档名称可自定义)
loginkeywords.txt文档中的内容: *** 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}
Login Is Failed [Arguments] ${username} Page Should Not Contain ${username} |
2. 提取成功后,原来的test suites的结构就发生了变化
- 原来是
- Baidu - __init__.txt - 01_register - 01_registerfailed - 02_registersucceed - __init__.txt - 02_login - 01_loginfailed - 02_loginsucceed - __init__.txt |
- 现在是
- Baidu - __init__.txt - variables.txt (注意:因为注册和登录的变量有可能用的是一样的,所以可以将variables提取到最高级别,方便注册和登录的test suite共享) - 01_register - 01_registerfailed - 02_registersucceed - __init__.txt - 02_login - 01_loginfailed - 02_loginsucceed - loginkeywords.txt - __init__.txt |
3. 提取后test case file的内容也有变化,如登录中2个test file 内容的变化
- 登录失败
*** Settings ***
Library
Selenium Library
Resource /Path/to/Variable.txt(移除variables表格,导入variables文件)
Resource /Path/to/loginkeywords.txt(移除keywords表格,导入loginkeywords文件)
*** Testcases ***
Login Should Succeed When the Correct Username and Password are Entered
Open Login Page
Enter Username @{username}[4]
Enter Password @{password}[0]
Click the Login Button
Login Is Failed @{username}[4]
|
- 登录成功
*** Settings ***
Library Selenium Library
Resource /Path/to/Variable.txt(移除variables表格,导入variables文件)
Resource /Path/to/loginkeywords.txt(移除keywords表格,导入loginkeywords文件)
*** 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]
|
总之一句话 :Test Case File中只保留初始化所必须的settings及test case中不重复的步骤,越精简越好。即写脚本要有面向对象的思想(封装,继承,多态)