QTP 錄制 回放 原理
QTP 錄制 回放 原理自動化測試可以基于代碼,例如junit,cppunit,可以基于協(xié)議,例如loadrunner,QTP是基于GUI界面的自動化測試工具。junit和cppunit屬于單元測試,loadrunner和QTP屬于系統(tǒng)測試。loadrunner用于系統(tǒng)的性能測試,QTP用于系統(tǒng)的功能測試。QTP是一款基于界面的功能自動化測試工具。
LR錄制的是協(xié)議和數(shù)據(jù)包,QTP錄制的是鼠標(biāo)和鍵盤的消息。QTP錄制回放時(shí)基于windows操作系統(tǒng)的消息機(jī)制。QTP在錄制時(shí)監(jiān)聽?wèi)?yīng)用程序的消息,監(jiān)聽到之后把消息放到容器里,而另外的監(jiān)聽程序則從容器中取出容器中的消息,并調(diào)用對用的API處理函數(shù)。QTP截取的是用戶對應(yīng)用程序的操作,即錄制的是消息。對于C/S應(yīng)用程序,在回放時(shí)QTP根據(jù)對象的句柄(handle)和腳本內(nèi)容,調(diào)用API函數(shù);對于B/S應(yīng)用程序,在回放時(shí)基于DOM(document object model)來解析。
RO(Runtime Object)和TO(Test Object)。RO是指GUI界面上的控件即對象本身,TO是QTP對象庫里的對象即在錄制時(shí)添加到對象庫的對象。RO是應(yīng)用程序上實(shí)際的對象,因此擁有對象的所有的屬性和方法;TO是QTP在錄制時(shí)獲取的應(yīng)用程序的對象的,而錄制時(shí) QTP只保存了應(yīng)用程序一部分常用的,能夠在回放時(shí)識別應(yīng)用程序上對象的一部分屬性,因此TO對象擁有應(yīng)用程序上對象的一部分屬性。另外QTP對象庫里保存的是TO對象。不過QTP可以使用Object Spy功能獲取應(yīng)用程序的所有屬性值,或者可以通過TO對象的getROproperty()和getROpropertys()獲取應(yīng)用程序的所有屬性值(呵呵,所有對象都沒有setROproperty()方法)。使用TO對象的setTOproperty()和getTOproperty()可以操作對象庫的TO對象。
QTP的錄制原理:根據(jù)用戶在應(yīng)用程序界面上的操作,QTP采用Object Identification Tools工具對被操作的對象進(jìn)行識別,采用反編譯的原理看其屬于哪個(gè)插件類,從而進(jìn)一步識別其屬于什么控件類,然后QTP把對應(yīng)的控件類實(shí)例化一個(gè)對象,并把獲取的應(yīng)用程序的一部分屬性值(足以識別對象?)賦給新建的對象,并添加到對象庫里即TO對象,而把用戶對對象的操作添加到腳本里面。
QTP的回放原理:QTP 根據(jù)腳本中記錄下來的對象操作的順序進(jìn)行回放。QTP從腳本中讀取到該對象,并根據(jù)對象的層次和名稱到對象庫中尋找相同名稱的測試庫對象,在測試庫找到相應(yīng)的對象,獲得對象的屬性,根據(jù)對象庫中對象的屬性,在運(yùn)行的應(yīng)用程序中進(jìn)行匹配,尋找運(yùn)行時(shí)對象,找到后根據(jù)腳本中記錄的對該對象執(zhí)行的動作和參數(shù)值。
posted on 2012-05-23 16:42 順其自然EVO 閱讀(835) 評論(0) 編輯 收藏 所屬分類: qtp