張 少 迪
[1.上海電器科學(xué)研究所(集團(tuán))有限公司, 上海 200063; 2.上海市智能電網(wǎng)需求響應(yīng)重點(diǎn)實(shí)驗(yàn)室, 上海 200063]
作為我國(guó)電力需求響應(yīng)試點(diǎn)之一,國(guó)網(wǎng)上海電力公司(簡(jiǎn)稱上海公司)于2014年開始組織和開展試點(diǎn)工作。為了規(guī)范電力需求響應(yīng)系統(tǒng)建設(shè),自2018年開始按照由國(guó)家智能電網(wǎng)用戶接口標(biāo)委會(huì)(TC549)發(fā)布的電力需求響應(yīng)標(biāo)準(zhǔn)體系建設(shè)省級(jí)電力需求響應(yīng)管理平臺(tái)(簡(jiǎn)稱管理平臺(tái)),并要求負(fù)荷集成商按照國(guó)家電力行業(yè)標(biāo)準(zhǔn)DL/T 1867—2018《電力需求響應(yīng)信息交換規(guī)范》要求接入管理平臺(tái)。
DL/T 1867—2018是國(guó)家智能電網(wǎng)用戶接口標(biāo)委會(huì)(TC549)于2018年正式發(fā)布的互操作標(biāo)準(zhǔn)規(guī)范,該標(biāo)準(zhǔn)采用面向?qū)ο蟮男畔⒔7椒?具有模型抽象、應(yīng)用靈活等特點(diǎn)。在虛擬電廠運(yùn)營(yíng)商接入初期,廣泛存在對(duì)協(xié)議理解錯(cuò)誤、報(bào)文格式錯(cuò)誤等問題。為了保障管理平臺(tái)正式生產(chǎn)環(huán)境的可靠運(yùn)行,避免由于負(fù)荷集成商誤接導(dǎo)致的系統(tǒng)錯(cuò)誤,管理平臺(tái)需要設(shè)計(jì)并開發(fā)面向負(fù)荷集成商的接口功能一致性測(cè)試驗(yàn)證系統(tǒng)(簡(jiǎn)稱測(cè)試系統(tǒng))。
測(cè)試系統(tǒng)的設(shè)計(jì)需求主要包括:① 自動(dòng)化測(cè)試驗(yàn)證負(fù)荷集成商開發(fā)的接口是否符合DL/T 1867—2018的規(guī)范要求;② 針對(duì)不符合要求的負(fù)荷集成商需要提出整改建議;③ 測(cè)試結(jié)果需要同步至管理平臺(tái)的正式生產(chǎn)環(huán)境,作為負(fù)荷集成商能否接入的依據(jù)。
DL/T 1867—2018發(fā)布的時(shí)間不久,雖然有國(guó)內(nèi)對(duì)該標(biāo)準(zhǔn)的解讀[1],但是對(duì)該標(biāo)準(zhǔn)的功能一致性測(cè)試方法的研究還處于空白。對(duì)于國(guó)際上應(yīng)用廣泛的電力需求響應(yīng)信息交換規(guī)范——開放式自動(dòng)需求響應(yīng)[2],已經(jīng)開展了標(biāo)準(zhǔn)一致性測(cè)試的研究,如文獻(xiàn)[3]從一致性測(cè)試的理論角度以及開放式自動(dòng)需求響應(yīng)的信息模型給出測(cè)試的方法,但是缺少對(duì)測(cè)試系統(tǒng)實(shí)現(xiàn)的描述,尤其是在如何解決測(cè)試用例增加而無需程序重構(gòu)方面缺少論述。微服務(wù)架構(gòu)[4]是近期流行的軟件架構(gòu),可以通過組建的方式實(shí)現(xiàn)靈活開發(fā)和部署,已經(jīng)在電力行業(yè)開展應(yīng)用[5]。本文探索基于主流微服務(wù)架構(gòu)的測(cè)試系統(tǒng)解決方案。
本文組合微服務(wù)框架下的服務(wù)注冊(cè)組件、服務(wù)調(diào)用組件、流程引擎、服務(wù)跟蹤組件、網(wǎng)關(guān)安全組件,并使用容器管理工具劃分網(wǎng)絡(luò)并容器化部署數(shù)據(jù)庫(kù)服務(wù)端等。測(cè)試系統(tǒng)微服務(wù)架構(gòu)如圖1所示。
圖1 測(cè)試系統(tǒng)微服務(wù)架構(gòu)
(1) 服務(wù)注冊(cè)與發(fā)現(xiàn)組件:組合應(yīng)用服務(wù)注冊(cè)組件和服務(wù)調(diào)用組件,其中服務(wù)注冊(cè)組件可分為服務(wù)端和客戶端,服務(wù)端利用docker單獨(dú)部署,客戶端與測(cè)試程序捆綁,在測(cè)試程序中加入服務(wù)調(diào)用組件依賴,實(shí)現(xiàn)對(duì)接口服務(wù)的注冊(cè)和發(fā)現(xiàn)。
(2) 測(cè)試入口:應(yīng)用網(wǎng)關(guān)組件,一方面對(duì)外屏蔽測(cè)試系統(tǒng)內(nèi)部的各個(gè)服務(wù)和接口,另一方面增加傳輸層安全加密,實(shí)現(xiàn)對(duì)經(jīng)密鑰授權(quán)的待測(cè)系統(tǒng)加密接入。
(3) 測(cè)試流程引擎:采用自動(dòng)化測(cè)試流程,組合應(yīng)用流程引擎組件和工作調(diào)度組件實(shí)現(xiàn)基于時(shí)間序列的自動(dòng)化測(cè)試,并利用sleuth進(jìn)行服務(wù)追蹤,實(shí)現(xiàn)對(duì)驗(yàn)證失敗的實(shí)時(shí)追蹤并記錄。
(4) 容器化數(shù)據(jù)庫(kù):為了實(shí)現(xiàn)待測(cè)系統(tǒng)的歷史查詢,對(duì)待測(cè)系統(tǒng)的測(cè)試流程數(shù)據(jù)進(jìn)行完整記錄,采用非結(jié)構(gòu)化數(shù)據(jù)庫(kù),并利用容器管理工具容器化部署。
測(cè)試流程引擎是整個(gè)管理平臺(tái)測(cè)試系統(tǒng)的核心組成部分,對(duì)待測(cè)系統(tǒng)的接入能力進(jìn)行全方位的測(cè)試和驗(yàn)證,采用有限狀態(tài)機(jī)技術(shù)設(shè)計(jì)測(cè)試引擎。有限狀態(tài)機(jī)技術(shù)是對(duì)復(fù)雜系統(tǒng)功能進(jìn)行分解的重要手段,在測(cè)試流程引擎的設(shè)計(jì)方面,通常包含有限個(gè)狀態(tài),即當(dāng)有信號(hào)輸入時(shí),會(huì)推動(dòng)狀態(tài)轉(zhuǎn)移并產(chǎn)生對(duì)應(yīng)的輸出信號(hào),從而實(shí)現(xiàn)測(cè)試流程的自動(dòng)化進(jìn)行。有限狀態(tài)機(jī)通常包括輸入輸出集合、狀態(tài)集合、狀態(tài)初始值等,通過狀態(tài)機(jī)進(jìn)行狀態(tài)轉(zhuǎn)移表示。對(duì)于自動(dòng)化測(cè)試需求,可以針對(duì)DL/T 1867—2018中的UN角色采用有限狀態(tài)機(jī)模型進(jìn)行描述。測(cè)試狀態(tài)機(jī)如圖2所示。
圖2 測(cè)試狀態(tài)機(jī)
對(duì)于DL/T 1867—2018規(guī)定的五種信息交換模型,即輪詢、注冊(cè)、報(bào)告、事件和選擇,測(cè)試系統(tǒng)用例庫(kù)設(shè)計(jì)九個(gè)測(cè)試用例涵蓋這五種信息交換模型,每種測(cè)試用例都需要配套相關(guān)規(guī)定作為測(cè)試驗(yàn)證是否通過的標(biāo)準(zhǔn),只有所有用例都通過標(biāo)準(zhǔn),才能夠驗(yàn)證通過。這九個(gè)測(cè)試用例的內(nèi)容和標(biāo)準(zhǔn)如表1所示。
表1 測(cè)試用例內(nèi)容及標(biāo)準(zhǔn)
本文用例庫(kù)設(shè)計(jì)規(guī)則滿足待測(cè)系統(tǒng)/設(shè)備互聯(lián)測(cè)試需求,在保障待測(cè)系統(tǒng)/設(shè)備一致性測(cè)試設(shè)計(jì)完整性、規(guī)范性及適用性的前提下,滿足各種場(chǎng)景下需求響應(yīng)業(yè)務(wù)測(cè)試需求。針對(duì)多級(jí)聚合服務(wù)于差異化接口的測(cè)試需求,實(shí)現(xiàn)測(cè)試通信層及功能層邏輯框架的分層設(shè)計(jì),然后擬定用例架構(gòu)及用例模型,根據(jù)測(cè)試目標(biāo)中的測(cè)試需求提取共性及特性用例集,最后采用啟發(fā)式算法、規(guī)劃算法等構(gòu)建滿足不同測(cè)試需求形成復(fù)雜業(yè)務(wù)測(cè)試用例庫(kù)。狀態(tài)機(jī)和用例庫(kù)的一致性測(cè)試方法邏輯框圖如圖3所示。
圖3 一致性測(cè)試方法邏輯圖
在考慮動(dòng)態(tài)特性測(cè)試過程的設(shè)計(jì)中,按照ISO/IEC 9646《開放系統(tǒng)互聯(lián):一致性測(cè)試方法》的技術(shù)要求,待測(cè)系統(tǒng)應(yīng)提供協(xié)議實(shí)現(xiàn)的一致性聲明(PICS)和協(xié)議實(shí)現(xiàn)聲明(PIXIT)。其中一致性聲明主要描述待測(cè)協(xié)議所具有的功能,在測(cè)試過程中用于比較一致性要求,已完成靜態(tài)一致性檢查過程;實(shí)現(xiàn)聲明提供協(xié)議參數(shù),如通信能力等測(cè)試需要的參數(shù)?;谏鲜隹紤]本文設(shè)計(jì)的測(cè)試過程如圖4所示。
圖4 測(cè)試過程
設(shè)計(jì)進(jìn)行連接測(cè)試、能力測(cè)試以及行為測(cè)試。其中連接測(cè)試指的是待測(cè)系統(tǒng)的連接能力,即是否能夠完成基本的信息交互過程;能力測(cè)試是用來確定待測(cè)系統(tǒng)可觀察到的能力,如報(bào)文能否正確解析、能夠按規(guī)范進(jìn)行時(shí)序交互以及對(duì)主站指令相應(yīng)正確性等,需要與一致性測(cè)試聲明相比較;行為測(cè)試是將測(cè)試集輸入到待測(cè)系統(tǒng)中,完成一致性測(cè)試,并分析測(cè)試結(jié)果給出結(jié)論。
測(cè)試系統(tǒng)與管理平臺(tái)位于同一公網(wǎng)IP,但是不同端口,待測(cè)系統(tǒng)可以通過互聯(lián)網(wǎng)直接連接測(cè)試系統(tǒng),進(jìn)入功能一致性測(cè)試與驗(yàn)證。為了能夠全方位驗(yàn)證待測(cè)系統(tǒng)的接口功能,按照測(cè)試流程安排測(cè)試時(shí)序,測(cè)試系統(tǒng)時(shí)序如表2所示。
表2 測(cè)試系統(tǒng)時(shí)序
待測(cè)系統(tǒng)需要對(duì)時(shí)序中每個(gè)步驟做出準(zhǔn)確響應(yīng),才能通過測(cè)試驗(yàn)證,一旦響應(yīng)錯(cuò)誤都會(huì)進(jìn)行記錄。
本文提出的測(cè)試系統(tǒng)部署在上海市需求響應(yīng)管理平臺(tái)的虛擬映射端口上,上海市負(fù)荷集成商在接入省級(jí)管理平臺(tái)之前都需要通過該測(cè)試系統(tǒng)進(jìn)行驗(yàn)證,截至目前已經(jīng)有三家負(fù)荷集成商通過測(cè)試驗(yàn)證,在測(cè)試過程中也經(jīng)歷過錯(cuò)誤和改進(jìn),本文選取一些典型的測(cè)試錯(cuò)誤結(jié)果,測(cè)試系統(tǒng)實(shí)例如表3所示。
表3 測(cè)試系統(tǒng)實(shí)例
負(fù)荷集成商可以在線反復(fù)進(jìn)行測(cè)試,測(cè)試通過后會(huì)在測(cè)試系統(tǒng)中留下標(biāo)記,當(dāng)正式接入管理平臺(tái)前,管理平臺(tái)會(huì)查詢?cè)摌?biāo)記,只有標(biāo)記通過的才能夠正式接入。負(fù)荷集成商在測(cè)試過程中逐步發(fā)現(xiàn)接口開發(fā)中的缺陷,通過改進(jìn)完成驗(yàn)證。
本文立足于負(fù)荷集成商在按照電力行標(biāo)DL/T 1867—2018接入上海市需求響應(yīng)管理平臺(tái)應(yīng)用場(chǎng)景,針對(duì)負(fù)荷集成商接口開發(fā)亂象造成的管理平臺(tái)系統(tǒng)風(fēng)險(xiǎn),提出一種基于微服務(wù)架構(gòu)的自動(dòng)化功能一致性測(cè)試驗(yàn)證方法,通過測(cè)試架構(gòu)設(shè)計(jì)、流程設(shè)計(jì)和測(cè)試報(bào)告設(shè)計(jì),準(zhǔn)確測(cè)試出待測(cè)系統(tǒng)的接口錯(cuò)誤并給出直接整改建議。通過實(shí)際測(cè)試表明,可以大大減少管理平臺(tái)系統(tǒng)風(fēng)險(xiǎn),幫助負(fù)荷集成商完善接口開發(fā),在實(shí)際的電力需求響應(yīng)試點(diǎn)中成為必不可少的輔助工具。