? ? 在Xebium目錄結(jié)構(gòu)和頁(yè)面類型中苏潜,提到每個(gè)測(cè)試腳本(Wiki頁(yè))都是文件夾里的目錄步责,用例集也就是目錄下有各個(gè)用例(目錄)的父目錄。那么鹅搪,如果我們創(chuàng)建文件或者目錄的軟鏈接會(huì)發(fā)生什么站绪,如何利用這個(gè)特性來(lái)應(yīng)用到測(cè)試用例的組織中去呢?
? ? 如果接觸過(guò)Linux系統(tǒng)丽柿,那么一定對(duì)軟鏈接(Symbolic Links)的創(chuàng)建很熟了恢准;對(duì)于windows用戶來(lái)說(shuō)魂挂,則相當(dāng)于建立一個(gè)目錄或者文件的快捷圖標(biāo)(.lnk)文件。現(xiàn)在越來(lái)越多的人都不再接觸console的命令行界面了馁筐,反而很多人熟悉于桌面圖標(biāo)涂召,但從編程領(lǐng)域來(lái)說(shuō),接觸并了解命令行模式才能對(duì)系統(tǒng)有更深入的了解:)敏沉。
? ? 先來(lái)說(shuō)說(shuō)Xebium如何創(chuàng)建軟鏈接(Symbolic Links)吧果正。
????1. 假設(shè)我們有一個(gè)TestSuite-A(地址為:.testEntry.TestSuite-A),已經(jīng)完成了相關(guān)腳本的編寫盟迟,另外我們創(chuàng)建了一個(gè)TestSuite-B舱卡,還沒(méi)有為TestSuite-B寫任何腳本,如圖:
? ? 2. 發(fā)覺(jué)TestSuite-B可以完全重用TestSuite-A的用例集队萤,雖然我們用copy的方式轮锥,可以完全實(shí)現(xiàn)該目的,但是會(huì)有如下情況:a) 我們要修改相關(guān)測(cè)試腳本要尔,需要同時(shí)修改2份文件舍杜;b)文件占用硬盤的容量翻倍。當(dāng)發(fā)現(xiàn)確實(shí)有以上的煩惱赵辕,那么可以創(chuàng)建軟鏈接(Symbolic Links)既绩。我們進(jìn)入到TestSuite-B,點(diǎn)導(dǎo)航欄菜單項(xiàng)Tools->Properties还惠,進(jìn)入文件屬性設(shè)置界面饲握,設(shè)置“Symbolic Links”部分,如圖:
在“Symbolic Links”部分蚕键,Name隨意救欧,Path to Page需要填入其他測(cè)試用例集(或者測(cè)試用例)的地址,點(diǎn)Create按鈕即可锣光,如圖:
顯示結(jié)果如下:
測(cè)試集后面的">"號(hào)笆怠,用來(lái)表明這是Symbolic Link,下方列出的是被引用的測(cè)試集下的所有用例(或者說(shuō)子目錄)誊爹,但實(shí)際的文件目錄下卻沒(méi)有相關(guān)的文件蹬刷。
????為什么這里重點(diǎn)以一章的重點(diǎn)來(lái)說(shuō)呢?因?yàn)槠登穑眠@個(gè)特性办成,我們可以準(zhǔn)備一套用例和不同的配置文件(用到變量的傳遞)來(lái)實(shí)現(xiàn)多個(gè)環(huán)境下的回歸測(cè)試。
? ? 來(lái)看看官方給出的示意圖:
看這圖不太容易理解搂漠,我們來(lái)舉個(gè)例來(lái)說(shuō):
首先我們有測(cè)試用例TestCaseA迂卢,腳本如下:
| script |
| start browser | ${BROWSER} | on url | ${url} |
| scenario | 登錄測(cè)試系統(tǒng) |
| do | open | on | / |
| do | windowMaximizeAndWait | on |? |
| ensure | do | waitForPageToLoad | on | 1000 |
| ensure | do | type | on | !-//input[@type='text']-! | with | ${user} |
| ensure | do | type | on | !-//input[@type='password']-! | with | ${password} |
| ensure | do | clickAndWait | on | id=btn-login |
| script |
| 登錄測(cè)試系統(tǒng) |
以上wiki腳本用于實(shí)現(xiàn)打開(kāi)${BROWSER}變量定義的瀏覽器,代開(kāi)${URL}定義的地址,然后輸入${user}(用戶名)和${password}(密碼)冷守,并點(diǎn)擊登錄按鈕進(jìn)行登錄刀崖。
那么問(wèn)題來(lái)了,如果我在測(cè)試環(huán)境和生產(chǎn)環(huán)境都想用這套腳本拍摇,只是不同的地址亮钦,用戶名,密碼充活,那我是否還需要復(fù)制一套并定義變量蜂莉?答案當(dāng)然是不需要,我們只要定義一個(gè)空的TestSuite(測(cè)試環(huán)境)混卵,然后增加SuiteSetUp(測(cè)試環(huán)境數(shù)據(jù)準(zhǔn)備)映穗,用于自己定義以上變量${BROWSER},${URL}幕随,${user}和${password}蚁滋,然后添加Symbolic Link,為TestCaseA添加軟鏈接赘淮,這樣辕录,就可以實(shí)現(xiàn)為特定的環(huán)境設(shè)置需要的變量,并采用同一套測(cè)試腳本的目的梢卸。
同樣的走诞,如果為生產(chǎn)環(huán)境,那么再定義一個(gè)TestSuite(生產(chǎn)環(huán)境)蛤高,在SuiteSetUp中把生產(chǎn)環(huán)境的值賦給以上四個(gè)變量蚣旱,并用Symbolic Link,執(zhí)行特定環(huán)境配置的相同腳本戴陡。
一旦控件或者空間屬性發(fā)生變化塞绿,需要維護(hù)腳本,那么以上2個(gè)環(huán)境也只需要維護(hù)TestCaseA的腳本猜欺,那么以上2個(gè)環(huán)境都會(huì)同時(shí)生效位隶。是不是更為易用,減少的維護(hù)腳本的消耗开皿?其實(shí)這種實(shí)現(xiàn),也算是數(shù)據(jù)驅(qū)動(dòng)測(cè)試方法的一種篮昧。