Automation One By One - Robot Framework - 优化Test Case

上一篇 / 下一篇  2011-07-12 09:43:58 / 个人分类:Robot Framework

还是以前面提到成功登录百度账号的feature为例。

*** Settings ***
Library       Selenium Library
Resource      /Path/to/Variable.txt
Resource      /Path/to/loginkeywords.txt
*** 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是不是还有什么不完美的地方呢?

我们说一个test case最大的特性就是repeatability, 即保证每次执行时步骤都是可重现的,output的也都是一样的。

看看上面这个test case,它是否具有可重现性的特质呢? 如果用户已经登录了,这面的脚本是否可以执行通过?

如何解决这个问题?
  • 在test case的真正代码执行前,我们先判断一下是否已经登录,如果已经登录则执行退出运作然后再执行登录的操作,如果没有登录则执行登录操作。
  • 我们修改一下test case
    • 先查找一下有没有退出按钮
    • 如果有单击退出
    • 如果没有再执行接下来的脚本

*** Settings ***
Library       Selenium Library
Resource      /Path/to/Variable.txt
Resource      /Path/to/loginkeywords.txt
*** Testcases ***
Login Should Succeed When the Correct Username and Password are Entered
  ${status}=  Call Selenium Api  is_element_present  link=登出(将是否存在登出按钮的结果当成变量存储起来)
  Run Keyword If  ${status} == True  Click  link=登出(以变量为条件进行判断)
  Open Login Page
  Enter Username  @{username}[0]
  Enter Password  @{password}[0]
  Click the Login Button
  Login Is Successful  @{username}[0]

    • 为了方便用户理解,我们把刚才新增的脚本放在loginkeywords.txt中.
  • 修改过后的Test Case及LoginKeywords如

*** Settings ***
Library       Selenium Library
Resource      /Path/to/Variable.txt
Resource      /Path/to/loginkeywords.txt
*** Testcases ***
Login Should Succeed When the Correct Username and Password are Entered
  Whether Login
  Open Login Page
  Enter Username  @{username}[0]
  Enter Password  @{password}[0]
  Click the Login Button
  Login Is Successful  @{username}[0]


*** Keywords ***
Whether Login
 ${status}=  Call Selenium Api  is_element_present  link=登出(将是否存在登出按钮的结果当成变量存储起来)
  Run Keyword If  ${status} == True  Click  link=登出(以变量为条件进行判断)
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}

TAG:

 

评分:0

我来说两句

Open Toolbar