新四季網

Windows平臺下基於MSAA的GUI測試驅動方法

2023-09-23 05:40:25

專利名稱:Windows平臺下基於MSAA的GUI測試驅動方法
技術領域:
本發明涉及一種Windows平臺下的GUI測試驅動方法,特別應用了基於MSAA 的GUI操作技術,實現了一個自動化的GUI程序測試驅動系統。
二背景技術:
隨著計算機系統人機接口越來越圖形化,GUI (圖形用戶接口)的應用變得 越來越廣泛。但是,開發GUI交互程序一個重大的挑戰是如何對GUI接口進行測 試的問題。自動化的GUI測試要求測試驅動程序能夠具備一定的判斷能力,能夠 根據當前環境狀況進行判斷,選擇應該執行的操作。
傳統的GUI程序測試,要麼通過僱用大量的測試員進行實際的操作,要麼 使用一些初級的GUI操作工具,盲目地產生輸入流。傳統測試驅動方法要麼耗費 大量的人力資源,要麼抗幹擾的能力很差, 一有擾動就會導致進入不正確的狀態, 最終導致依然需要分配人員值守。
一個優秀的自動GUI測試解決方案,應該能夠對於GUI的表現和事件有一 定的反應能力,能夠根據當前的狀態進行判斷,然後產生相應的輸入。這種方案 應該儘可能少地要求人工幹預。

發明內容
本發明所要解決的技術問題是提供一種具有情景反應能力的GUI測試驅動 系統,其可以減少對具有GUI的軟體的測試過程中的人工幹預,自動完成測試用 例。
本發明所述的基於MSM的GUI測試驅動系統,它包括測試腳本解釋器、環 境感知器和動作執行器。腳本解釋器用於解釋用戶編寫的測試用例腳本,控制環 境感知器識別當前環境以及控制動作執行器產生輸入。該程序執行的步驟如下
d) 讀取測試驅動腳本這個由測試人員根據具體的語言規範把抽象的測試 用例編寫成具體的測試腳本。腳本解釋器讀取腳本文件到內存中;
e) 根據測試腳本進行環境感知腳本解釋器通過環境感知器執行腳本中指 定的感知要求,尋找符合要求的操作點;
f) 執行特定動作如果發現符合需求的操作點,由腳本解釋器控制動作執
行器產生相應的動作。 在上述步驟b)中,環境感知器使用Windows提供的MSAA接口,並按照腳本 中指定的條件搜索當前環境中的對象的IAccessible接口,當找到滿足條件的窗 口時,向腳本返回窗口句柄。
在步驟步驟c)中,動作執行器把輸入焦點設定在特定的窗口對象上,然後調 用Windows的API產生滑鼠或鍵盤輸入。
在編寫測試腳本的時候,至少會用到下面的語句 語句1觀察環境
findtopwnd "標題〃 |
childwnd 〃名字〃 "角色〃 〃類〃 I anywnd 〃名字〃 〃角色〃 〃類〃 | topwnd表示最頂層的窗口,通常表示一個應用程式。只要一個標題參數; childwnd 表示在當前窗口環境下,查找符合條件的子窗口的IAccessible,要 三個參數;anywnd由於不好確定父窗口是誰,所以從桌面開始查找子窗口的 IAccessible接口,要三個參數 語句2動作
do kbi叩ut 〃字符串〃 1
(click|rclick|dbclick) x y 其中kbi叩ut表示產生鍵盤輸入, 〃字符串〃是要輸入的串。下面click表示 產生滑鼠左鍵單擊操作,rclick表示產生滑鼠右鍵單擊操作,dbclick表示產生 滑鼠左鍵雙擊操作,最後x y表示點擊操作的坐標這個坐標是基於上一個find 命令找到的窗口的左上角。本發明通過腳本解釋器控制執行流程,通過環境感知 器獲得符合條件的環境位置,通過動作執行器產生相應的輸入。通過根據需要編 寫的測試腳本可以對加載到系統上的程序進行自動化的操作。
本發明與現有的技術相比,其顯著優點是程序對於被操作的對象有識別和 判斷能力。所以在測試的過程中只是需要很少的人工幹預,大大提高了勞動生產 率。


