亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        輕量級接口自動化測試框架設(shè)計(jì)與實(shí)踐

        2020-01-14 06:03:28
        關(guān)鍵詞:測試用例測試數(shù)據(jù)測試方法

        孫 立 哲

        (公安部第三研究所eID事業(yè)部 上海 201204)

        0 引 言

        隨著現(xiàn)代軟件業(yè)競爭日趨激烈,軟件系統(tǒng)更新頻繁,軟件測試周期不斷縮短。在這種情況下,自動化測試[1]作為能有效提高測試效率的一種手段顯得尤為重要,而自動化測試框架在自動化測試實(shí)施中起著關(guān)鍵作用。某后端服務(wù)產(chǎn)品接口多,接口內(nèi)部處理邏輯復(fù)雜且均支持十幾套不同的測試數(shù)據(jù),多版本迭代測試時需執(zhí)行的測試用例數(shù)多達(dá)上萬條,以手動測試方式難以滿足短時間版本頻繁迭代的測試需求。為了對該產(chǎn)品實(shí)現(xiàn)自動化測試,本文基于面向?qū)ο蠹夹g(shù)[2]、XML文檔設(shè)計(jì)與DOM開發(fā)技術(shù)[3]、HTML文檔設(shè)計(jì)與CSS和JS開發(fā)技術(shù)[4],借鑒Junit的分層思路[5-6],設(shè)計(jì)了一套實(shí)用性較強(qiáng)的輕量級接口自動化測試框架[7]。該框架具有易于擴(kuò)展、便于維護(hù)、結(jié)構(gòu)清晰等特點(diǎn),同時具有自動生成內(nèi)含測試集描述、測試用例描述、接口請求參數(shù)和返回?cái)?shù)據(jù)以及測試結(jié)果等詳細(xì)信息的測試結(jié)果數(shù)據(jù)文件的功能,并支持將測試結(jié)果數(shù)據(jù)以Web頁面的形式進(jìn)行個性化展示與瀏覽。通過在實(shí)際產(chǎn)品中進(jìn)行自動化測試實(shí)踐,展示了其能在短時間內(nèi)高效、準(zhǔn)確地完成多個版本、上萬條測試用例的快速執(zhí)行,極大地提高了測試效率,有效地解決因版本短時間頻繁迭代所帶來的測試壓力。同時自動生成的測試結(jié)果信息詳盡,有利于對測試失敗的情況快速地作原因分析。

        1 整體設(shè)計(jì)

        本文設(shè)計(jì)的自動化測試框架主要包含兩部分。一部分是基于面向?qū)ο蠹夹g(shù)和XML文檔DOM開發(fā)等技術(shù)的自動化測試執(zhí)行模塊,主要實(shí)現(xiàn)對測試數(shù)據(jù)批量配置、測試腳本設(shè)計(jì)、測試腳本批量執(zhí)行以及自動生成測試結(jié)果數(shù)據(jù)文件。另一部分是集XML技術(shù)、HTML設(shè)計(jì)、CSS技術(shù)和JS開發(fā)技術(shù)的測試結(jié)果統(tǒng)計(jì)分析與展示模塊,主要實(shí)現(xiàn)對測試結(jié)果數(shù)據(jù)文件內(nèi)數(shù)據(jù)的統(tǒng)計(jì)分析并以Web頁面的形式作個性化展示。

        2 具體實(shí)現(xiàn)

        2.1 自動化測試執(zhí)行模塊

        自動化測試執(zhí)行模塊基于Eclipse開發(fā)平臺[8]采用Java編程語言來實(shí)現(xiàn)。自動化測試執(zhí)行模塊由測試基類、測試用例集類、測試執(zhí)行類、測試數(shù)據(jù)集類、單測試數(shù)據(jù)類、測試輔助類和測試結(jié)果類構(gòu)成。測試用例集類可以有多個,一個測試用例集類對應(yīng)一個接口。自動化測試執(zhí)行模塊類圖如圖1所示。

        圖1 自動化測試執(zhí)行模塊類圖

        測試基類是抽象類,包含類構(gòu)造方法、執(zhí)行所有測試方法、執(zhí)行正向測試方法、執(zhí)行反向測試方法、正向測試方法、反向測試方法。其中,正向測試方法和反向測試方法是抽象方法。

        測試數(shù)據(jù)集類內(nèi)含一個Map對象屬性和一個類構(gòu)造方法。Map對象屬性用于存儲各測試數(shù)據(jù)集,類構(gòu)造方法用于對Map對象初始化,即用于配置各測試數(shù)據(jù)。

        單測試數(shù)據(jù)類內(nèi)含各數(shù)據(jù)項(xiàng)屬性和一個類構(gòu)造方法。各數(shù)據(jù)項(xiàng)為接口調(diào)用前請求參數(shù)數(shù)據(jù)或用于組裝請求參數(shù)的可配數(shù)據(jù)項(xiàng),類構(gòu)造方法用于對各數(shù)據(jù)項(xiàng)初始化。

        測試結(jié)果類內(nèi)含文件名配置項(xiàng)屬性、XML文檔對象屬性、XML文檔根元素屬性、XML測試集元素屬性、測試集標(biāo)識屬性、類構(gòu)造方法、初始化方法、添加測試集方法、添加測試用例方法和寫數(shù)據(jù)到文件方法。文件名配置項(xiàng)用于設(shè)定生成的結(jié)果文件所在目錄及文件名。XML文檔對象用于存儲整個文檔數(shù)據(jù)。XML文檔根元素用于存儲所有測試集數(shù)據(jù)。XML測試集元素用于存儲測試用例及其結(jié)果數(shù)據(jù)。測試集標(biāo)識用于存儲測試集唯一標(biāo)識,以接口名作測試集唯一標(biāo)識。初始化方法用于創(chuàng)建XML文檔并添加根元素。添加測試集方法用于將測試集添加到根元素。添加測試用例方法用于將測試用例及結(jié)果添加到測試集。寫數(shù)據(jù)到文檔方法用于將XML文檔對象中所有數(shù)據(jù)寫入XML文檔。對應(yīng)的測試結(jié)果XML文檔DOM樹結(jié)構(gòu)設(shè)計(jì)如圖2所示。

        圖2 測試結(jié)果XML文檔DOM樹

        測試用例集類繼承測試基類,包含測試數(shù)據(jù)集類對象屬性、單測試數(shù)據(jù)類對象屬性、測試用例標(biāo)識屬性、類構(gòu)造方法、正向測試子方法、反向測試子方法,并實(shí)現(xiàn)測試基類的四個抽象方法。正向測試方法中主要完成實(shí)例化測試數(shù)據(jù)集類對象,根據(jù)接口支持的測試數(shù)據(jù)類型提取數(shù)據(jù)用于實(shí)例化單測試數(shù)據(jù)類對象,基于單測試數(shù)據(jù)類對象先后執(zhí)行所有正向測試子方法。反向測試方法中所含操作與正向方法類似,區(qū)別是執(zhí)行所有反向測試子方法。若接口支持測試數(shù)據(jù)集中所有數(shù)據(jù)類型,則循環(huán)提取數(shù)據(jù)并執(zhí)行各子方法。正向測試子方法中包含各正向測試用例腳本,反向測試子方法中包含各反向測試用例腳本。根據(jù)接口支持的業(yè)務(wù)模塊分類情況,可以設(shè)定一個或多個子方法,便于后期腳本維護(hù)。每個測試用例腳本對應(yīng)一次接口調(diào)用。單個測試用例中包含初始化測試用例標(biāo)識、組裝接口請求數(shù)據(jù)、解析接口返回?cái)?shù)據(jù)、檢查接口返回?cái)?shù)據(jù)正確性和將用例數(shù)據(jù)寫入測試集。用例數(shù)據(jù)包括測試用例標(biāo)識、接口請求數(shù)據(jù)、接口返回?cái)?shù)據(jù)、用例執(zhí)行成功與否等信息。

        測試輔助類內(nèi)含從數(shù)據(jù)庫讀取數(shù)據(jù)方法、向數(shù)據(jù)庫寫數(shù)據(jù)方法、組裝接口請求數(shù)據(jù)方法、解析接口返回?cái)?shù)據(jù)方法和檢查接口返回?cái)?shù)據(jù)正確性方法以及其他輔助性方法。

        測試執(zhí)行類是整個測試程序的執(zhí)行入口,內(nèi)含測試結(jié)果類對象屬性、主方法、執(zhí)行所有測試方法、執(zhí)行正向測試方法和執(zhí)行反向測試方法。主方法完成對測試結(jié)果對象的初始化,配置測試范圍(0代表執(zhí)行所有測試,1代表執(zhí)行正向測試,2代表執(zhí)行反向測試),執(zhí)行測試結(jié)果對象的初始化方法,根據(jù)測試范圍配置執(zhí)行對應(yīng)測試,執(zhí)行測試結(jié)果對象的寫數(shù)據(jù)到文件方法。執(zhí)行所有測試方法中包含初始化測試結(jié)果對象的測試集標(biāo)識、執(zhí)行測試結(jié)果對象的添加測試集方法、實(shí)例化各測試用例集類對象并分別調(diào)用其執(zhí)行所有測試方法。執(zhí)行正向測試方法、執(zhí)行反向測試方法內(nèi)部處理過程與執(zhí)行所有測試方法類似,區(qū)別是二者分別調(diào)用其執(zhí)行正向測試方法和執(zhí)行反向測試方法。

        自動化測試執(zhí)行模塊各類之間的調(diào)用關(guān)系以及業(yè)務(wù)處理流程如圖3和圖4所示。反向測試方法內(nèi)部處理流程和正向測試方法內(nèi)部處理流程類似,區(qū)別是執(zhí)行測試用例集類的反向測試子方法和生成反向請求數(shù)據(jù)。

        圖3 測試執(zhí)行業(yè)務(wù)總流程圖

        圖4 正向測試方法內(nèi)部業(yè)務(wù)流程圖

        2.2 測試結(jié)果統(tǒng)計(jì)分析與展示模塊

        測試結(jié)果統(tǒng)計(jì)分析與展示模塊由HTML文件、CSS文件、JS文件和XML文件構(gòu)成。XML文件由自動化測試執(zhí)行模塊自動生成,作為統(tǒng)計(jì)分析的數(shù)據(jù)源。HTML文件定義結(jié)果展示主界面整體布局。主界面整體層疊樣式通過CSS文件定義,部分樣式通過JS文件中腳本作動態(tài)更新。CSS文件和JS文件在HTML文件頭部引入。主界面主要由概要區(qū)、結(jié)果匯總區(qū)、結(jié)果細(xì)節(jié)區(qū)構(gòu)成。各區(qū)內(nèi)的部分?jǐn)?shù)據(jù)通過JS腳本動態(tài)更新。概要區(qū)展示測試用例執(zhí)行總數(shù)、用例執(zhí)行成功總數(shù)和用例執(zhí)行失敗總數(shù)。結(jié)果匯總區(qū)展示各測試集名及其下所含測試用例執(zhí)行總數(shù)、用例執(zhí)行成功總數(shù)和用例執(zhí)行失敗總數(shù),其中測試集名為超鏈接。結(jié)果細(xì)節(jié)區(qū)默認(rèn)隱藏,點(diǎn)擊某個測試集名超鏈接后,結(jié)果細(xì)節(jié)區(qū)顯現(xiàn)且顯示該測試集下所有測試用例及其結(jié)果信息。點(diǎn)擊某測試集名超鏈接后的主界面效果如圖5所示。

        圖5 點(diǎn)擊某測試集名超鏈接后的測試結(jié)果主界面

        JS文件中JavaScript腳本主要完成加載XML文件、讀取XML文件數(shù)據(jù)、對全部測試結(jié)果作概要統(tǒng)計(jì)分析、對某個測試集下的測試結(jié)果作統(tǒng)計(jì)分析并將相關(guān)數(shù)據(jù)及其顯示樣式動態(tài)更新到HTML文件。其中,對全部測試結(jié)果作概要統(tǒng)計(jì)分析和對某個測試集下的測試結(jié)果作統(tǒng)計(jì)分析封裝為兩個方法,分別在HTML文件加載時和點(diǎn)擊某個測試集名超鏈接時觸發(fā)調(diào)用。對全部測試結(jié)果作概要統(tǒng)計(jì)分析主要完成概要區(qū)和結(jié)果匯總區(qū)所要展示的各數(shù)據(jù)統(tǒng)計(jì)并動態(tài)更新相應(yīng)數(shù)據(jù)內(nèi)容及個別樣式(如用例執(zhí)行成功總數(shù)綠色字體突出顯示,用例執(zhí)行失敗總數(shù)紅色字體突出顯示)。對某個測試集下的測試結(jié)果作統(tǒng)計(jì)分析主要完成結(jié)果細(xì)節(jié)區(qū)所要展示的各數(shù)據(jù)提取并動態(tài)更新相應(yīng)數(shù)據(jù)及個別樣式(如結(jié)果為Pass時綠色字體突出顯示,F(xiàn)ail紅色字體突出顯示)。

        3 實(shí)際產(chǎn)品應(yīng)用

        某Web后端服務(wù)產(chǎn)品由近三十個接口構(gòu)成,接口請求數(shù)據(jù)組裝時需作加密或簽名處理,接口內(nèi)部業(yè)務(wù)邏輯比較復(fù)雜,部分接口之間存在一定的關(guān)聯(lián)關(guān)系,單套測試數(shù)據(jù)下覆蓋的測試用例總數(shù)為二百多條。按業(yè)務(wù)需求,每個接口均需支持十五套不同的測試數(shù)據(jù)類型,即需要測試每個接口在所有測試數(shù)據(jù)類型下的執(zhí)行情況,因此,單個版本迭代中實(shí)際需要覆蓋的測試用例總數(shù)共計(jì)達(dá)三千多。若進(jìn)行手動測試,以每日完成執(zhí)行三百條用例為例,每一次迭代,測試需一人十日才能完成。如遇產(chǎn)品需短時間緊急上線情況,或版本短時間頻繁迭代時,手動測試則顯得捉襟見肘。自動化測試能夠以更有效、可重復(fù)的自動測試環(huán)境代替繁瑣的手工測試,而且能在更少的時間內(nèi)完成更多的測試工作[9]。因此,引入自動化測試成為提高測試效率的必然手段。

        采用本文的自動化測試框架,針對每個接口開發(fā)對應(yīng)的測試用例集類,配置測試數(shù)據(jù)集,在測試執(zhí)行類中實(shí)例化測試用例集類并配置執(zhí)行所有測試用例,進(jìn)行自動化測試。自動化測試執(zhí)行以及結(jié)果統(tǒng)計(jì)分析等總共耗時僅為三個小時。與手動測試相比,自動化測試耗時極少,在測試效率上有著顯著優(yōu)勢。測試結(jié)果實(shí)例如圖6所示。

        圖6 接口自動化測試結(jié)果實(shí)例效果圖

        4 結(jié) 語

        針對某后端服務(wù)產(chǎn)品接口多,功能復(fù)雜,多版本迭代時測試用例覆蓋多達(dá)上萬條,以手動測試無法滿足測試需求的情況,本文基于面向?qū)ο蠹夹g(shù)、XML文檔DOM開發(fā)技術(shù)以及HTML和JS等Web頁面開發(fā)技術(shù),采用Java編程語言,設(shè)計(jì)并實(shí)現(xiàn)了一套比較有實(shí)用性的輕量級接口自動化測試框架。該框架集數(shù)據(jù)配置、測試用例分類設(shè)計(jì)、測試批量執(zhí)行、結(jié)果自動歸類收集以及統(tǒng)計(jì)分析和個性化展示為一體,支持全用例測試、正向測試和反向測試三種測試范圍配置;支持測試數(shù)據(jù)批量配置以及單數(shù)據(jù)下測試執(zhí)行和批量數(shù)據(jù)下測試執(zhí)行;支持自動生成內(nèi)含測試集描述、測試用例描述、接口請求參數(shù)和接口返回參數(shù)以及測試結(jié)果等詳細(xì)信息的測試結(jié)果數(shù)據(jù)文件;支持將測試結(jié)果在HTML文件借由JavaScript腳本以約定的CSS樣式進(jìn)行個性化展示與瀏覽。測試結(jié)果個性化展示頁面中概要信息簡單明了,各測試集匯總信息分類清晰,測試集下各用例信息及對應(yīng)結(jié)果詳盡,整個測試結(jié)果一目了然,便于瀏覽??蚣鼙旧砭哂辛己玫目蓴U(kuò)展性和可移植性。數(shù)據(jù)配置可擴(kuò)展設(shè)計(jì)為由XML文檔分類存儲各測試數(shù)據(jù)并由測試數(shù)據(jù)集類構(gòu)造方法讀取XML文檔加載各測試數(shù)據(jù),適于大數(shù)據(jù)量測試情況。測試用例集類 具有相對獨(dú)立性,可在基本不對整個框架作改動的基 礎(chǔ)上靈活擴(kuò)增。該框架的設(shè)計(jì)思路可移植到其他支持 面向?qū)ο蠹夹g(shù)和XML 文檔DOM 開發(fā)技術(shù)的開發(fā)語言 平臺,適用不同語言平臺下的接口測試。

        猜你喜歡
        測試用例測試數(shù)據(jù)測試方法
        基于泊松對相關(guān)的偽隨機(jī)數(shù)發(fā)生器的統(tǒng)計(jì)測試方法
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
        基于云計(jì)算的軟件自動化測試方法
        電子制作(2019年16期)2019-09-27 09:34:56
        DLD-100C型雷達(dá)測試方法和應(yīng)用
        電子制作(2019年15期)2019-08-27 01:12:02
        測試數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        基于混合遺傳算法的回歸測試用例集最小化研究
        基于自適應(yīng)粒子群優(yōu)化算法的測試數(shù)據(jù)擴(kuò)增方法
        對改良的三種最小抑菌濃度測試方法的探討
        空間co-location挖掘模式在學(xué)生體能測試數(shù)據(jù)中的應(yīng)用
        體育科技(2016年2期)2016-02-28 17:06:21
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
        最新日本久久中文字幕| 欧美日韩视频无码一区二区三| 久久久久久久99精品国产片| 亚洲AV秘 无码一区二区三区| 亚洲中文字幕一二区精品自拍| 亚洲a无码综合a国产av中文| 精产国品一二三产品蜜桃| 精品国产亚洲一区二区在线3d| 精品人妻一区二区久久| 女同三级伦理在线观看| 亚洲日韩av无码一区二区三区人| 久久久精品人妻一区亚美研究所 | 国产精成人品日日拍夜夜免费 | 国产成人亚洲不卡在线观看| 亚洲色偷偷偷综合网另类小说| 久久精品熟女亚洲av香蕉| 亚洲中文字幕一区精品自拍| 综合久久给合久久狠狠狠97色 | 成品人视频ww入口| 久久人人爽人人爽人人片亞洲| 91久久国产情侣真实对白| 亚洲一区二区综合精品| 色偷偷av一区二区三区| 风流少妇又紧又爽又丰满| 能看的网站中文字幕不卡av| 一区二区亚洲精品在线| 中文字幕久久久人妻无码| 久久久久久人妻精品一区百度网盘| 国产精品三级自产拍av| 美女露出自己的性感大胸一尤内衣 | 亚洲嫩草影院久久精品| 日本一区二区三区丰满熟女| 狠狠躁日日躁夜夜躁2020| 亚洲中文字幕乱码| 久久夜色精品国产亚洲av老牛 | 美女露出自己的性感大胸一尤内衣| 18禁裸男晨勃露j毛免费观看| 国产视频在线一区二区三区四区| 一区二区三区国产精品麻豆| 内射人妻视频国内| 国产精品入口牛牛影视|