一個登錄功能的test case就那么幾步续膳,很容易寫,但通常情況下登錄僅僅是第一步收班,比如你上網(wǎng)買東西的時候坟岔,查看購物車的時候,寫微博的時候摔桦,這些行為基本離不開登錄社付,登錄是基礎(chǔ)。這就意味著你寫復(fù)雜test case的時候總得先寫登錄邻耕。雖然就那么幾步鸥咖,還每次寫是不是還是很蛋疼?太費勁了兄世,要是能寫一次就好了啼辣。和直接寫程序一樣,在Robot Framework里也可以把它寫成函數(shù)/方法御滩,每次需要直接調(diào)用∨概。現(xiàn)在我們就改進一下咱們的登錄項目。
函數(shù)肯定是脫離開test case本身的削解,所以肯定要新建一個東西富弦。打開RIDE,右鍵點擊工程MyFirstTestCase氛驮,我靠腕柜,發(fā)現(xiàn)有好幾個選項都帶New,那應(yīng)該選哪個呢矫废?函數(shù)在Robot Framework里對應(yīng)是Keyword盏缤,選New User Keyword打開函數(shù)對話框,起名“Login to hrsystem”磷脯。名稱下面還有一個叫Auguments的文本框蛾找,其實就是用于放函數(shù)參數(shù)的。現(xiàn)在先什么都不填赵誓,我們點擊OK打毛。
打開編輯頁面后感覺和測試用例TCLOG-1相似,因為本來函數(shù)就是測試用例的一部分:
Documentation:用來寫函數(shù)的介紹俩功;
Tags:標(biāo)簽幻枉,可以用來標(biāo)注函數(shù)的相關(guān)信息;
Arguments:實際參數(shù)诡蜓。函數(shù)有可能需要參數(shù)熬甫,就寫在這里;
Teardown:如果還有步驟需要在測試完成后執(zhí)行可以寫在這里蔓罚;
Return Value:函數(shù)返回值椿肩;
網(wǎng)格的用處也是一樣的瞻颂,我們把除最后一步Close Browser之外的所有步驟都復(fù)制粘貼到Keyword的網(wǎng)格里:
最后回到TCLOG-1,把所有步驟都去掉郑象,直接寫上Login to hrsystem和Close Browser兩步贡这。注意,當(dāng)剛輸入“L”時使用快捷鍵Ctrl+Alt+Space會發(fā)現(xiàn)上Login to hrsystem自動出現(xiàn)厂榛,我們發(fā)現(xiàn)自己寫的函數(shù)是用深藍色表示的盖矫,它們也成為了關(guān)鍵字:
你按住Ctrl點擊函數(shù)還會跳轉(zhuǎn)到函數(shù)那頁。TCLOG-1現(xiàn)在只有兩行击奶,已經(jīng)變得非常簡單了辈双,因為所有的登錄操作都已經(jīng)放到函數(shù)中。 我們再次運行程序柜砾,測試通過湃望。
能不能進一步改變一點?別忘了局义,函數(shù)Login to hrsystem現(xiàn)在不加參數(shù)的喜爷。這就意味著我們永遠得用相同的員工代號/密碼-1001/123來測試。這就肯定不對了萄唇,一組測試數(shù)據(jù)哪兒夠呢檩帐?來,把員工代號和密碼作為函數(shù)的參數(shù)加上另萤。打開Login to hrsystem湃密,我們在Arguments里填“${usercode} | ${password}”,代表此函數(shù)接受兩個參數(shù) - ${usercode}和${password}四敞,分隔符為“|”泛源。“${}”是用來聲明變量的忿危。接著我們把“1001”替換成${username}达箍,“123”替換成${password},一個帶參數(shù)的完整函數(shù)體就寫完了:
這樣铺厨,以后任意的員工代號和密碼都可以傳給函數(shù)執(zhí)行了缎玫。回到TCLOG-1會發(fā)現(xiàn)Login to xiaocesuo旁邊多出了兩個紅色的格解滓,代表有兩個必要參數(shù)需要輸入赃磨。這和我們剛才對函數(shù)的設(shè)置正好對應(yīng),軟件很聰明:
在第一個紅格員工代號位置輸入“1001”洼裤,第二個密碼位置輸入“123”邻辉,保存,運行。測試通過值骇。
現(xiàn)在我們回到之前那個問題莹菱,當(dāng)你新建一個project的時候RF會問你選什么樣的文件格式,有四種– ROBOT, TXT, TSV, HTML ±卓停現(xiàn)在打開項目目錄會看見一個叫MyFirstTestCase.html的文件芒珠,明白啥意思了吧?當(dāng)你選擇一種格式搅裙,項目文件就會以什么樣的格式出現(xiàn)。雙擊這個文件裹芝,你可以看到聲明過的所有信息都存在這里:
這其實就是一個html網(wǎng)頁部逮,如果你想修改這個文件而且又不愿意從RF里改,鼠標(biāo)右鍵打開文件編輯模式就行了嫂易。但新手不推薦兄朋,寫錯了就讀不出來了。
有人說1001/123不還是一組數(shù)據(jù)嗎怜械?別著急啊颅和,一步一步來。我們剛剛把函數(shù)完善了缕允,現(xiàn)在可以在TCLOG-1中輸入各種用戶名密碼了峡扩。下一章我們進行第二次改進 – 創(chuàng)建數(shù)據(jù)集并用Robot Framework進行讀取。
這篇文章的源代碼在[Test2](https://github.com/cslm/cslm.robotframework/tree/master/Test2)中障本。