基于.NET平臺GUI自動化測試框架的設(shè)計

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

1 .NET中的反射機制

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

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

2 框架的整體設(shè)計

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

3 框架具體開發(fā)

3.1 加載被測試程序

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

 

作者:段 瑩 郭利剛   來源:21IC電子網(wǎng)
微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息