《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于Tcl/Tk語言的自動化測試平臺的實現
基于Tcl/Tk語言的自動化測試平臺的實現
來源:電子技術應用2013年第1期
李志報1,2, 袁 亮1,2
1. 光纖通信技術和網絡國家重點實驗室,湖北 武漢430074; 2. 武漢郵電科學研究院, 湖北 武漢430074
摘要: 要提高三層交換機的可靠性,需要進行大量的測試。為了提高測試的效率,提出基于Tcl/Tk語言的自動化測試平臺。主要通過Tk實現GUI、Tcl實現測試腳本,已經廣泛應用于測試Sprient公司的TestCenter所能測試的設備測試,替代手動操作測試儀表和手動配置被測設備,大大提高了測試效率。
中圖分類號: TP31
文獻標識碼: A
文章編號: 0258-7998(2013)01-0059-03
The realization of automation test platform based on Tcl/Tk language
Li Zhibao1,2, Yuan Liang1,2
1.State Key Laboratory of Optical Communication Technologies and Networks,Wuhan 430074,China; 2. Wuhan Research Institute of Posts and Telecommunications, Wuhan 430074,China
Abstract: In order to improve Layer 3 switch reliability, it needs to do a lot of test. In order to improve the efficiency of the test,so it put forwards automation test platform based on Tcl/Tk Language. This paper implements GUI by Tk and implements Script by Tcl,the platform has been widely applied in which Sprient company’s TestCenter can test equipment,instead of manual operation about test instrument and DUT,and it greatly improves the efficiency of the test.
Key words : automation test platform; tool command language; toolkit; script

    隨著電信級以太網的快速發展,對數據通信設備(如三層交換機、路由器等)的需要越來越大。特別是三層交換機的出現使IP網絡成為更加經濟實用的網絡連接方式,在具備路由功能的同時,也具有更快的交換速度、更低的成本、更靈活的組網方式。隨著IP網絡的快速發展,對三層交換機的功能和性能提出了更高的要求,為了提供更加可靠的產品,三層交換機有很多功能以及性能需要測試,為了提高測試的效率,提出了基于Tcl/Tk語言的自動化測試平臺。本平臺是由Tcl/Tk語言實現的GUI和測試用例腳本兩大部分組成,并已經在二層交換機、三層交換機、路由器、企業網關等設備測試中廣泛應用。

1 Tcl/Tk語言簡介
    工具命令語言Tcl(Tool Command Language)是一種解釋執行的腳本語言,工具集Tk(Toolkit)指的是X Window的工具包、基于Tcl圖形化開發工具。Tcl擁有一個固有的核心命令集,同時還具有和C/C++語言類似的控制結構:if控制、循環控制和switch控制等,并支持過程的定義和調用,對數組和字符串等簡單數據結構也提供了支持。由于Tcl解釋器是用一個C/C++語言的過程庫實現,這個庫中有豐富的用于擴展Tcl命令的C/C++過程和函數,所以比較容易在C/C++應用嵌入Tcl。
    Tcl良好的可擴展性使得它能很好地適應產品測試的需要。測試任務常常會由于設計和需求的改變而迅速改變,利用Tcl的可擴展性,測試人員就可以迅速繼承多種新技術,并針對產品新特點迅速推出擴展Tcl命令集(比如本文對Spirent提供的STC_API進行二次封裝),以用于產品的測試中,可以較容易跟上設計需求的變化。
    同時Tcl也具有很好的可移植性,它將程序設計概念高度抽象,真正地把程序設計與操作系統底層結構隔開,因此不依賴于任何平臺,具有良好的可移植性,可運行在Unix、Windows、Macintosh等各種平臺上。由于Tcl程序設計與操作系統底層結構隔開,它屏蔽掉了編寫C/C++程序時必須涉及到的一些較為煩瑣的細節,可以大大地提高開發測試例的速度。而且,使用Tcl語言寫的測試例腳本,即使作了修改,也無須重新編譯即可調用Tcl解釋器執行,從而省去不少時間,很大程度上提高測試的效率。
