国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WPF的UI自動化測試系統(tǒng)

2020-07-22 09:54:57邱長云
電腦知識與技術 2020年11期

邱長云

摘要:如今,軟件應用范圍變得越來越廣泛,軟件結構也變得更加的復雜。在這種情況下,要確保軟件產(chǎn)品的質(zhì)量,就必須要對軟件進行測試。自動化測試因為有著高效率、低成本的優(yōu)勢得到了推廣。該文主要針對基于WPF的UI自動化測試系統(tǒng)進行介紹。

關鍵詞:WPF;UI;自動化測試系統(tǒng)

中圖分類號:TP311 文獻標識碼:A

隨著計算機技術的迅速發(fā)展,軟件的應用范圍越來越廣泛,軟件結構也越來越復雜。為了保證軟件產(chǎn)品的質(zhì)量,軟件測試特別是自動化測試越來越受到人們的重視。自動化測試的最大優(yōu)勢就是高效率、低成本,但是自動化測試如果沒有經(jīng)過良好設計,不但耗資大,而且后續(xù)還有大量的維護工作。而設計良好的自動化測試框架不但維護成本低。而且效率很高。因此對自動化測試框架的研究具有很重要的意義。

目前市面上免費和商業(yè)的自動化測試系統(tǒng)對WPF應用程序的支持存在一些難以解決的問題以及使用不方便的問題,比如等待時間難以判斷,錄制過程不可靠以及操作繁雜,執(zhí)行過程中性能低等問題。本文試圖對其中一些具體問題提出具體的解決方案。

1對比分析

對于支持WPF應用程序的自動化測試系統(tǒng),我調(diào)研了商業(yè)收費的QTP和免費的CodedUI這兩套UI自動化測試系統(tǒng),發(fā)現(xiàn)它們普遍存在部分控件無法識別,開發(fā)和維護用例成本較高等問題,為了解決這些問題,我對現(xiàn)有的基于WPF的自動化測試技術進行研究,結合實際的測試項目,探索出了一套全新的基于WPF的接口UI自動化測試框架的方案設計和實現(xiàn)。

可以看出無論是QTP和Coded UI,在WPF應用程序的自動化測試方面對于一些基礎功能都有一定的支持,QTP相對而言走的更遠一些。但是兩者都存在一些缺陷,QTP存在著一些致命的情況,比如運行過程中不穩(wěn)定,錄制過程中不穩(wěn)定等;Coded UI存在運行不穩(wěn)定,發(fā)現(xiàn)的問題調(diào)試代價高等缺陷。

2功能設計

而我們自主研發(fā)一套基于WPF的接口UI自動化測試系統(tǒng),需要克服它們的缺陷,同時需要具備如下功能:

1)初始化自動化測試環(huán)境。

2)生成測試用例,錄制參數(shù),添加檢查點。

3)調(diào)度執(zhí)行自動化測試用例。

4)實時監(jiān)測和記錄當前自動化測試用例執(zhí)行情況和整體狀態(tài)。

5)輸出日志,截屏信息,運行結果,清理執(zhí)行現(xiàn)場緩存文件。

6)設置,包括超時時間,截屏信息輸出路徑等。

7)測試用例備份和恢復,上傳和下載。

3總體架構設計

框架開發(fā)語言使用C#,界面使用WPF,數(shù)據(jù)庫選型使用免費的MySql,同時為了提高開發(fā)效率,也為了后期能夠方便切換數(shù)據(jù)庫,使用了.NET提供的EntityFramework來進行數(shù)據(jù)庫的接口的封裝。

這些功能中,“調(diào)度執(zhí)行自動化測試用例”是屬于這個系統(tǒng)的最關鍵的功能。

3.1系統(tǒng)架構

Containee是一個可執(zhí)行程序進程,CaseTool,Driver,Appl,App2等模塊最后最終都在Containee進程內(nèi)執(zhí)行。Containee之間的交互可以通過Socket通信來完成。

3.2測試用例管理模塊

CaseTool是測試用例管理工具,其中的功能有生成測試用例,添加檢查點,設置超時時間,截屏信息輸出路徑等,測試用例備份和恢復,上傳和下載。其中如何生成測試用例是比較重要的功能。這個可以借鑒當前QTP或者CodedUI的實現(xiàn)然后改進。通過分析基于CodedUI錄制的用例可以發(fā)現(xiàn),CodedUI記錄的是用戶每次操作的絕對坐標值,所以可以改進的一個方向是記錄對于當前操作控件的相對坐標值。

苏尼特右旗| 湘乡市| 鹿邑县| 都昌县| 卢湾区| 民乐县| 桂东县| 新宾| 江源县| 电白县| 曲水县| 五家渠市| 舟山市| 雅安市| 阿瓦提县| 伊金霍洛旗| 那坡县| 蓬溪县| 志丹县| 视频| 清镇市| 衡东县| 芮城县| 盐亭县| 林口县| 镇安县| 鹿邑县| 民丰县| 锦州市| 宁乡县| 凌源市| 湄潭县| 台安县| 巴青县| 漠河县| 汶川县| 环江| 新绛县| 昌图县| 密云县| 清河县|