套件(數(shù)據(jù)文件)文件中的表
RF 支持四種表晨汹,分別是 Settings,Variables汇竭,Test Cases,Keywords痊剖。表名必須出現(xiàn)在第一單元中韩玩。表名大小寫不敏感(建議大寫)。
- Settings 表
Settings 表陆馁,顧名思義找颓,就是這個(gè)測試套件的全局配置表。比如叮贩,這個(gè)測試套件要使用的測試庫击狮,資源文件,測試套件的環(huán)境初始化(setup)和清除(teardown)益老,該套件內(nèi)容的標(biāo)簽等等彪蓬。Settings 表范例如下:
*** Settings ***
Library SomeLibrary
Suite Setup Do something ${MESSAGE}
Test Teardown Open Application App A
Test Teardown Close Application
Force Tags req-42
Default Tags owner-john smoke
Test Template Example keywoed
Resource myresources.html
Library 庫的導(dǎo)入,Suite Setup捺萌、Test Teardown 初始化清除档冬,Force Tags、Default Tags 就是加一些標(biāo)簽桃纯,Test Template 一些模板酷誓,Resource 一些資源。這些都是 **Settings ** 表里能支持的态坦。我們先知道這里面能存哪些東西盐数,后面我們都會(huì)用到。
Settings 范例如下
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
百度搜索
Open Browser http://www.baidu.com chrome
Set Selenium Implicit Wait 5
Input Text id=kw 宋曲\n
${firstRet}= Get Text id=1
Should Contain ${firstRet} 宋曲 新書上傳
百度搜索2
Open Browser http://www.baidu.com chrome
Set Selenium Implicit Wait 5
Input Text id=kw 你好\n
${firstRet}= Get Text id=1
Should Contain ${firstRet} 你好
比如說我在 Settings 表里面導(dǎo)入了一個(gè) SeleniumLibrary 伞梯,那么在這個(gè)測試套件的文件里面玫氢。這個(gè)文件里面所有的測試用例都可以用到 SeleniumLibrary ,比如說 Open Browser 是屬于它的谜诫,在百度搜索里面可以用漾峡,在百度搜索2里面也可以用。Settings 里面的聲明在這一個(gè)測試套件的文件里面猜绣,它是一個(gè)全局變量灰殴。在這個(gè)文件里面,每個(gè)測試用例都可以用它。所有的用例都是有效的牺陶。
- Test Cases 表
Test Cases 表伟阔,用來定義這個(gè)測試套件的測試用例用例的。Test Cases 范例如下:
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
My Test
[Documentation] Exaple test
log ${MESSAGE}
My Keyword /tmp
Another Test
should be equal ${MESSAGE} Hello, word
下面的章節(jié)會(huì)詳細(xì)講解掰伸,現(xiàn)在我們只要知道它能定義多個(gè)測試用例就可以了皱炉。
-
Variables 表
Variables 就是這個(gè)測試套件的全局變量表。RF 里面的變量的作用和編程語言里面的作用類似狮鸭。套件里面的測試用例將會(huì)用它們合搅。Variables 范例如下:
*** Variables ***
${JOHN HOME} /hoem/john
${JANE HOME} /home/jane
關(guān)于變量的定義詳細(xì)用法,比如怎么定義怎么寫語法格式后面會(huì)詳細(xì)講解歧蕉,這里大家先知道:定義變量就是為了在我們測試套件里面的測試用例將會(huì)用到它們就可以了灾部。
-
Keywords 表
Keywords 表,是用來定義這個(gè)測試套件的用戶關(guān)鍵字的惯退。前面說過 RF 的關(guān)鍵字是由測試庫實(shí)現(xiàn)的赌髓。但是很多 QA 不會(huì) Python 編程語言,所以 RF 提供一個(gè)方式催跪,可以將關(guān)鍵字組合起來锁蠕,形成一個(gè)高級關(guān)鍵字,稱為用戶關(guān)鍵字懊蒸。而測試庫實(shí)現(xiàn)的底層關(guān)鍵字荣倾,稱為庫關(guān)鍵字。Keywords 范例如下:
*** Keywords ***
Open Login Page
open browser http://host/login.html
title should be Login Page
Title Should Start With
[Arguments] ${expected}
${title} = Get Tile
should start with ${title} ${expected}
比如說我們這里定義了一個(gè)關(guān)鍵字 Open Login Page 打開登錄頁面骑丸,這里面有兩個(gè) Robot 里面的關(guān)鍵字舌仍,一個(gè)是打開瀏覽器,第二個(gè) title should be 判斷打開的是不是登錄界面通危,這是用戶用 Robot 組合出來的關(guān)鍵字抡笼。這是一個(gè)簡單的例子。
現(xiàn)在我們基本上了解了測試套件這個(gè)文件的大體的組成結(jié)構(gòu)黄鳍,簡單的說它是由幾張表組成的,它可以包含Settings 表平匈、Test Cases 表框沟、Keywords 表、Variables 表增炭。下面我們重點(diǎn)關(guān)注一下其中的一張表忍燥,測試用例表。因?yàn)槲覀兊臏y試用例就是寫在測試用例表里面的隙姿。
測試用例表 語法
測試用例表就是用來定義測試套件里面的測試用例的梅垄。再來看一個(gè)例子:
*** Settings ***
Library SeleniumLibrary 10 20
Library Collections
Library Dialogs
*** Test Cases ***
百度搜索1
[Documentation] 測試百度搜索 宋曲
Open Browser http://www.baidu.com chrome
Input Text id=kw 宋曲\n
Set Selenium Implicit Wait 4
${firstRet}= Get Text css=div.result:first-of-type>h3
Should Be Equal ${firstRet} 宋曲
Close Browser
百度搜索2
[Documentation] 測試百度搜索 宋曲小說
Open Browser http://www.baidu.com chrome
Input Text id=kw 宋曲小說\n
Set Selenium Implicit Wait 4
${firstRet}= Get Text css=div.result:first-of-type>h3
Should Be Equal ${firstRet} 宋曲小說(皓月未央)
Close Browser
這個(gè)測試用例表它的第一列就是測試用例的名稱百度搜索1百度搜索2。用例的內(nèi)容也就是它的測試步驟输玷,就是從用例名開始到下一個(gè)用例名結(jié)束之前队丝,這里面所有的內(nèi)容都是百度搜索1這個(gè)測試用例所對應(yīng)的測試步驟靡馁。
大家看一下,測試用例表里面的每個(gè)測試用例可以分成兩部分一個(gè)叫配置部分一個(gè)叫主體部分机久。所謂主體部分就是用例一行一行的語句臭墨。那為什么測試用例還有一些配置呢?前面我們講了測試套件文件有配置表膘盖,這個(gè)用例它自己也有配置表是不是覺得有點(diǎn)奇怪胧弛?我們剛講了,如果是我們在測試套件上面 Settings 表里面有一些配置表侠畔,那用例里面里面也有它自己的配置表结缚,它倆的有效范圍是什么?因?yàn)槲覀儨y試用例本身自己也有一些獨(dú)特的配置软棺,如果我們定義在上面的話(Settings里面)红竭,這個(gè)配置就是所有用例的都用到剛才的那個(gè)配置。如果我定義在測試用例本身自己的用例里面的話码党,那它的有效范圍只是在這個(gè)測試用例里面德崭,而其它的測試用例是用不到這個(gè)配置的。
總結(jié) 配置表配置的有效范圍是整個(gè)測試套件文件揖盘,也就是這個(gè)里面的所有用例眉厨,而用例的配置它的范圍只在它自己。
那我們怎么配置格式是什么兽狭?比如說我們這里有個(gè)簡單的例子 [Documentation] 憾股,加個(gè) [] 括號(hào),首先大家看下它的位置箕慧。所有的配置名都在放第二列服球,也就是前面要有兩個(gè)以上的空格。而且都要用方括號(hào)括起來颠焦,這樣可以和關(guān)鍵字區(qū)分開來斩熊,它用方括號(hào)括起來之后大家可以看到這是一行 [Documentation] 的配置,我們還可以加一些 Tag 伐庭,比如說剛剛講的這個(gè)里面粉渠。
這也是其中的一個(gè)匹配。后面會(huì)詳細(xì)的講有哪些常用的配置圾另。
-
用例配置部分
[Documentation] 該用例的文字說明霸株、[Tags] 該用例的標(biāo)簽、[Setup]集乔,[Teardown]該用例的初始化和清除操作去件、[Template] 聲明該用例是模板關(guān)鍵字驅(qū)動(dòng)的。本用例只包含測試數(shù)據(jù)、[Timeout] 該用例超時(shí)時(shí)間尤溜。
剛說了測試用例分為配置部分和主體部分倔叼,看完了配置部分,我們來看一下主體部分靴跛。主體部分也就是我們這個(gè)測試用例具體的步驟缀雳,我們用例的主體部分主要是由關(guān)鍵字組成,關(guān)鍵字決定了每一行做什么內(nèi)容梢睛,這個(gè)關(guān)鍵字怎么來的呢肥印?我們之前也講了,它最主要的來源就是測試庫绝葡,其實(shí)就是我們 python 的模塊深碱,通常對應(yīng)了 python 的函數(shù)或者類的方法。還有一些庫是我們自己提供藏畅,還有一些測試庫是第三方提供的敷硅,還有一些是 Robot 自己提供的。比如這個(gè)例子里面:
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
百度搜索
Open Browser http://www.baidu.com chrome
Set Selenium Implicit Wait 5
Input Text id=kw 宋曲\n
${firstRet}= Get Text id=1
Should Contain ${firstRet} 宋曲
Open Browser 就是由 SeleniumLibrary 提供的愉阎,Should Contain 就是 Robot 里面 BuiltIn 提供的绞蹦,如果我們測試的場景沒有現(xiàn)成的第三方庫可以用,通常我們就自己開發(fā)榜旦,這個(gè)也是我們實(shí)際項(xiàng)目中經(jīng)常做的一些事情