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

        ?

        基于Python的路由器產品自動化測試方案設計與實現

        2022-12-21 10:05:20萌,宗靜,許茳,謝
        信息記錄材料 2022年10期
        關鍵詞:產品功能

        郭 萌,宗 靜,許 茳,謝 露

        (1中國電子科技集團公司第三十研究所 四川 成都 610041)

        (2中國人民解放軍61623部隊 北京 100089)

        0 引言

        路由器是通信網絡中的關鍵設備,無論是骨干網、承載網、接入網,還是在各種各樣的專用網絡中,路由器必定是其中組網的主角。路由器的穩(wěn)定運行對于網絡的穩(wěn)定性和可靠性是至關重要的,因此路由器產品的質量保證是重中之重。為提高測試效率、保證產品質量,設計與實現路由器的自動化測試已經成為實際工作中的主流。

        1 路由器產品的特點及測試內容

        路由器產品有著鮮明的特點。硬件上,路由器產品必須滿足一定的特性,如電氣特性、功耗、重量、散熱、接口特性等。軟件上,分為兩部分:一部分是用來快速轉發(fā)而實現的代碼功能,部分路由器采用現場可編程邏輯門陣列(field programmable gate array,FPGA)實現;一部分是用來對路由器進行配置、協議組網的功能模塊。路由器的功能與性能均與其硬件架構設計、采用的芯片、硬件接口息息相關。本文僅對軟件上的功能、性能的自動化測試方案進行闡述,而硬件上的特性,由于測試方法和測試儀器儀均有不同且無法統一,部分內容需要一定的手工測試,因此這里不做討論。除去硬件特性之外,路由器的測試內容主要分為功能、性能、穩(wěn)定性與可靠性、管理控制、兼容性這5類[1]。

        (1)功能方面,相關的測試項包含[2]:配置類功能(端口配置、接口配置、中繼板卡配置、自身信息配置等)、狀態(tài)信息類功能(端口狀態(tài)、板卡狀態(tài)、連接狀態(tài)、CPU、內存、流量計數、時鐘同步、告警信息等)、協議組網類功能(IPv4、IPv6、動態(tài)路由協議OSPF、ISIS、BGP、MPLS、ARP、組播協議、各個協議的一致性、路由選路策略等)、安全功能(如IPsec支持、訪問控制、安全審計與事件管理、系統日志與操作日志、數據加密、抗重放、抗攻擊、流量限速等)。

        (2)性能方面,相關的測試項包括:RFC2544主要包括(端口、板卡與整機吞吐量、時延、丟包率、背靠背、時延抖動、錯包統計、亂序包統計等)、路由表項容量(OSPF路由表容量、ISIS路由表容量、BGP路由表容量、靜態(tài)路由表容量等)、路由收斂時間(不同拓撲不同組網協議下的路由收斂時間)、服務質量QOS與優(yōu)先級(不同中繼連接情況下)、第4~7層模擬實際業(yè)務流量測試(如在線視頻直播業(yè)務、視頻點播業(yè)務、視頻監(jiān)控業(yè)務、語音通話業(yè)務、文件傳輸業(yè)務)等。

        (3)穩(wěn)定性與可靠性方面,相關測試項包括:長期運行下的穩(wěn)定性(如大規(guī)模組網下的路由穩(wěn)定性、丟包率、時延、時延抖動等)、極限情況下的應對能力(如突發(fā)流量處理與告警、異常流量檢測與告警、大量路由震蕩、反復的建鏈斷鏈、畸形報文處理等)、主備切換與冗余鏈路等。

        (4)管理控制方面,相關的測試項包括:對網管的支持能力(增刪改查、狀態(tài)上報與管控)、遠程登錄、本地管理、在線升級、流量計費等。

        (5)兼容性方面,相關測試項包括:產品與不同廠家互連的兼容性、互操作性等。

        2 自動化測試的實施思路

        目前在各個領域的測試行業(yè)中,純手工測試已經不多見了,自動或半自動化方式的測試在企業(yè)中發(fā)揮著越來越重要的作用。相比較于手工測試,自動化測試的優(yōu)勢很明顯:(1)可以減輕大量的重復性的手工勞動,在冒煙測試、回歸測試等過程中,解放“重復勞動”的人力,提高測試效率;(2)實現無法用手工實現的測試(如一些循環(huán)操作、時間要求苛刻的操作、大量的重復操作等);(3)采用自動化測試可以更好地發(fā)揮測試工具、儀器儀表對測試的作用。

        對于一個產品來說,實施自動化測試需要具備以下4個基本條件:(1)該產品已經實現某基線版本,經歷了完整的系統測試;(2)該產品的需求未來不會發(fā)生巨大變化;(3)該產品是一個長期需要迭代更新的產品,有長期的測試需求;(4)該產品的測試組中具備架構設計、代碼開發(fā)能力的自動化測試人員。

        在設計與實現一個自動化測試方案時,主要考慮以下7個方面:可行性分析、測試需求分析、測試架構選擇與組織、自動化測試用例代碼編寫、自動化測試用例執(zhí)行、測試架構與代碼優(yōu)化,以及日常維護[3]。

        可行性分析是從產品特點、人力情況、項目進度、陪測設備與儀器儀表方面分析,得出一個適合與當前產品的自動化測試組織與實施計劃,分析出自動化測試方案設計與實現中可能遇到的困難和風險(風險管理表)并給出一定的解決方案。

        測試需求分析是從產品實際入手,逐步分析,哪些測試用例需要自動化測試及用例優(yōu)先級,給測試開發(fā)人員明確的開發(fā)目標、開發(fā)優(yōu)先級與開發(fā)周期。

        測試架構選擇與組織,可與可行性分析同步進行,是在分析測試需求的過程中,結合預期的開發(fā)內容,選定使用什么樣的測試框架,如何組織測試儀和被測設備之間的調用關系,要準備哪些庫和類,以及如何根據模塊功能的劃分測試套件。

        3 路由器產品功能與性能自動化測試方案及實現

        依據筆者所在的項目經驗,下面對路由器產品功能與性能的自動化測試設計方案及實現進行具體闡述。

        3.1 開發(fā)語言與自動化測試框架的選擇

        開發(fā)語言方面,當前使用的網絡性能測試儀(信而泰測試儀與IXIA測試儀)均提供了Python的API接口,本文使用Python語言對測試儀的Python-API進行調用,從而實現對測試儀的數據流量配置、協議仿真配置、測試套件配置、測試結果獲取,因此選定采用Python作為自動化測試用例的主要開發(fā)語言。

        自動化測試框架方面,選定使用pytest。在自動化測試中引入框架,可以減少開發(fā)工作量,使用框架提供的插件可較快地實現一些通用性的功能,以提高自動化測試用例的規(guī)范性。尤其像pytest這樣開源的測試框架,成熟易用,可以提升自動化測試的穩(wěn)定性、健壯性,并降低維護成本。同時,pytest也具有較好的擴展[4-5],測試人員可以在有需求的情況下自行編寫插件或修改插件,以實現更多的功能。

        3.2 自動化測試方案架構與流程設計

        基于自動化測試的分層思想,本文論述的自動化測試在實現上分為4層(圖1),分別為測試數據層、測試用例分層、公共處理層、接口調用與業(yè)務處理層。

        圖1 自動化測試分層方案

        (1)測試數據層用來輸入測試數據,如配置類數據、路由器的初始化數據、測試儀數據流參數等。

        (2)測試用例分層是測試用例的集合,以自動化測試用例執(zhí)行的主入口,依據路由器功能、性能,劃分出不同的測試套件,在執(zhí)行自動化測試時,可以對不同的測試套件進行組合。

        (3)公共處理層是一些常用函數的集合,如測試結果輸出的處理、計算、文件創(chuàng)建與保存,以及日志處理模塊等。

        (4)接口調用與業(yè)務處理層是對網絡性能測試儀的調用接口和對路由器接口調用的集合,這一層的作用是為了簡化測試用例中的調用,對接口做了相應的封裝和優(yōu)化,完成對路由器和網絡性能測試儀的配置、操作與數據處理。以針對信而泰網絡性能測試儀(BigTao6200/220)python-api的調用為例,接口層的調用涵蓋:儀表上線、端口上線、接口配置、協議配置、數據流量配置與啟動、數據流報文編輯、數據流報文抓取、數據流量停止與流量結果收集、協議狀態(tài)數據收集等;涉及信而泰網絡性能測試儀的接口有Sysentry(機框連接與初始化)、Port(端口上線與占用)、ResultView(訂閱數據流結果)、Interface(接口配置)、Stream Block與StreamTemplate(數據流量模板創(chuàng)建與啟動)、Capture(報文抓取與過濾配置)、Protocol(各種協議配置)。這些接口的使用幾乎覆蓋性能測試中所有的測試用例,為了簡化調用和減少重復代碼,對上述接口進行二次封裝,形成固定的接口調用函數。

        4個層次盡量做到解耦合及結構清晰,可以較為詳細的分析代碼結構和對代碼進行維護。不同型號之間的路由器產品也可共用公共處理層和接口調用與業(yè)務處理層,僅區(qū)分測試數據與測試用例。

        以路由器配置類的測試為例,產品配置有2種接口(由于第3種接口是通過統一的網管接口,網管一般存在于大組網環(huán)境中,這里不做擴展描述),因此有2種途徑對路由器進行測試。一種是通過路由器的本地web接口,使用Python+requests實現對本地web的調用,實現配置項的增刪改查;一種是通過登錄路由器的后臺執(zhí)行命令行,使用Python+SSH實現對配置項的增刪改查。以路由器協議仿真類和RFC2544性能測試套件的測試為例,由于網絡性能測試儀的參與,在上述配置類測試的基礎上,添加對網絡性能測試儀Python-API接口的調用,從而獲取網絡性能測試儀上的協議仿真測試結果。

        在pytest框架,規(guī)范編寫自動化測試用例與測試套件,組織測試集合,使用pytest的fixture插件以實現參數化測試[5],可使用pytest-html插件實現測試報告的規(guī)范導出,使用pytest-repeat和pytest-xdist插件實現重復測試與并行測試。同時,規(guī)劃了運行日志模塊,可隨時監(jiān)控測試用例的執(zhí)行情況及采集測試中的過程數據,為復雜的自動化測試用例提供結果分析的支撐數據,也可為自動化測試用例的維護和優(yōu)化提供依據。

        綜上所述,整體的自動化測試架構方案實施框圖,如圖2所示??梢钥闯?,在此架構下自動化測試的流程主要分為4個步驟:定義拓撲、測試數據輸入與參數準備、自動化測試用例集合執(zhí)行、測試結果收集。

        圖2 自動化測試架構方案實施框圖

        3.3 復雜組網下自動化測試的組織

        常規(guī)情況下,自動化測試是在路由器單機或簡單拓撲下之下運行的,測試目標是完成對功能性能指標的快速回歸,這樣的測試場景一般不需要復雜拓撲。在特定的針對性測試的情況下,可能會依據實際情況構建復雜的網絡拓撲環(huán)境,甚至會采用測試儀器儀表構建虛擬網絡與實際拓撲相連的場景。此時,自動化測試用例的目標是腳本自動執(zhí)行并采集測試的結果。

        一般適合復雜場景測試的測試項有:路由收斂時間、路由震蕩、規(guī)模組網下協議穩(wěn)定性組網等。在這樣的情況下,自動化測試的組織,首先對于N個被測設備進行全連接連線,然后在自動化測試中的測試數據輸入階段,提前批量定義測試用例中的配置(如端口的開放與關閉、接口的增加與刪除),最后在實現想要的拓撲及在測試用例中實現拓撲變換。

        3.4 版本迭代中的自動化測試組織與并行測試

        為了快速回歸和迭代,結合路由器產品嵌入式軟件的特點,在版本迭代中組織自動化測試,以實現在腳本控制下代碼的自動打包,且通過路由器產品的在線升級功能,對路由器設備的軟件(含FPGA)版本進行更新,最終進行自動化測試用例集合的執(zhí)行。這個過程并非持續(xù)集成的,但與持續(xù)集成的相似之處在于,版本迭代過程與自動化測試的結合均是在腳本下自動完成的。而區(qū)別之處是持續(xù)集成下自動化測試的頻率較高,甚至每提交一次代碼就可以觸發(fā)一次自動化測試。由于路由器設備的硬件屬性,其實并不需要程序員每提交一次代碼就進行一次架上的自動化測試。因此在里程碑版本、正式版本及其他測試版本在必要更新時,才進行自動化測試。版本迭代與自動化測試過程,如圖3所示。

        圖3 版本迭代與自動化測試過程

        另外,多個版本同時需要測試時,自動化測試可以并行開展。在pytest框架中可以在插件的控制下將某些測試用例并發(fā)執(zhí)行,以此來減少等待時間,以提高測試效率。這樣操作是在單臺路由器或固定的組網拓撲,并在測試用例之間確認互不影響的情況下進行。當多個硬件設備(路由器與網絡性能測試儀)同時使用,且在多個版本的自動化測試需求下,可以充分利用設備的優(yōu)勢,依據測試重點和關注點,劃分測試子集,開展不同的自動化測試。由于網絡性能測試儀占用的端口不同、各自被測設備的路由器也不沖突,因此這樣的并行測試是完全可行的。

        4 結論

        本文提出的自動化測試,是在pytest框架下編寫全代碼形式的自動化測試用例。有著在代碼結構、注釋清晰的情況下靈活程度較高的優(yōu)勢,因此自動化測試在實際的運行中,由于不同的路由器產品基本的功能與性能有相似性,在不同型號的系列路由器產品中,能夠通過修改實現推廣使用。在后續(xù)的工作中,可必要研究關鍵字驅動(如Robot Framework測試框架)、更方便代碼閱讀形式的自動化測試方案。以解決以純代碼形式的測試用例對于初級測試人員來說可能較難的缺點。

        猜你喜歡
        產品功能
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        好產品,可持續(xù)
        現代裝飾(2022年4期)2022-08-31 01:39:32
        從靈感出發(fā),邂逅好產品
        現代裝飾(2022年3期)2022-07-05 05:55:06
        關于非首都功能疏解的幾點思考
        懷孕了,凝血功能怎么變?
        媽媽寶寶(2017年2期)2017-02-21 01:21:24
        “簡直”和“幾乎”的表達功能
        2015產品LOOKBOOK直擊
        Coco薇(2015年1期)2015-08-13 02:23:50
        中西醫(yī)結合治療甲狀腺功能亢進癥31例
        辨證施護在輕度認知功能損害中的應用
        新產品
        玩具(2009年10期)2009-11-04 02:33:14
        在线免费观看国产精品| 无码伊人66久久大杳蕉网站谷歌 | 国产极品美女高潮无套在线观看| 无码熟妇人妻AV不卡| 国产在线视频网友自拍| 精品人妻一区二区三区四区在线| 国产精品成人一区二区在线不卡| 综合图区亚洲另类偷窥| 中年熟妇的大黑p| 久久精品伊人无码二区| 在线亚洲国产一区二区三区 | 亚洲国产线茬精品成av| 亚洲国产精品美女久久| 免费观看又色又爽又黄的| 亚洲国产成人精品福利在线观看| 一区二区三区放荡人妻| 中文字幕亚洲综合久久久| 好看的日韩精品视频在线| 麻豆婷婷狠狠色18禁久久| 性一交一乱一伧国产女士spa | 国产色秀视频在线播放| 91热久久免费精品99| 91国产精品自拍视频| 亚洲最大中文字幕熟女| 一区二区三区国产| 国产污污视频| 亚洲第一页在线观看视频网站| 老熟妇乱子交视频一区| 麻豆╳╳╳乱女另类| 亚洲av伊人久久综合密臀性色| 精品一二区| 亚洲一区二区三区美女av| 洲色熟女图激情另类图区| 国产福利视频一区二区| 亚洲福利视频一区| 国产蜜臀精品一区二区三区| 亚洲精品国产第一综合色吧| 四川老熟妇乱子xx性bbw| 亚洲中文字幕巨乳人妻| 在线视频观看一区二区| 国产精品亚洲а∨无码播放不卡|