




[關鍵詞]自動化;變電站網絡交換機;網絡測試儀
隨著信息化、智能化技術在電網控制系統中的應用,交換機逐漸成為控制系統鏈接和數據轉發的樞紐,得到廣泛應用。變電站網絡交換機作為智能變電站通信網絡中的核心基礎設備,其穩定性和性能至關重要。為滿足電網控制系統的不同站點需求,變電站網絡交換機在站點配置、端口類型、安全要求、吞吐量等方面均有差異,傳統的人工測試無法快速保質地響應變化,因此需要一種自動化手段來提高測試效率和保證測試準確度。
國內外對于變電站的繼電保護設備自動化和配電終端自動化的研究較多,對于承接數據轉發的變電站網絡交換機的自動化研究較少??紤]到變電站網絡交換機采用的配置下發主要是借助于網頁配置,且網頁配置的自動化已經有了大量研究,文章期望設計出一套扎實可行的變電站網絡交換機(以下簡稱“交換機”)的自動化測試系統(以下簡稱“自動測試系統”)。
1 交換機自動測試系統框架
1.1 交換機測試原理
交換機手工測試流程如圖1所示。在交換機各型號批量發布、迭代輪次較多時,該測試方式存在人力消耗大、測試質量不可保證等問題。
1.2 變電站交換機自動測試系統設計方案
交換機自動測試系統以架構分層模型為設計思路,根據系統的各個功能劃分為不同的層次,包括數據訪問層、業務邏輯層及用戶應用層,如圖2所示。
用戶應用層調用數據訪問層和業務邏輯層的數據,模擬交換機手工測試:配置測試環境、網頁配置交換機參數、構造流量驗證交換機轉發情況,形成測試閉環腳本。所有腳本匯集成腳本序列,通過腳本調度邏輯,實現按需執行。
1.2.1 數據訪問層
(1)環境配置文件。以ini格式存儲,管理待測交換機所屬類別,交換機產品型號、通信IP、用戶登錄等,以及網絡測試儀通信IP。
(2)測例文件。以Excel格式存儲,是一種介于文本測例和腳本測例之間的中間形態,其將每個文本測例分解成不同類型的數據,作為自動測試腳本的輸入。為便于靈活增刪數據,以列表、字典的類型存儲,包括測例名稱、測例適用的交換機產品型號、測例執行等級、測例步驟、預期結果、交換機網頁參數、網絡測試儀流量參數。這些數據組成一個中間形態的測例,多個測例組成測例文件。
(3)報告數據。以Word方式存儲,測試報告中的數據是在腳本執行過程中提取的,主要提取測例名稱、測例步驟、預期結果、實際執行的測例結果等。
1.2.2 業務邏輯層
(1)WEB接口庫?;赟elenium+WebDriver技術,以Python語言為載體,調用瀏覽器接口,發送HTTP請求和接收響應,模擬網頁手工測試,包括網頁頁面切換、網頁參數下發、網頁參數選擇、網頁參數查詢等。根據場景驅動開發的思想將不同頁面操作封裝成不同模型庫,便于復用和修改。
(2)測試儀接口庫。集成第三方網絡測試儀接口,理解并利用其接口協議和數據庫,根據場景驅動開發(Scenarios-DrivenDevelopment)的思想,將交換機測試流量封裝成不同模型庫,包括不同流量配置模型、不同流量統計模型等,便于復用和修改。
1.2.3 用戶應用層
支持自主開發腳本,支持不同腳本調度執行模式,即按序執行完所有待測用例→選擇單個或多個測例執行→重復執行測例。
2 自動測試系統實踐應用
2.1 測例數據準備
2.1.1 測例環境數據
如圖3所示,測例環境數據指的是自動測試系統中待測交換機、網絡測試儀、組網拓撲及測例管理相關的數據。數據以Python可以直接讀取的數據類型存放在Excel中,形成數據測例。為了便于自動測試腳本復用,增加了模塊化數據,實現了一個腳本可以對應多個測例。
測試環境數據分為3類:①測例,包括測例名稱、對應的模塊名、測例步驟、測試預置條件、測試預期結果。測試步驟、測試預置條件及測試預期結果以列表方式存放,便于測試報告模塊調用。②測例屬性,包括測例所屬產品線、測例所屬測試級別、測例適用產品型號。測例適用產品型號以列表方式存放,便于測例執行時調用選擇。③網絡測試儀信息,包括占用端口信息、端口發送流量數目。網絡測試儀信息以字典嵌套列表方式存放,便于測例中和測試儀的指定端口建立連接,以及指定端口發送指定流量。
2.1.2 網頁配置數據
如圖4所示,網頁配置數據指的是測例中交換機的所有配置數據,以字典的方式存儲網頁元素值。字典的key是配置參數名,value是具體配置參數的元素id。Value以列表方式存放,可解決不同測例需要配置不同的交換機參數的問題。
網頁配置數據包括交換機的VLAN功能配置數據、MAC功能配置數據、STP功能配置數據、組播功能配置數據、Qos功能配置數據等。
2.1.3 流量配置數據
如圖5所示,流量配置數據指的是網絡測試儀構建的測試流量,通過構建的測試流量下發到交換機,從而驗證交換機在不同場景不同性能下的指標是否符合預期。
每個測例需要用到的網絡測試儀端口數目不一,每個測試儀端口下的流量數目和流量內容也不同,采取列表嵌套字典的方式存放。列表中的每個元素對應一條流量,列表有幾個元素即該測例需要網絡測試儀下發幾條流量。每條流量以字典方式存放,字典的key是流量屬性,包括流量的源MAC地址、目的MAC地址、VLAN、優先級、幀長、持續時間、發送模式、發送速率等。字典的value是流量屬性值,根據測例的測試目的設置流量屬性對應的屬性值。這樣可以滿足不同測例需要用不同數目、不同內容的流量。
配合測試環境數據中的網絡測試儀信息,可以按需分配測試儀端口下的流量,以解決每個測例用到的網絡測試儀端口數目不一的問題。
測例環境數據、網頁配置數據及流量配置數據都存在Excel中,開發解析表格的程序,提取對應值給測試腳本使用。
2.2 測試腳本開發
人機交互界面導入測試環境配置文件和測例文件,選擇測試報告存儲路徑,選擇測試等級(會自動構建測試策略,按照需要的測試等級選擇測試腳本)開始執行,執行完成后會給出提示信息。
3 自動測試結果與分析
3.1 測試報告
測例全部執行完成后,會自動給出測試報告,報告中包括測例名稱、測試步驟、預期結果及實際執行結果。實際執行結果包括是否通過,以及測試流量的收發詳細情況,報告以Word方式存儲。
3.2 采集測試過程信息
為了便于對執行失敗的測例進行定位分析,或在同等配置下進行手工測試,該自動測試系統支持自動收集交換機當前配置信息,以XML方式存儲,可以直接下載到交換機恢復指定環境。此外,還支持收集測試流量信息,以XML方式存儲,可以直接在網絡測試儀加載使用。
4 結束語
變電站網絡交換機自動測試系統實現了交換機的功能和性能的自動化測試,同時可以自動輸出交換機測試報告,并采集測試過程信息,極大地提高了測試效率,降低了人力成本,并保證了測試結果的可靠性。該系統在研發測試階段和批量檢測階段均具有較高的應用價值。