您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
基于selenium測試框架設計之MVC模式
作者:網絡轉載 發(fā)布時間:[ 2014/3/5 11:33:33 ] 推薦標簽:selenium 測試框架

這里只是借用MVC這個名字,其實和web應用的mvc模式不是一個概念

M是model,是數據模型,從測試來講包含測試數據和測試對象數據。
-測試數據管理。在數據驅動的場景下可能要用到大量測試數據,可以是隨機或特定約束下生成的,或者從外部導入。無論哪種都需要支持類和方法來生成,存儲,操縱或轉換。
測試數據的格式常見的有csv,xml,excel,數據庫等。在java里配置數據一般存在xml或者properties文件,便于讀取和管理,而大量的數據紀錄則用csv比較經濟。數據結構來講映射到對象比多維數組更便于檢索,但開銷也大一些。
數據庫存測試數據增加了依賴性,但是方便復雜的查詢。各種結構可謂各有利弊,從個人實踐上講csv是常用的輸入輸出格式,其中一個重要因素是csv轉換excel非常方便。

-測試對象數據。QTP有動態(tài)和靜態(tài)對象庫的概念。這種機制有利于腳本的維護,完全可以借鑒到我們自己的框架設計體系中來。selenium里可以標示網頁對象的是Locator,webdriver里是By。類型不外乎name,id,class,xpath,jquery locator等,描述方式接近于QTP的描述性標示。Terrillium 框架采用了groovy混合編程,是利用了腳本語言在描述層次對象上的靈活性。假如用java實現(xiàn)的話也可以用遞歸的方式來檢查組合對象,比如表單。表單對象有若干子對象,比如輸入框,提交按鈕,下拉框等。一個一個對象檢查有些累贅,改進后偽代碼如下
checkCombObject(WebObject object){
if(object.hasChildren()){
for(Object obj : object.allChildren){
checkCombObject(obj);
}
}
assertObjectMatch(expectedObj, object);

這樣一行代碼可以檢查整個表單
checkCombObject(webForm);

先寫到這里,下次再寫V(View)和C(Control)

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd