新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 一種GUI自動化測試框架方案

        一種GUI自動化測試框架方案

        作者: 時間:2011-08-28 來源:網絡 收藏

        目前,在中,很多軟件體系都采用錄制回放技術。這種技術要求者通過鼠標和鍵盤的點擊進行工作,腳本記錄事件,然后以的方式進行回放。記錄下來的測試腳本必須經過編輯和調試之后插入驗證和檢查點。產生的腳本通常是硬編碼,需要測試人員對腳本進行編輯以及參數化操作。同時,界面元素屬性的任何變化都會影響腳本的運行,有時甚至需要重新錄制腳本。

        本文引用地址:http://www.104case.com/article/155841.htm

          1 .NET中的反射機制

          通常,應用程序(包括桌面程序和Web應用)都由一些基本的界面控件組成,所有的軟件指令都是通過控件以事件或消息的形式傳遞給后臺處理。測試的本質是對中的控件元素提供編程手段[2]。在基于GUI對象識別和控制的自動化測試工具中,過去一直依賴于Windows API函數的調用。而隨著新的編程語言和平臺的出現,涌現了很多新的語言特性,這些語言特性可用于自動化測試工具的設計,例如反射機制就是其中一項技術。

          反射(Reflection)是.NET中的重要機制,通過反射可以在運行時獲得.NET中每一個類型(包括類、結構、委托、接口和枚舉等)的成員,包括方法、屬性、事件及構造函數等,還可以獲得每個成員的名稱、限定符和參數等。如果獲得了構造函數的信息,即可直接創建對象,即使這個對象的類型在編譯時還不知道。程序集包含模塊,而模塊包含類型,類型又包含成員,反射則提供了封裝程序集、模塊和類型的對象。可以使用反射動態地創建類型的實例,將類型綁定到現有對象或從現有對象中獲取類型,然后調用類型的方法或訪問其字段和屬性[3]。

          2 的整體設計

          自動化測試的搭建基本上占了整個自動化測試工作量的40%,是自動化測試實施的一個重要組成部分。軟件自動化從本質看是一系列的策略思想、規范文件和代碼的集合。本文提出改進的輕量級的GUI自動化測試框架,該框架可以幫助用戶避免當前測試工具出現的缺陷。此框架將具備以下五個特性:GUI控件自動搜索、自動生成和執行測試腳本、基于數據驅動的原則、測試的自動驗證、使用編程語言開發。框架的整體設計如圖1所示。從圖1可以看出,該框架讓測試人員從繁重的錄制工作中解放出來,將更多的時間和精力集中在測試用例的設計中。

          

          3 框架具體開發

          3.1 加載被測試程序

          為了測試GUI應用程序,必須在測試工具中運行被測程序使兩個程序交互。使用Assembly定義和加載程序集,加載在程序集清單中列出模塊,并從此程序集中查找類型,創建該類型的實例。為了使這兩個應用程序實現交互,必須通過多線程機制實現。下面是通過反射加載被測程序的核心代碼[4]:

          Assembly asm=Assembly.LoadFrom(path);

          Type t1=asm.GetType(formName);

          testForm=(Form)asmCreateInstance(t1.FullName);

          ParameterizedThreadStart pt=new ParameterizedThreadStart(AppRun);

          Thread thread=new Thread(pt);

          thread.Start(testForm);

          private void AppRun(Form theForm)

          {

          Application.Run(theForm);

          }

          


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西林县| 天水市| 云和县| 丽江市| 慈利县| 张家界市| 夏津县| 平顺县| 盐边县| 孝义市| 冕宁县| 铁岭市| 奉化市| 安化县| 田阳县| 隆子县| 汉阴县| 红桥区| 广西| 明星| 凤翔县| 呈贡县| 乐陵市| 岢岚县| 巴中市| 井冈山市| 信丰县| 寿宁县| 麦盖提县| 柳州市| 清流县| 南和县| 沙洋县| 兴安盟| 隆子县| 云林县| 衢州市| 贺州市| 宜兰县| 正镶白旗| 枣庄市|