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

        ?

        Autotest自動化測試框架研究軟

        2016-05-14 15:49:00李青楊曉娟朱博張新玲
        軟件導(dǎo)刊 2016年7期

        李青 楊曉娟 朱博 張新玲

        摘要:Autotest是一個開源自動化測試框架,能夠大規(guī)模、完全自動化地完成Linux底層系統(tǒng)測試,處理測試過程中出現(xiàn)的內(nèi)核錯誤、硬件死機、網(wǎng)絡(luò)故障等。Autotest易于集成現(xiàn)有的內(nèi)核和硬件測試,便于測試人員編寫簡單的測試用例和加入分析工具進行測試結(jié)果分析。Autotest框架實現(xiàn)分布式處理大量Linux內(nèi)核測試,不僅能充分測試Linux內(nèi)核和硬件的穩(wěn)定性、可靠性和健壯性,還能有效提高測試效率。

        關(guān)鍵詞關(guān)鍵詞:自動化測試;Linux內(nèi)核;分布式;開源框架

        DOIDOI:10.11907/rjdk.161123

        中圖分類號:TP306文獻標識碼:A文章編號文章編號:16727800(2016)007001403

        隨著軟件行業(yè)的日益成熟,軟件自動化測試成為保障軟件質(zhì)量、加速軟件開發(fā)的重要手段?,F(xiàn)存的自動化測試框架主要是針對上層軟件的測試,被測對象與底層平臺分離,需假設(shè)底層平臺穩(wěn)定可靠。而當(dāng)?shù)讓悠脚_本身成為被測對象時,以上假設(shè)將不成立。目前針對底層系統(tǒng)的自動化測試技術(shù)還不成熟。因此,內(nèi)核測試一般采用人工方式,測試效率較低。

        Autotest是完全自動化開源測試框架,針對包括內(nèi)核和硬件的底層系統(tǒng)進行測試,提供終端到終端的自動化功能和性能測試,使測試者能夠在不了解內(nèi)部框架的情況下,簡單進行基本測試和集成測試。Autotest設(shè)計之初是為了解決開源的Linux系統(tǒng)測試不足的需求,隨著功能的不斷拓展,Autotest能夠執(zhí)行許多不同的測試,增加新的結(jié)果分析工具,集成已存在的測試框架,展現(xiàn)了強大的包容性、擴展性和易用性。

        1幾種測試框架介紹

        1.1AutoBench

        IBM Autobench是針對Linux系統(tǒng)的開源測試框架,基于httperf的Perl腳本編寫而成,構(gòu)建和引導(dǎo)測試腳本運行。通過該框架,用戶能夠便捷地設(shè)置測試用例的執(zhí)行環(huán)境和參數(shù),并行執(zhí)行測試。但是,該框架的測試控制機制和錯誤處理機制不夠健全,擴展性和維護性較差,不利于用戶二次開發(fā)。

        1.2Linux Test Project

        Linux Test Project(LTP)是目前較為流行的Linux功能測試和性能測試框架,主要用來測試Linux內(nèi)核基本特性。它提供測試套件,用戶能夠驗證Linux的可靠性、耐用性和穩(wěn)定性,亦可針對不同的測試目的和LTP中的接口函數(shù)進一步開發(fā)新測試用例。但是,它缺乏對測試結(jié)果的分析以及對日志的解析工作,本質(zhì)僅是多個測試的集合,因此LTP并不能作為通用和完全自動化測試內(nèi)核的框架。

        1.3Xentest

        Xentest是一個專門針對Xen虛擬化測試的自動化測試框架,通過在Xen上運行Linux下的標準測試套件對底層虛擬化進行測試。但Xentest只能緊密圍繞Xen,不能成為內(nèi)核或硬件測試的通用框架。

        1.4Crackerjack

        CrackerJack是一個完整的內(nèi)核自動化測試框架,主要目標是通過回歸測試尋找不同內(nèi)核版本間不相容的API。它是一個很有價值的測試工具,但是功能太過狹隘。

        1.5其它工具

        Linux自動化測試框架研究逐漸深入。張達運等提出一種基于Lua的Linux內(nèi)核測試工具,降低了Linux內(nèi)核及驅(qū)動接口測試的編程難度。韓濤等設(shè)計一種Linux下自動化測試執(zhí)行管理工具,通過對測試過程和測試資源進行管理,提高了測試效率。

        2Autotest框架研究

        2.1總體架構(gòu)

        Autotest采用分層結(jié)構(gòu)以滿足不同規(guī)模集群的測試需求。Autotest框架從上到下主要分為4層,如圖1所示。

        (1)用戶接口:包括Web接口、命令行接口和DJANGO。作用是便于用戶與Autotest交互,包括管理作業(yè)、管理Client主機、查看結(jié)果等。

        (3)Serve端:包括調(diào)度數(shù)據(jù)庫和AutoServ服務(wù)。主要任務(wù)是分配和調(diào)度測試作業(yè)執(zhí)行。調(diào)度數(shù)據(jù)庫用于選擇要執(zhí)行的作業(yè),開啟Autoserv進程;Autoserv用于管理Client中運行的作業(yè)、檢查Client工作狀態(tài)、修復(fù)失效的Client節(jié)點、管理作業(yè)的執(zhí)行情況等。

        (4)Client端:實際執(zhí)行測試。執(zhí)行單個測試任務(wù)或者作為集群中的一個測試節(jié)點執(zhí)行測試。

        Autotest框架工作流程如圖2所示。測試Linux系統(tǒng)發(fā)布新版本,首先將測試任務(wù)導(dǎo)入AutoServ測試作業(yè)隊列中;AutoServ負責(zé)將測試任務(wù)下達到Client端,在Client端安裝測試環(huán)境,如Linux新版本等,并執(zhí)行測試任務(wù);測試結(jié)束后將結(jié)果發(fā)送到結(jié)果分析工具中分析,如存在缺陷則為系統(tǒng)打補丁。整個過程中Client端作為Autotest系統(tǒng)的最底層,在單個機器上運行簡單的測試。Server端作為指揮中心,自動安裝和執(zhí)行客戶端,協(xié)調(diào)多機測試。

        2.2Autotest Client

        Client端主要用于測試本地Linux系統(tǒng)內(nèi)核,包含多種常見的Linux內(nèi)核測試用例,用戶可直接使用這些測試用例,亦可進行二次開發(fā)或者重新創(chuàng)建測試用例。Client端采用Python編寫而成,提供C語言的編譯和執(zhí)行工具,使得每個測試用例均可與額外的C語言編寫資源捆綁,易于集成已實現(xiàn)的測試工具。Autotest框架提供了標準化接口,在Client端編寫測試用例時,均能調(diào)用該框架中的接口實現(xiàn)功能,例如作業(yè)控制、錯誤處理機制、結(jié)果收集和分析機制等,用戶無需手動定義這些機制。

        Client端僅為測試單個計算機Linux底層系統(tǒng)提供基礎(chǔ)功能。以往測試不同硬件配置下的內(nèi)核,要在多臺物理設(shè)備上安裝Client端,手動執(zhí)行測試并收集分散在不同物理設(shè)備中的測試結(jié)果,這對于大規(guī)模計算機集群測試十分復(fù)雜且低效。為解決此問題,Autotest的Server端應(yīng)運而生。Server端圍繞Client端設(shè)計一個單獨的層。AutoServ進程通過SSH遠程連接被測對象,自動安裝Autotest Client端執(zhí)行作業(yè),并將結(jié)果從被測機返回。用戶可以任意設(shè)置被測對象的數(shù)量,同時將結(jié)果收集到Server端分析。

        Server端提供了恢復(fù)失敗測試系統(tǒng)機制。AutoServ通過監(jiān)聽串行控制臺、網(wǎng)絡(luò)控制臺和系統(tǒng)日志的輸出,與外接服務(wù)相互作用,收集被測機的故障信息。最壞的情況下,AutoServ進程可以記錄失敗作業(yè)運行的測試和發(fā)生故障的測試機最后的已知狀態(tài)。在被測機出現(xiàn)故障導(dǎo)致系統(tǒng)崩潰時,AutoServ首先嘗試把機器返回到已知的良好狀態(tài),然后對被測機重新安裝。最后,將已修復(fù)的故障機重置到具有最小的人為干預(yù)的工作狀態(tài)。

        2.4前端與調(diào)度器

        Autoserv作為一個獨立的應(yīng)用程序,不能滿足擴展到數(shù)千個測試機和實現(xiàn)共享機器池有效利用的要求。為了滿足這些需求,Autotest框架將Autoserv頂層封裝為共享服務(wù),用戶通過一個基于Web或基于命令行的界面,與中央服務(wù)器實例交互,而不是直接執(zhí)行Client端或Server端。

        前端是一個Web應(yīng)用程序調(diào)度測試,監(jiān)控執(zhí)行中的測試并管理測試機器。調(diào)度器是在AutoServ運行的一個進程,其目的是為了執(zhí)行和監(jiān)控Autoserv進程上運行的后臺程序。調(diào)度器連續(xù)匹配可用的機器和預(yù)定的測試作業(yè),開啟Autoserv進程執(zhí)行這些作業(yè),并監(jiān)視流程完成。在整個執(zhí)行過程中,更新數(shù)據(jù)庫中每個作業(yè)的狀態(tài),跟蹤作業(yè)進度。完成后,調(diào)度器調(diào)用解析器將Autoserv的結(jié)果記錄到測試結(jié)果數(shù)據(jù)庫。調(diào)度器與前端通過該數(shù)據(jù)庫交互,執(zhí)行已計劃的測試作業(yè)。最后,用戶進行結(jié)果分析。

        當(dāng)測試規(guī)模擴展到成千上萬臺機器時,自動化測試平臺的健康管理變得至關(guān)重要。調(diào)度器啟動特殊Autoserv流程,在每次作業(yè)前檢查機器運行狀況,在數(shù)據(jù)庫中標記不能被修復(fù)的機器。此外,調(diào)度器定期復(fù)檢已知宕機的機器,捕捉可能發(fā)生的任何手動修復(fù)。所有Autoserv進程如果在一個Server端上運行,性能會嚴重下降。調(diào)度器支持對正在運行的進程全局限制,以避免整個系統(tǒng)停頓。

        Autotest可以自動生成控制文件運行選定的測試,通過前端Web頁面選擇測試用例,指定內(nèi)核安裝和選擇有效的分析工具,從而使Autotest輕松運行比較復(fù)雜的測試,而不需要投入很多精力編寫控制文件。

        3實驗

        3.1測試方法與背景

        實驗平臺由1臺服務(wù)器及20臺常規(guī)計算機搭建而成。Serve端主機使用浪潮英信SA5212L型服務(wù)器,Client端使用浪潮VITE2230型計算機,詳細配置如表1所示。

        3.2測試結(jié)果

        在不同規(guī)模的計算機集群上測試每個計算機內(nèi)存讀寫速率,圖3為通過Serve端啟動20個Client同時進行內(nèi)存讀寫時,每個計算機的平均內(nèi)存讀寫速率,同時啟動20個Client端執(zhí)行完測試所需時間結(jié)果,如圖4所示。顯然,Autotest通過Serve端同時啟動大型集群上的Client端進行測試和在單個計算機上測試所消耗的時間相近。而逐個執(zhí)行相同數(shù)量計算機節(jié)點上的單機測試,時間消耗遠高于使用Autotest框架進行測試。

        4結(jié)語

        Autotest強大、穩(wěn)健,入門容易,便于理解和維護。Autotest適用于各種測試規(guī)模,分布式測試性能穩(wěn)定可靠、效率高。同時,Autotest測試框架易于集成已有的測試工具和測試結(jié)果分析工具,方便測試使用和開發(fā)測試用例。開源的Autotest正吸引越來越多的人加入框架的開發(fā)與維護,使之成為更加完善和強大的自動化測試工具。

        參考文獻參考文獻:

        KAMALESH BIBULAL,BALBIR SINGH.Keeping the Linux kernel honest[J].In Linux Symposium,2008(1):1929.

        MARTIN BLIGH,ANDY P WHITCROFT.Fully automated testing of the Linux kernel[J].In Linux Symposium,2006(1):113125.

        Linux test project\[EB/OL\].http://ltp.sourceforge.net.

        SUBRATA MODAK,BALBIR SINGH.Building a robust Linux kernel piggybacking the Linux test project[J].In Linux Symposium,2008(2):91100.

        朱巖.應(yīng)用Linux Test Project組件測試Linux內(nèi)核應(yīng)用研究[J].中國測試,2009,35(5):5558.

        DAVID BERRERA,LI GE,STEPHANIE GLASS,et al.Testing the Xen hypervisor and Linux virtual machines[J].In Linux Symposium,2005(1):271288.

        HIRO YOSHIOKA.Regression test framework and kernel execution coverage[J].In Linux Symposium,2007(2):285296.

        張達運,汪漢新.基于Lua的Linux內(nèi)核測試工具開發(fā)[J].計算機工程,2011,37(11):283284.

        韓濤,高靜.Linux下自動化測試執(zhí)行管理工具的設(shè)計與實現(xiàn)[J].計算機系統(tǒng)應(yīng)用,2010,19(4):112115.

        Autotest\[EB/OL\].https://github.com/autotest

        責(zé)任編輯(責(zé)任編輯:杜能鋼)

        元码人妻精品一区二区三区9| 一本一道av中文字幕无码| 亚洲粉嫩高潮的18p| 婷婷色国产精品视频一区| 国产一区二区三区在线观看免费版| 黄片视频免费观看蜜桃| 午夜福利啪啪片| 国产白丝在线| 国产女人高潮的av毛片| 新中文字幕一区二区三区| 欧美精品v国产精品v日韩精品| 无码的精品免费不卡在线| 中文字幕人妻少妇久久| 三级国产精品久久久99| 国产午夜鲁丝片av无码| 亚洲AV无码一区二区三区ba| 久久国产女同一区二区| 国产精品美女久久久免费| 欧美大黑帍在线播放| 日韩美女高潮流白浆视频在线观看| 亚洲av高清一区二区| 国产精品二区一区二区aⅴ污介绍 少妇伦子伦情品无吗 | 区二区三区亚洲精品无| 无码久久精品蜜桃| 极品夫妻一区二区三区| 久久精品aⅴ无码中文字字幕| 久久久久久av无码免费看大片| 少妇被粗大猛进进出出| 久久久精品亚洲一区二区国产av| 精品www日韩熟女人妻| 成人无码h真人在线网站| 久久亚洲精品中文字幕蜜潮| 日韩经典午夜福利发布| 国产成人亚洲日韩欧美| 国产成人av综合色| 国产成人大片在线播放| 曰本人做爰又黄又粗视频| 亚洲国产精品自产拍久久蜜AV| 国产在线观看黄片视频免费| 成人欧美一区二区三区在线观看 | 67194熟妇人妻欧美日韩|