2 GUI的實現
    利用Tk語言實現本平臺的GUI,Tk是Tcl的擴展功能,它擴充了Tcl寫X Window程序的能力,即是說Tk是在一個X Window下編寫的GUI程序套件,通過Tk語言可以很容易地寫成窗口式的程序,按如圖1所示流程實現。

     一個應用程序有且只能有一個根窗口,它是子窗口或者按鈕、文本等所有對象的“父親”,在Tk中根窗口用“.”,在創建子窗口或者按鈕、文本等對象時均以“.”加標識符構成對象名。
    在Tk中包含很多構件(Widget)[1-2],如Scrollbar、Menu、Button、Message、Listbox等,都可以用于GUI的設計;Tk應用程序是由事件驅動的,而事件是由相應的操作系統管理(文本所用的操作系統為Windows XP),然后操作系統將用戶的動作通知應用程序,應用程序執行相應的回調過程。Tk的應用程序由兩個Tcl腳本控制初始化腳本和事件句柄。當應用啟動時,執行初始化腳本,進行創建應用的用戶界面、裝載應用的數據結構及其初始化工作。一旦初始化完成,進入事件循環中等待用戶的交互動作,觸發相應的Tcl腳本執行。
    Tcl屬于直譯式的程序語言,就如早期的Basic語言,寫好的Tcl腳本通過Tcl直譯器tclsh執行程序,通過tclsh執行用Tk寫的Tcl腳本文件后出現如圖2的GUI界面,已在烽火網絡公司使用,給各系列交換機的測試工作節省大量時間,提高測試的效率。運行GUI的.tcl文件出現如圖2所示界面,通過此界面可以telnet到TestCenter上占用相應端口、設置被測交換機帶外地址和交換機被測端口、加載相應被測腳本,然后運行(Run)完成自動化測試。

3 測試腳本的實現
    圖2中的GUI必須配合腳本才能使用,而腳本是通過Tcl語言和Spirent提供的STC_API函數以及對STC_API函數進行二次封裝的函數實現,本平臺的三大特點都是通過對STC_API函數進行二次封裝后實現的。通過Tcl語言實現代碼的編寫,最終保存為“*.tcl”文件即可,而且“*.tcl”文件不需要編譯,然后直接調用tclsh環境執行相應的腳本程序。本平臺是通過GUI加載“*.tcl”腳本文件,然后通過按鈕Run調用tclsh執行腳本程序。
    腳本主要作用是通過代碼和相應的函數對測試儀表設備TestCenter進行操作和配置、對DUT進行寫配置,來取代大量的手動操作。不僅可以節省大量的時間提高測試的效率,而且可以節省大量的人力,如圖3所示為本平臺GUI加載測試腳本界面。

4 本平臺的特點
    以烽火網絡高端交換機(三層交換機)為例測試了VLAN翻譯功能,以對本平臺進行詳細說明。以下為本平臺三大特點:
    (1) 通過腳本對交換機進行配置
   由Spirent提供的STC_API[3-4]函數可以telnet到TestCenter上,在此函數的基礎上對其進行二次封裝為set session [fhn::telnet -dutip $dutip],其中dutip為DUT(被測試設備)的帶外地址,通過此函數可以telnet到DUT上。然后再通過二次封裝函數fhn::sendcmd $session "***" display對DUT進行配置,其中"***"為配置的命令,通過display可以把對DUT的配置過程完整地顯示出來,加載VLAN-Translation.tcl測試腳本運行后生成的Test Results如圖4所示為telent到DUT進行配置的界面。

 

 

    通過腳本telnet到DUT進行寫配置是本平臺最大特點之一,它為實現全自動化測試打了堅實的基礎,特別是在進行功能測試(由于功能測試配置的命令相對于性能測試少)時完全可以通過腳本telnet到DUT進行寫配置代替手動對DUT進行配置,可以節省大量對DUT寫配置的時間,大大提高測試效率。
    (2)通過腳本對TestCenter端口進行抓包
    由于TestCenter應用程序可以關聯抓包軟件Wireshark對TestCenter端口抓包,通過對STC_API中的抓包函數進行二次封裝后為fhn::capturestart -tcport [lindex $stcports 0]和fhn::capturestop -tcport [lindex $stcports 0] -filename d:/packets1.pcap,其中[lindex $stcports 0]為TestCenter相應端口的端口號,filename為抓包文件“*.pacp”在本地存放路徑,通過這兩個函數可以在相應的端口進行抓包并把數據包保存到本地硬盤以便進行分析。在DUT測試的過程中,需要進行抓包分析的過程很多,以便驗證測試結果。本文中的VLAN翻譯功能的實現與否就可以通過此功能進行進一步的驗證。
    (3)腳本運行完后可生成詳細文檔
    腳本運行完成后可生成三種類型的文本文檔。第一種是運行過程中生成的Test Results文檔(如圖4所示),通過此文檔可以詳細查看腳本運行的每一步,可以很容易找出其中的問題;第二種文檔為Test Detail,是腳本運行完以后生成的測試結果文檔,同時可以結合抓包得到“*.pacp”進行測試結果的驗證,如圖5所示(以VLAN翻譯的測試為例進行說明);第三種文檔為debugInfo.txt,詳細記載著腳本運行中所出現的問題,為排查問題提供指導。這三種類型文檔的生成都是通過代碼實現的,每次測試完后查看結果就是通過查看這三種類型的文檔以及結合Wireshark抓到數據包綜合分析所得到的。

    自動化測試出了問題就必須通過手動測試來查找原因,而通過手動對TestCenter進行配置和操作,需要花費大量的時間。Spirent提供的STC_API[5]函數中有一個保存TestCenter配置函數stc::perform SaveAsXml -FileName d:/vlan-translation.xml,在腳本中加上此函數,腳本運行完后會將腳本中對TestCenter所有配置保存在一個“*.xml”。當需要手動查找問題時,就直接通過TestCenter應用程序打開“*.xml”,這樣即節約時間也提高了測試效率。
    同時本平臺可以一次加載多個(可達數百個)測試用例,特別適合在非工作時間對DUT進行無人值守測試。一方面可以大大提高測試設備的利用率,另一方面可以大大提高測試效率節省大量時間。
    本文中的自動化測試平臺是在Spirent公司的TestCenter測試設備基礎上設計的,獨立于DUT的設計,已經廣泛應用交換機、路由器、企業網關、EPON、GPON等設備的測試,能適用于Spirent公司的TestCenter所能測試所有的設備。特別是對設備的二層性能測試(大容量MAC地址學習以及數據包轉發)和三層性能測試(超大容量路由學習及數據包轉發)可以節省大量時間,提高了測試效率,并且可用于各種二層協議和三層協議的測試。通過使用本平臺可大大提高測試設備利用率和測試效率,從而可加快設備的研發進度,大大提高設備的穩定性和可靠性。但是自動化測試也不是萬能的,一般出現了問題還是要靠手動測試(可以利用自動化測試生成的.xml文件直接導入TestCenter可以省去大量儀表配置工作)。如果將手動測試和自動化測試結合起來,則能大大提高測試的效率,使產品更加可靠穩定。
    Tcl/Tk語言具有“簡明、高效、可移植性好”的特點,具有廣泛的應用前景,已成為事實上自動化測試標準語言。
