999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Autotest自動化測試框架研究軟

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

李青 楊曉娟 朱博 張新玲

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

關鍵詞關鍵詞:自動化測試;Linux內核;分布式;開源框架

DOIDOI:10.11907/rjdk.161123

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

隨著軟件行業的日益成熟,軟件自動化測試成為保障軟件質量、加速軟件開發的重要手段。現存的自動化測試框架主要是針對上層軟件的測試,被測對象與底層平臺分離,需假設底層平臺穩定可靠。而當底層平臺本身成為被測對象時,以上假設將不成立。目前針對底層系統的自動化測試技術還不成熟。因此,內核測試一般采用人工方式,測試效率較低。

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

1幾種測試框架介紹

1.1AutoBench

IBM Autobench是針對Linux系統的開源測試框架,基于httperf的Perl腳本編寫而成,構建和引導測試腳本運行。通過該框架,用戶能夠便捷地設置測試用例的執行環境和參數,并行執行測試。但是,該框架的測試控制機制和錯誤處理機制不夠健全,擴展性和維護性較差,不利于用戶二次開發。

1.2Linux Test Project

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

1.3Xentest

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

1.4Crackerjack

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

1.5其它工具

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

2Autotest框架研究

2.1總體架構

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

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

(3)Serve端:包括調度數據庫和AutoServ服務。主要任務是分配和調度測試作業執行。調度數據庫用于選擇要執行的作業,開啟Autoserv進程;Autoserv用于管理Client中運行的作業、檢查Client工作狀態、修復失效的Client節點、管理作業的執行情況等。

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

Autotest框架工作流程如圖2所示。測試Linux系統發布新版本,首先將測試任務導入AutoServ測試作業隊列中;AutoServ負責將測試任務下達到Client端,在Client端安裝測試環境,如Linux新版本等,并執行測試任務;測試結束后將結果發送到結果分析工具中分析,如存在缺陷則為系統打補丁。整個過程中Client端作為Autotest系統的最底層,在單個機器上運行簡單的測試。Server端作為指揮中心,自動安裝和執行客戶端,協調多機測試。

2.2Autotest Client

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

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

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

2.4前端與調度器

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

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

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

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

3實驗

3.1測試方法與背景

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

3.2測試結果

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

4結語

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

參考文獻參考文獻:

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.

朱巖.應用Linux Test Project組件測試Linux內核應用研究[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內核測試工具開發[J].計算機工程,2011,37(11):283284.

韓濤,高靜.Linux下自動化測試執行管理工具的設計與實現[J].計算機系統應用,2010,19(4):112115.

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

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

主站蜘蛛池模板: 国产不卡网| 亚洲性色永久网址| 狠狠综合久久| 99热在线只有精品| 午夜激情福利视频| 国产精品成人啪精品视频| 粉嫩国产白浆在线观看| 亚洲综合色吧| 亚洲国产综合精品中文第一| 青青久久91| 欧美成人aⅴ| 色亚洲激情综合精品无码视频| 美女扒开下面流白浆在线试听| 天天色综网| 中文无码精品A∨在线观看不卡| 又污又黄又无遮挡网站| 国产99热| 欧美高清国产| 青青草久久伊人| 亚洲午夜18| 国产经典在线观看一区| 亚洲人视频在线观看| 国产小视频a在线观看| 国产91丝袜在线播放动漫 | 91国内外精品自在线播放| 国产乱子精品一区二区在线观看| 麻豆精品在线视频| 好久久免费视频高清| 强乱中文字幕在线播放不卡| 免费高清a毛片| 亚洲h视频在线| 日韩欧美在线观看| 国产成人综合日韩精品无码首页| 国产精品香蕉| 黄色网在线| 青青草原偷拍视频| 97视频在线观看免费视频| 免费中文字幕在在线不卡| 亚洲综合色婷婷| 国产美女无遮挡免费视频网站| 久久国产精品波多野结衣| 亚洲美女久久| 亚洲成a人在线观看| 国产亚洲精| 久久精品aⅴ无码中文字幕| 精品少妇人妻一区二区| 精品一区二区三区自慰喷水| 国产网站免费观看| 中国一级特黄大片在线观看| 久久超级碰| 伊人久久婷婷| 性色一区| 在线看片国产| 永久天堂网Av| 国产精品成人不卡在线观看 | 无码中文AⅤ在线观看| 福利在线一区| 狠狠亚洲五月天| 久久久四虎成人永久免费网站| 日韩A∨精品日韩精品无码| 欧美在线视频不卡| 本亚洲精品网站| 尤物视频一区| 国产美女一级毛片| 美女被躁出白浆视频播放| 日韩在线观看网站| 天天躁夜夜躁狠狠躁图片| 久综合日韩| 亚洲日韩精品无码专区| 欧美精品xx| 国产成人喷潮在线观看| 91精品免费久久久| 婷婷色一二三区波多野衣| 国产免费一级精品视频| 日韩经典精品无码一区二区| 日本五区在线不卡精品| 99热这里只有精品在线播放| 亚洲天堂2014| 亚洲日本中文综合在线| 国产精品免费久久久久影院无码| 国产一在线| 国产成人精品亚洲77美色|