还是以前面提到成功登录
百度账号的feature为例。
仔细想想这个 test case是不是还有什么不完美的地方呢?
我们说一个test case最大的特性就是repeatability, 即保证每次执行时步骤都是可重现的,output的也都是一样的。
看看上面这个test case,它是否具有可重现性的特质呢? 如果用户已经登录了,这面的脚本是否可以执行通过?
如何解决这个问题?
*** Keywords ***
Login Is Failed [Arguments] ${username}
Page Should Not Contain ${username}
*** 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}
${status}= Call Selenium Api is_element_present link=登出(将是否存在登出按钮的结果当成变量存储起来)
Run Keyword If ${status} == True Click link=登出(以变量为条件进行判断)
Open Login Page (移除)
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}