對測試對象的識別能力就成為一個GUI測試工具的最基本功能了。本文介紹TestComplete是如何識別進(jìn)程、窗體和控件的。
公司主營業(yè)務(wù):網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出鄂州免費做網(wǎng)站回饋大家。命名概念:
為了在腳本中記錄識別出來的測試對象,TC需要使用到這些對象的屬性。每個對象都有很多的屬性,像“class name”,“text”,“enabled”等。你可以在Object Browser窗口中看到有效的對象屬性,或者使用Object Properties窗口來查看。
有些對象屬性會在應(yīng)用程序的運行過程中發(fā)生改變(例如edit box對象的text屬性),而有些(例如窗體的handle)則是保持不變但是在兩個不同的應(yīng)用程序?qū)嵗\行時會不一樣。某些屬性(例如某些應(yīng)用程序的窗體類名)不會由于應(yīng)用程序運行實例不一樣而改變。
為了使測試腳本能根據(jù)對象的屬性區(qū)分不同的對象,對象的屬性必須是唯一區(qū)別于其它類似的對象并且保持不變。
一般來說,沒有哪些屬性能滿足所有這些要求,所以TC使用屬性的組合來識別對象。例如,默認(rèn)使用進(jìn)程的可執(zhí)行文件名和進(jìn)程的index來定位進(jìn)程;為了定位窗體,則使用窗體的類名、caption、index。換而言之,典型的對象名包括幾部分:
有些對象的名稱(例如,窗口的caption或進(jìn)程的index)會隨著應(yīng)用程序的運行而改變,因此你需要在腳本運行時使用不同的名稱來定位相同的進(jìn)程或窗體。使用Name Mapping技術(shù),你可以重新定義TC默認(rèn)用來定位對象的屬性組合。
對象的尋址定位是按一定的層次關(guān)系進(jìn)行的。例如,你需要對一個窗體進(jìn)行操作,首先要獲取相應(yīng)的進(jìn)程對象;為了對某個控件進(jìn)行操作,首先要獲得包含該控件的窗體對象。可使用Object Browser的對象樹來觀察對象的層次關(guān)系。
識別和定位到對象后,TC就可以通過對象的名字屬性來進(jìn)一步訪問它擁有的所有編程對象,通過這些對象接口來對它進(jìn)行各種操作。
1、進(jìn)程
TC通過process編程對象來與進(jìn)程交互。使用Sys.Process或Sys.WaitProcess方法來獲取進(jìn)程對象。這些方法使用能唯一識別操作系統(tǒng)進(jìn)程的參數(shù):
1>、進(jìn)程對應(yīng)的可執(zhí)行文件名
2>、進(jìn)程實例的Index。有可能相同名稱的應(yīng)用程序會同時有多個進(jìn)程實例運行,在這種情況下,進(jìn)程index可以加以區(qū)分,第一個啟動的進(jìn)程的index是1,第二個是2,如此類推。
例如下面腳本獲取記事本的第二個進(jìn)程實例:
var p : OleVariant;
begin
// Obtains the object that provides scrīpting interface
// to the second instance of Notepad
p := Sys.Process('Notepad', 2);
end;
但是要注意,進(jìn)程的index可能會在腳本的運行過程中改變:如果低序號index的進(jìn)程終止了,那么高序號index的進(jìn)程的index會相應(yīng)地減小,因此進(jìn)程名就改變了。
如果你在使用process時省略了index參數(shù),則TC默認(rèn)使用Index為1的進(jìn)程,例如,Process(“Notepad”)和Process(“NotePad”,1)是指的相同進(jìn)程對象。
2、窗體對象
TC用于識別窗體的原則依賴于被測應(yīng)用程序是Open Application(開放應(yīng)用程序,白盒的)還是non-Open Application(普通的,黑盒的)。
1>、Open Applications
如果被測應(yīng)用程序編譯成Open Applications(開放的應(yīng)用程序),則可以使用TC提供的特殊的方法來訪問對象:WinFormsObject,VBObject,VCLObject。SwingObject等。
2>、Black-Box Applications
TC默認(rèn)使用以下幾個相對穩(wěn)定的窗體屬性來定位黑盒類型的應(yīng)用程序:
l Window class name
l Window caption
l Window index
使用Process.Window,Process.WaitWindow,Window.Window和Window.WaitWindow方法來獲得窗體對象,例如:
var p, w : OleVariant;
begin
p := Sys.Process('winword');
w := p.Window('OpusApp', 'Microsoft Word - *', 1)
end;
3、控件
因為操作系統(tǒng)的每個控件都是一個窗體,所以控件的識別方法與窗體的識別方法基本一致。
4、Web對象
當(dāng)測試Web頁面時,TC使用DOM或Tag對象模型來定位頁面元素,DOM方式是通過Document對象模型來組織頁面對象的層次關(guān)系,而Tag方式是通過HTML的Tag標(biāo)簽來組織層次關(guān)系。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。