參考文獻
[1] WELCH B B, JONES K, HOBBS J. Practical programming in Tcl and Tk, Fourth Edition[M].Prentice Hall PTR,2003.
[2] Spirent Communications, Inc. Sprient Test Center Automation Object Reference. 2011.
[3] 崔凱.Tcl/Tk編程權威指南[M].北京:中國電力出版社,   2002.
[4] 孫惠杰,楊曉紅.軟件測試的自動化[J].哈爾濱師范大學學報(白然科學版),2003,19(5):42-49.
[5] 于秀山.軟件自動化測試效費分析[J].北京:計算機工程與應用,2003,39(17):107-109.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国模套图日韩精品一区二区| 亚洲国产欧美国产综合一区| 免费成人小视频| 久久爱www.| 欧美一区二区三区免费看| 亚洲一区二区三区777| 日韩午夜一区| 亚洲精品美女91| 亚洲国产精品一区二区久| 性欧美暴力猛交另类hd| 亚洲欧美自拍偷拍| 亚洲欧美欧美一区二区三区| 亚洲午夜在线观看视频在线| 亚洲一区二区av电影| 亚洲一区久久| 亚洲一区日韩| 欧美在线免费看| 久久精品日韩欧美| 亚洲国产你懂的| 亚洲精品免费在线播放| 亚洲日本欧美日韩高观看| 亚洲人成人一区二区三区| 亚洲精品亚洲人成人网| 在线综合欧美| 午夜国产精品视频| 欧美在线三级| 久久综合久久久| 欧美极品在线视频| 欧美日韩在线另类| 国产精品尤物| 怡红院精品视频在线观看极品| 精品成人免费| 亚洲免费大片| 亚洲综合日韩中文字幕v在线| 亚洲制服欧美中文字幕中文字幕| 午夜精品久久久| 亚洲第一中文字幕在线观看| 亚洲欧洲三级| 一区二区日韩欧美| 亚洲综合视频1区| 欧美在线观看一区二区三区| 久久久久国产精品www| 欧美freesex交免费视频| 欧美精品一区二区蜜臀亚洲 | 老色鬼久久亚洲一区二区| 欧美国产视频日韩| 国产精品theporn88| 国产精品综合久久久| 伊人久久大香线蕉av超碰演员| 亚洲人成人99网站| 亚洲午夜一区二区三区| 久久精品30| 一区二区三区 在线观看视频| 小嫩嫩精品导航| 美女久久网站| 国产精品va在线播放| 国产在线观看精品一区二区三区| 亚洲片在线资源| 欧美一区二区成人6969| 亚洲精品一区二区网址| 午夜精品一区二区三区电影天堂| 久久亚洲捆绑美女| 欧美午夜a级限制福利片| 国产视频精品免费播放| 永久免费视频成人| 99在线视频精品| 久久精品国产久精国产爱| 一区二区不卡在线视频 午夜欧美不卡在 | 影音先锋一区| 在线中文字幕一区| 久久国内精品自在自线400部| 一区二区三区四区国产精品| 久久av一区二区三区| 牛夜精品久久久久久久99黑人| 欧美视频一区二区三区四区| 国产一区三区三区| 99国产一区| 亚洲黄色成人网| 午夜精品福利一区二区蜜股av| 欧美aⅴ一区二区三区视频| 国产精品自在欧美一区| 日韩一区二区电影网| 久久精品一二三| 欧美一区影院| 欧美三区在线| 亚洲成在人线av| 欧美一级免费视频| 亚洲一本视频| 欧美精品99| 在线播放精品| 欧美在线二区| 午夜久久久久久久久久一区二区| 欧美黄在线观看| 黄色综合网站| 欧美亚洲在线播放| 亚洲综合好骚| 欧美视频日韩| 亚洲激情视频在线观看| 亚洲第一区中文99精品| 欧美一级一区| 国产精品草草| 99视频在线精品国自产拍免费观看 | 久久久成人网| 国产精品每日更新| 亚洲伦理久久| 亚洲精品午夜| 免费观看在线综合色| 国产综合色在线视频区| 亚洲欧美日韩精品久久久久| 亚洲午夜羞羞片| 欧美片第一页| 亚洲国内自拍| 亚洲精品字幕| 欧美成人午夜激情视频| 国语精品一区| 欧美一区二区三区在线| 小黄鸭精品aⅴ导航网站入口| 欧美性开放视频| 中文欧美日韩| 亚洲欧美在线x视频| 国产精品嫩草99av在线| 一区二区三区视频在线播放| 日韩午夜激情av| 欧美精品国产精品| 亚洲精品在线三区| 一区二区三区 在线观看视频| 欧美日韩一区二区国产| 日韩一区二区精品| 亚洲一区二区精品| 国产精品久线观看视频| 亚洲欧美大片| 久久国产精品亚洲77777| 国产性色一区二区| 久久精品2019中文字幕| 久久综合图片| 亚洲韩国日本中文字幕| 一区二区久久久久| 欧美性猛交xxxx免费看久久久| 亚洲午夜视频在线观看| 欧美在线一级va免费观看| 国产一区二区三区四区在线观看| 亚洲二区免费| 欧美—级高清免费播放| 一本色道久久综合狠狠躁篇的优点 | 亚洲精品国久久99热| 欧美精品久久99| 一本色道久久综合亚洲精品高清| 午夜精品亚洲| 黄色亚洲精品| 亚洲六月丁香色婷婷综合久久| 欧美色中文字幕| 午夜在线观看免费一区| 久久久免费精品| 亚洲成人在线视频网站| 在线视频欧美日韩| 国产日韩精品电影| 亚洲黄色毛片| 欧美私人啪啪vps| 亚洲欧美日韩天堂一区二区| 久久嫩草精品久久久久| 91久久一区二区| 欧美亚洲一级片| 在线观看一区| 亚洲欧美国产三级| 韩国三级在线一区| 亚洲作爱视频| 国产精品视频免费观看www| 久久高清福利视频| 欧美日韩伦理在线| 久久不射电影网| 欧美日韩直播| 久久国产乱子精品免费女 | 欧美亚洲综合在线| 欧美久久成人| 欧美在线播放一区| 欧美日韩精品国产| 欧美一区二区三区视频| 欧美精品成人在线| 先锋资源久久| 欧美日韩亚洲网| 香蕉久久夜色精品国产| 欧美另类人妖| 欧美专区在线播放| 国产精品qvod| 亚洲破处大片| 国产女主播视频一区二区| 99这里只有精品| 国精产品99永久一区一区| 正在播放欧美视频| 在线精品在线| 久久精品国产精品亚洲| 亚洲美女91| 欧美~级网站不卡| 午夜在线电影亚洲一区| 欧美日韩中文字幕日韩欧美| 亚洲激情欧美激情| 国产一区二区三区免费不卡| 亚洲视频在线视频| 亚洲国产欧美日韩另类综合| 欧美在线视频网站|