<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 一種GUI自動(dòng)化測(cè)試框架方案

          一種GUI自動(dòng)化測(cè)試框架方案

          作者: 時(shí)間:2011-08-28 來(lái)源:網(wǎng)絡(luò) 收藏

          目前,在中,很多軟件體系都采用錄制回放技術(shù)。這種技術(shù)要求者通過(guò)鼠標(biāo)和鍵盤(pán)的點(diǎn)擊進(jìn)行工作,腳本記錄事件,然后以的方式進(jìn)行回放。記錄下來(lái)的測(cè)試腳本必須經(jīng)過(guò)編輯和調(diào)試之后插入驗(yàn)證和檢查點(diǎn)。產(chǎn)生的腳本通常是硬編碼,需要測(cè)試人員對(duì)腳本進(jìn)行編輯以及參數(shù)化操作。同時(shí),界面元素屬性的任何變化都會(huì)影響腳本的運(yùn)行,有時(shí)甚至需要重新錄制腳本。

          本文引用地址:http://www.ex-cimer.com/article/155841.htm

            1 .NET中的反射機(jī)制

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

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

            2 的整體設(shè)計(jì)

            自動(dòng)化測(cè)試的搭建基本上占了整個(gè)自動(dòng)化測(cè)試工作量的40%,是自動(dòng)化測(cè)試實(shí)施的一個(gè)重要組成部分。軟件自動(dòng)化從本質(zhì)看是一系列的策略思想、規(guī)范文件和代碼的集合。本文提出改進(jìn)的輕量級(jí)的GUI自動(dòng)化測(cè)試框架,該框架可以幫助用戶避免當(dāng)前測(cè)試工具出現(xiàn)的缺陷。此框架將具備以下五個(gè)特性:GUI控件自動(dòng)搜索、自動(dòng)生成和執(zhí)行測(cè)試腳本、基于數(shù)據(jù)驅(qū)動(dòng)的原則、測(cè)試的自動(dòng)驗(yàn)證、使用編程語(yǔ)言開(kāi)發(fā)??蚣艿恼w設(shè)計(jì)如圖1所示。從圖1可以看出,該框架讓測(cè)試人員從繁重的錄制工作中解放出來(lái),將更多的時(shí)間和精力集中在測(cè)試用例的設(shè)計(jì)中。

            

            3 框架具體開(kāi)發(fā)

            3.1 加載被測(cè)試程序

            為了測(cè)試GUI應(yīng)用程序,必須在測(cè)試工具中運(yùn)行被測(cè)程序使兩個(gè)程序交互。使用Assembly定義和加載程序集,加載在程序集清單中列出模塊,并從此程序集中查找類型,創(chuàng)建該類型的實(shí)例。為了使這兩個(gè)應(yīng)用程序?qū)崿F(xiàn)交互,必須通過(guò)多線程機(jī)制實(shí)現(xiàn)。下面是通過(guò)反射加載被測(cè)程序的核心代碼[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);

            }

            


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();