TestComplete識別對象原理

對測試對象的識別能力就成為一個GUI測試工具的最基本功能了。本文介紹TestComplete是如何識別進程、窗體和控件的。

馬村網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)

命名概念:

 為了在腳本中記錄識別出來的測試對象,TC需要使用到這些對象的屬性。每個對象都有很多的屬性,像“class name”,“text”,“enabled”等。你可以在Object Browser窗口中看到有效的對象屬性,或者使用Object Properties窗口來查看。

 有些對象屬性會在應用程序的運行過程中發(fā)生改變(例如edit box對象的text屬性),而有些(例如窗體的handle)則是保持不變但是在兩個不同的應用程序實例運行時會不一樣。某些屬性(例如某些應用程序的窗體類名)不會由于應用程序運行實例不一樣而改變。

 為了使測試腳本能根據(jù)對象的屬性區(qū)分不同的對象,對象的屬性必須是唯一區(qū)別于其它類似的對象并且保持不變。

 一般來說,沒有哪些屬性能滿足所有這些要求,所以TC使用屬性的組合來識別對象。例如,默認使用進程的可執(zhí)行文件名和進程的index來定位進程;為了定位窗體,則使用窗體的類名、caption、index。換而言之,典型的對象名包括幾部分:

TestComplete識別對象原理

 有些對象的名稱(例如,窗口的caption或進程的index)會隨著應用程序的運行而改變,因此你需要在腳本運行時使用不同的名稱來定位相同的進程或窗體。使用Name Mapping技術,你可以重新定義TC默認用來定位對象的屬性組合。

 對象的尋址定位是按一定的層次關系進行的。例如,你需要對一個窗體進行操作,首先要獲取相應的進程對象;為了對某個控件進行操作,首先要獲得包含該控件的窗體對象。可使用Object Browser的對象樹來觀察對象的層次關系。

 識別和定位到對象后,TC就可以通過對象的名字屬性來進一步訪問它擁有的所有編程對象,通過這些對象接口來對它進行各種操作。

 1、進程

 TC通過process編程對象來與進程交互。使用Sys.Process或Sys.WaitProcess方法來獲取進程對象。這些方法使用能唯一識別操作系統(tǒng)進程的參數(shù):

 1>、進程對應的可執(zhí)行文件名

 2>、進程實例的Index。有可能相同名稱的應用程序會同時有多個進程實例運行,在這種情況下,進程index可以加以區(qū)分,第一個啟動的進程的index是1,第二個是2,如此類推。

 例如下面腳本獲取記事本的第二個進程實例:

 var  p : OleVariant;
  begin
   // Obtains the object that provides scrīpting interface
   // to the second instance of Notepad
   p := Sys.Process('Notepad', 2);
  end;

 但是要注意,進程的index可能會在腳本的運行過程中改變:如果低序號index的進程終止了,那么高序號index的進程的index會相應地減小,因此進程名就改變了。

 如果你在使用process時省略了index參數(shù),則TC默認使用Index為1的進程,例如,Process(“Notepad”)和Process(“NotePad”,1)是指的相同進程對象。

 2、窗體對象

 TC用于識別窗體的原則依賴于被測應用程序是Open Application(開放應用程序,白盒的)還是non-Open Application(普通的,黑盒的)。

 1>、Open Applications

 如果被測應用程序編譯成Open Applications(開放的應用程序),則可以使用TC提供的特殊的方法來訪問對象:WinFormsObject,VBObject,VCLObject。SwingObject等。

 2>、Black-Box Applications

TC默認使用以下幾個相對穩(wěn)定的窗體屬性來定位黑盒類型的應用程序:

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對象

 當測試Web頁面時,TC使用DOM或Tag對象模型來定位頁面元素,DOM方式是通過Document對象模型來組織頁面對象的層次關系,而Tag方式是通過HTML的Tag標簽來組織層次關系。

新聞標題:TestComplete識別對象原理
分享地址:http://muchs.cn/article8/isjgip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、小程序開發(fā)、微信公眾號做網(wǎng)站、靜態(tài)網(wǎng)站、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設