圖l顯示了本發明的系統結構。
圖2—1, 2—2, 2 — 3分別顯示了三個主要工作流程。
五具體實施例方式
1、 運行環境
(1) 運行Windows系統的PC機,它們作為程序運行的平臺。
(2) 在PC機器上安裝本程序作為GUI測試驅動系統。
(3) 將被測試軟體裝載到該平臺上。
(4) 安裝Microsoft的Inspect32輔助編寫測試腳本。
(5) 為測試過程編寫測試腳本。
系統結構如圖l所示,它包括腳本解釋器、環境感知器、動作執行器,所述 腳本解釋器解釋由測試程式設計師編寫的測試腳本程序,通過使用環境感知器的接口
在運行環境中對象,當滿足條件的對象出現的時候,腳本解釋器又會使用動作執 行器產生鍵盤或滑鼠的輸入。
2、 場景圖2 — 1,顯示了本系統的腳本解釋器的工作流程。解釋程序首先讀入指定的 測試驅動腳本,然後開始逐句解釋腳本。如果當前的語句是一個感知環境的腳本 語句(即尋找符合條件的窗口對象,並返回窗口對象的句柄),那麼就調用環境 感知器執行相應的判斷。如果是一個執行動作語句(通常跟在一系列環境感知語 句之後),那就調用腳本執行器執行相應的腳本產生輸入動作。
在安裝好的Windows和本系統的PC機上裝載要測試的應用程式。然後,為 程序編寫測試腳本。接著在控制臺下輸入黑體字部分運行
C:\〉 PCompiler腳本文件名
然後,腳本解釋程序會執行測試腳本,尋找符合條件的窗口對象,然後產生 相應的操作。
尋找符合條件的窗口對象的流程如圖2-2所示。Windows的窗口系統是以桌 面為根組織成樹狀結構。尋找符合條件的窗口對象是從桌面開始搜索,獲得當前 窗口的Accessible接口,通過這個Accessible接口的方法得到窗口的名字 (IAccessible::get一accName )、 角色 (IAccessible::get—accRole )、 類 (WindowFromAccessibleObject和GetObjectClass)等信息,信息符合判斷條 件,則返回當前窗口的句柄,否則遞歸搜索當前窗口的所有子窗口 Accessible: :get—accChild和IEnumVARIANT接口)進行判斷,直到找到要找 的窗口或者窮舉完所有的窗口。
執行相應操作的流程如圖2-3所示。首先判斷這個語句要執行的是鍵盤輸入 還是滑鼠輸入。如果是鍵盤輸入,讀取輸入字符串,逐個輸入字符串所描述的所 有按鍵事件。如果是滑鼠輸入,讀取滑鼠輸入的類型(左鍵單擊、右鍵單擊、雙 擊),然後輸入相應的滑鼠事件。
3、技術描述
(1) MSAA:
窗口元素的識別使用了 Microsoft Active Accessibility技術。這種技術 通過對Windows平臺下面的窗口程序暴露統一的COM接口 。使得程式設計師可以通過 此接口可以識別和操作Windows上的標準界面元素。
這裡窗口有三個重要的屬性Name、 Class、 Role。 Name表示窗口的名字, Class表示窗口在系統中註冊的類名,Role表示開發人員賦予窗口的角色。有了 這三個屬性以及窗口的父窗口信息,就能夠唯一確定一個窗口 。
(2) Windows消息機制
在產生動作上面,使用Windows的消息機制,在Windows的桌面環境下產生 鍵盤或滑鼠輸入。這個過程是通過Windows的API Sendl叩ut實現。
權利要求
1、一種Windows平臺下基於MSAA的GUI測試驅動方法,其特徵是它包括測試腳本解釋器、環境感知器和動作執行器,腳本解釋器用於解釋用戶編寫的測試用例腳本,控制環境感知器識別當前環境以及控制動作執行器產生輸入;其步驟如下a)由腳本解釋器讀取腳本文件至內存中;b)根據測試腳本進行環境感知,腳本解釋器通過環境感知器執行腳本中指定的感知要求,尋找符合要求的操作點;c)如果發現符合需求的操作點,由腳本解釋器控制動作執行器產生相應的動作。
2、 根據權利要求1所述的Windows平臺下基於MSAA的GUI測試驅動方法, 其特徵是在步驟b)中,環境感知器使用Windows提供的MSAA接口,並按照 腳本中指定的條件搜索當前環境中的對象的IAccessible接口,當找到滿足條 件的窗口時,向腳本返回窗口句柄。
3、 根據權利要求1或2所述的Windows平臺下基於MSAA的GUI測試驅動 方法,其特徵是在步驟c)中,動作執行器把輸入焦點設定在特定的窗口對象 上,然後調用Windows的API產生滑鼠或鍵盤輸入。.
4、根據權利要求1或2所述的Windows平臺下基於MSAA的GUI測試驅動 方法,其特徵是需要使用下面的語言機制語句1觀察環境findtopwnd 〃標題〃 |childwnd "名字""角色""類〃 I anywnd "名字""角色""類"l t叩wnd表示最頂層的窗口,通常表示一個應用程式。只要一個標題參 數;childwnd表示在當前窗口環境下,査找符合條件的子窗口的 IAccessible,要三個參數;anywid由於不好確定父窗口是誰,所以從桌面開 始査找子窗口的IAccessible接口,要三個參數 語句2動作do kbinput "字符串"|(click|rclick|dbclick) x y 其中kbi叩ut表示產生鍵盤輸入, 〃字符串"是要輸入的串。下面click表示產生滑鼠左鍵單擊操作,rclick表示產生滑鼠右鍵單擊操作,dbclick表示 產生滑鼠左鍵雙擊操作,最後x y表示點擊操作的坐標這個坐標是基於上一個 find命令找到的窗口的左上角。
全文摘要
本發明公開了一種Windows平臺下基於MSAA的GUI測試驅動方法。其步驟是由腳本解釋器讀取腳本文件至內存中;再根據測試腳本進行環境感知,腳本解釋器通過環境感知器執行腳本中指定的感知要求,尋找符合要求的操作點,環境感知器使用Windows提供的MSAA接口,並按照腳本中指定條件搜索當前環境中的對象的IAccessible接口,當找到滿足條件的窗口時,向腳本返回窗口句柄;如發現符合需求的操作點,由腳本解釋器控制動作執行器產生相應的動作,動作執行器把輸入焦點設定在特定窗口對象上,然後產生滑鼠或鍵盤輸入。本發明使程序對於被操作對象有識別和判斷能力,測試過程中減少了人工幹預,提高了勞動生產率。
文檔編號G06F11/36GK101105768SQ20071002537
公開日2008年1月16日 申請日期2007年7月26日 優先權日2007年7月26日
發明者建 呂, 春 曹, 馬曉星 申請人:南京大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