Automation One By One - Robot Framework - Keyword/Variable Files

上一篇 / 下一篇  2011-07-11 16:55:31 / 个人分类:Robot Framework

根据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中不同的地方:

  • Variable表中的username内容不同
  • Test Case表中最后一句,一个是Login Is Successful, 一个是Login Is Failed
  • Keywords表中Login Is Successful/Login Is Failed定义的内容不同
1. 除了上述的不同其它的地方基本上一样,为了避免出现脚本复制粘贴重复存在的问题,我们把test files中相同中的地方抽离出来形成独立的文档。
  • 把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
  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}
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中不重复的步骤,越精简越好。即写脚本要有面向对象的思想(封装,继承,多态)

TAG:

 

评分:0

我来说两句

Open Toolbar