RFT框架
最近分析了一下IBM框架(也叫ITCL框架)。
http://www.ibm.com/developerworks/rational/library/06/0822_goel/
這個框架採用了三層架構:物件層、任務層和測試用例層。
- AppObjects: where you will store information about your application’s GUI elements. It is also where you will write your Getter Methods, which return objects enabling the Caller to query and manipulate these GUI elements. Typically, these methods are called within the Task layer.
- Tasks: where you will write reusable methods that exercise common functions in your application. It is also where you will write methods to manipulate and query complex, application-specific controls. Methods in the Task are called by Test Cases.
- Test Cases: methods that navigate through an application, verify its state, and log results.
物件層:儲存AUT的GUI元素資訊,並且由框架自動建立Getter方法用於返回物件。例如,登入視窗的使用者名稱輸入框、密碼輸入框、確認登入按鈕等物件的獲取都可放在名為Login的測試指令碼中,Login放在名為AppObject的包裡。
public WButton getButton_signInsubmit() {
TestObject to = button_signInsubmit(ANY, NO_STATE);
return new WButton(to);
}
public WTextField getText_login() {
TestObject to = text_login(ANY, NO_STATE);
return new WTextField(to);
}
public WTextField getText_passwd() {
TestObject to = text_passwd(ANY, NO_STATE);
return new WTextField(to);
}
任務層:在這一層中編寫可重用的方法用於執行鍼對AUT的通用功能。例如,在LoginTask中編寫AssignLoginInfo方法用於登入時的使用者名稱和密碼輸入的指令碼。這些指令碼都統一放在名為Tasks的包裡。
//DECLARE THE OBJECT OF THE SCRIPTS EXIST IN APPOBJECT
public AppObject.Login lgn = new AppObject.Login();
public void AssignLoginInfo()
{
lgn.getText_login().setText("abc");
lgn.getText_passwd().setText("New1");
}
用例層:編寫測試用例的指令碼的地方,一般用於實現業務流程的測試。例如,在YahooLogin指令碼中實現登入的全過程。這些指令碼都統一放在名為TestCase的包裡。
//DECLARE THE OBJECT OF THE SCRIPTS EXIST IN TASKS
//OBJECT CREATION OF TASKS LOGINTASK SCRIPT
public Tasks.LoginTask lt = new Tasks.LoginTask();
public void testMain(Object[] args)
{
//INVOKING THE BROWSER
startBrowser("mail.yahoo.com");
//ASSIGNED THE USER NAME AND LOGIN INFO
lt.AssignLoginInfo();
//CLICKED ON LOGIN/SUBMIT BUTTON
lt.lgn.getButton_signInsubmit().click();
//FURTHER ACTION CAN BE WRITTEN ACCORDIUNLGY
//...
}
這樣的框架的好處是:
1、分層的架構
2、把“what”從“how”中抽離出來
3、程式碼重用
4、一致和清晰的結構
5、有效的檔案組織
6、…
關於分層的思想,這篇文章也值得一看:
http://www.ibm.com/developerworks/cn/rational/r-cn-rftwindows1/
相關文章
- RFT常用函式函式
- RFT和QTP與AutoItQT
- 使用 RFT 設計 Web 2.0 應用的 GUI 自動化測試框架WebGUI框架
- RFT的異常處理方式
- 在RFT中新增clipboard檢查點
- 在RFT中新增檔案檢查點
- 如何在RFT中比較兩個影像檔案?
- 通過RFT命令列執行測試指令碼命令列指令碼
- ZT - RFT ScriptAssure 技術解析及應用例項(4)
- 在RFT中使用Excel進行資料驅動測試Excel
- 在RFT中查詢視窗中指定名稱的物件物件
- 在RFT中如何獲取JTable中的所有資料?
- 在RFT中傳送鍵盤按鍵 - inputChars vs. inputkeys
- 在RFT中根據指定的標題查詢頂層視窗
- 在RFT中如何等待瀏覽器處於Ready狀態?瀏覽器
- 在RFT中如何擷取螢幕影像並儲存到檔案中?
- 在RFT中關閉所有IE瀏覽器視窗的3種方法瀏覽器
- 在RFT中如何通過指令碼獲取已新增到某個指令碼中的測試物件?指令碼物件
- Android精通之OrmLite資料庫框架,Picasso框架,Okio框架,OKHttp框架AndroidORM資料庫框架HTTP
- 微服務框架-dubbo整合nacos框架微服務框架
- bo 框架之 beego 框架 model curd框架Go
- golang web框架,golang版本laravel 框架GolangWeb框架Laravel
- 最好的 Go 框架:沒有框架?Go框架
- httprouter框架 (Gin使用的路由框架)HTTP框架路由
- 用Kohana框架來替代Zend框架框架
- 【集合框架】Java集合框架綜述框架Java
- 前端框架開發之Niu框架——從零學框架的小白前端框架
- Koa框架教程,Koa框架開發指南,Koa框架中文使用手冊,Koa框架中文文件框架
- Django框架,Flask框架和Tornado框架各有什麼優缺點Django框架Flask
- wsgiref模組、web框架、django框架簡介Web框架Django
- 我的開發框架之ORM框架框架ORM
- spring框架——Spring框架簡介Spring框架
- 執行時框架,編譯時框架框架編譯
- SSM框架SSM框架
- 前端框架前端框架
- 全新框架框架
- cms 框架框架
- Mybatis框架MyBatis框架