這里只是借用MVC這個(gè)名字,其實(shí)和web應(yīng)用的mvc模式不是一個(gè)概念
M是model,是數(shù)據(jù)模型,從測(cè)試來(lái)講包含測(cè)試數(shù)據(jù)和測(cè)試對(duì)象數(shù)據(jù)。
-測(cè)試數(shù)據(jù)管理。在數(shù)據(jù)驅(qū)動(dòng)的場(chǎng)景下可能要用到大量測(cè)試數(shù)據(jù),可以是隨機(jī)或特定約束下生成的,或者從外部導(dǎo)入。無(wú)論哪種都需要支持類和方法來(lái)生成,存儲(chǔ),操縱或轉(zhuǎn)換。
測(cè)試數(shù)據(jù)的格式常見(jiàn)的有csv,xml,excel,數(shù)據(jù)庫(kù)等。在java里配置數(shù)據(jù)一般存在xml或者properties文件,便于讀取和管理,而大量的數(shù)據(jù)紀(jì)錄則用csv比較經(jīng)濟(jì)。數(shù)據(jù)結(jié)構(gòu)來(lái)講映射到對(duì)象比多維數(shù)組更便于檢索,但開(kāi)銷也大一些。
數(shù)據(jù)庫(kù)存測(cè)試數(shù)據(jù)增加了依賴性,但是方便復(fù)雜的查詢。各種結(jié)構(gòu)可謂各有利弊,從個(gè)人實(shí)踐上講csv是常用的輸入輸出格式,其中一個(gè)重要因素是csv轉(zhuǎn)換excel非常方便。
-測(cè)試對(duì)象數(shù)據(jù)。QTP有動(dòng)態(tài)和靜態(tài)對(duì)象庫(kù)的概念。這種機(jī)制有利于腳本的維護(hù),完全可以借鑒到我們自己的框架設(shè)計(jì)體系中來(lái)。selenium里可以標(biāo)示網(wǎng)頁(yè)對(duì)象的是Locator,webdriver里是By。類型不外乎name,id,class,xpath,jquery locator等,描述方式接近于QTP的描述性標(biāo)示。Terrillium 框架采用了groovy混合編程,是利用了腳本語(yǔ)言在描述層次對(duì)象上的靈活性。假如用java實(shí)現(xiàn)的話也可以用遞歸的方式來(lái)檢查組合對(duì)象,比如表單。表單對(duì)象有若干子對(duì)象,比如輸入框,提交按鈕,下拉框等。一個(gè)一個(gè)對(duì)象檢查有些累贅,改進(jìn)后偽代碼如下
checkCombObject(WebObject object){
if(object.hasChildren()){
for(Object obj : object.allChildren){
checkCombObject(obj);
}
}
assertObjectMatch(expectedObj, object);
}
這樣一行代碼可以檢查整個(gè)表單
checkCombObject(webForm);
先寫到這里,下次再寫V(View)和C(Control)