條件判斷:html
rf中用run keyword if 關鍵字作條件判斷,以此來達到相似在python中if ...else...條件判斷的功能。python
注意:ELSE IF必定都是大寫的,否則運行後會報錯。less
RF中解決太長的問題:能夠用下一行 前面加三個省略號,在測試用例中,下一行的省略號前面必須留一個以上的空單元格。oop
*** Test Cases ***測試
條件判斷1ui
[Documentation] run keyword if 須要注意的是:語法嚴格 in 左右只能一個空格 多了會報錯lua
${status}= set variable abcdhtm
run keyword if 'bc' in ${status} log to console bc包含在abcd裏面get
條件判斷2it
[Documentation] if ...else... 分支
${status}= set variable abcde
run keyword if 'cd' in ${status} log to console cd包含在abcde裏面
... ELSE log to console cd沒有包含在abcde裏面
條件判斷3
[Documentation] if ...else if...else... 分支
${'status'}= set variable rrrr
run keyword if '${status}' == 'tttt' log to console 1
... ELSE IF '${status}' == 'rrrr' log to console 2
... ELSE log to console 3
else分支:在老版本的RF中,是沒有else分支的,只能經過run keyword unless來達到目的。
run keyword unless和上面的run keyword if沒有任何關係,可單獨使用。
條件判斷4
[Documentation] else分支 run keyword if unless
${html}= set variable 2019-12-02 UTC
run keyword if '2019' in '$html and 'UTC' in $html
... log to console 是2019年的時間 UTC
run keyword if unless '2017' in '$html and 'UTC' in $html
... log to console 不是2019年的時間 UTC
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
循環語句:
RF中循環只有for循環
Exit For Loop關鍵字實現break功能 ------- 徹底結束循環
用Continue For Loop實現continue 功能 -------- 終止本次循環
也可使用等價的關鍵字 Continue For Loop If Exit For Loop If
*** Test Cases ***
循環裏的判斷1
${weight}= get value from user 請輸入你的體重 60
log to console 體重爲${weight}
run keyword if int($weight)>60 log to console 過重了
... ELSE log to console 過輕了
循環裏的判斷2
:for ${one} in range 99999
\ ${weight}= get value from user 請輸入你的體重 60
\ run keyword if $weight=='over' Exit For Loop
\ run keyword if $weight=='cont' continue for loop
\ run keyword if int($weight)>60 log to console 過重了
\ ... ELSE log to console 過輕了
爲了簡潔簡化,還能夠這樣寫:
exit for loop if $weight=='over'
continue for loop if $weight=='cont'
evaluate的使用:
evaluate關鍵字的參數爲python的表達式,有的表達式須要引入模塊,有的不須要模塊默認不引入模塊
*** Test Cases ***
${var1}= create list hello,world
${var2}= evaluate 'hello world'[:4]
${var3}= evaluate {'hello', 'world'}
${var4}= evaluate ['hello']*10
${var5}= evaluate math.fool(-2) modules=math
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
初始化和清除:
是測試一個用例以前要作的事情(setup)和測試後要作的事情(teardown)。
在RF中,每一個測試套件目錄、測試套件文件、測試用例均可以有本身的setup的teardown。
全部的setup和teardown操做都只能由一個關鍵字語句構成。
初始化和清除寫在測試用例表的配置項中:
*** Test Cases ***
test1
[Documentation] 初始化和清除
[Setup] log to console *******前置********
log to console 測試用例1主體部分
[Teardown] log to console *******後置********
test2
[Documentation] 初始化和清除
log to console 測試用例2主體部分
測試套件文件的setup、teardown:
寫在測試套件文件的settings表中
兩種類型: - Suite setup/teardown 進入和退出這個suite執行用例先後必須執行且只分別執行一次
- Test setup/teardown 若是suite內的用例自己沒有setup/teardown, 才執行
*** Settings ***
Suite Setup log to console -----測試套件的前置------
Suite Teardown log to console -------測試套件的後置--------
Test Setup log to console -------前置--------
Test Testdown log to console --------後置--------
測試套件目錄的setup、teardown:
在其目錄下的初始化文件__int__.txt 或者__init__.robot裏的settings表中
兩種類型: - Suite setup/teardown 進入和退出suite執行用例先後必須執行且分別執行一次
- Test setup/teardown 若是suite內的用例或者子套件 自己沒有setup/teardown ,才執行
*** Settings ***
Suite Setup log to console -------測試套件的前置----------
Suite Teardown log to console ---------測試套件的後置----------
Test Setup log to console -----------前置----------
Test Teardown log to console ---------後置----------
目錄下的文件執行方法:
能夠在終端,如:robot suite1\st1.robot
robot --suite st1 suite1
若是隻想執行文件中的某個具體的用例,怎麼執行?
robot --test 測試1 suite1