之前的《工控防火墻測(cè)試之性能篇》、《工控防火墻測(cè)試之功能篇_Fuzzing測(cè)試》兩篇文章已經(jīng)跟大家分享了工控網(wǎng)絡(luò)設(shè)備的功能測(cè)試和性能測(cè)試,今天跟大家分享下產(chǎn)品級(jí)質(zhì)量保證的另一個(gè)重要環(huán)節(jié),穩(wěn)定性測(cè)試。
穩(wěn)定性測(cè)試在產(chǎn)品級(jí)質(zhì)量保證中具有重要的意義,穩(wěn)定性測(cè)試的充分與否將直接影響產(chǎn)品在客戶現(xiàn)場(chǎng)的運(yùn)行表現(xiàn)。只有在未交付客戶前對(duì)設(shè)備進(jìn)行長(zhǎng)期的、充分的穩(wěn)定性測(cè)試,才能讓我們對(duì)設(shè)備的功能執(zhí)行情況和穩(wěn)定性有個(gè)快速、感性的認(rèn)知。
通常的穩(wěn)定性測(cè)試過程中存在著針對(duì)性不強(qiáng),并且缺乏對(duì)整個(gè)過程的量化。本篇文章就站在工程實(shí)踐的角度,來有針對(duì)性地對(duì)工控網(wǎng)絡(luò)硬件設(shè)備進(jìn)行穩(wěn)定性測(cè)試,并且量化整個(gè)測(cè)試過程。
在本文中,我們將產(chǎn)品級(jí)的穩(wěn)定性分解成3部分,硬件、操作系統(tǒng)、應(yīng)用程序(我們的主程序),這三大方面的穩(wěn)定性。
三方面穩(wěn)定性
硬件的穩(wěn)定性:主要涵蓋CPU、PCB板、閃存卡、網(wǎng)卡。具體測(cè)試點(diǎn)包含:
1)CPU溫度;
2)PCB溫度;
3)閃存卡讀寫壽命;
4)網(wǎng)卡大量收發(fā)包;
5)網(wǎng)卡PHY芯片溫度。
操作系統(tǒng)的穩(wěn)定性:
1)CPU的分配使用;
2)內(nèi)存使用
應(yīng)用主程序的穩(wěn)定性(業(yè)務(wù)面):
1)CPU資源申請(qǐng);
2)內(nèi)存資源申請(qǐng);
3)CPU資源釋放
4)內(nèi)存資源釋放;
5)crash監(jiān)控;
6)主進(jìn)程重啟監(jiān)控;
應(yīng)用主程序管理面的穩(wěn)定性
管理連接監(jiān)控
一、“硬件穩(wěn)定性”具體的測(cè)試思路及執(zhí)行
1.Python自動(dòng)化腳本,構(gòu)造、發(fā)送大量CPU密集型報(bào) 文:分片報(bào)文(普通IP分片)
2.CPU在長(zhǎng)時(shí)間轉(zhuǎn)發(fā)分片報(bào)文的過程中,CPU溫度會(huì)被打上去;
3.網(wǎng)卡長(zhǎng)時(shí)間、高速轉(zhuǎn)發(fā)報(bào)文,其轉(zhuǎn)發(fā)報(bào)文數(shù)可以被直觀地驗(yàn)證;PCB網(wǎng)卡PHY芯片溫度也會(huì)被打上去!
4.CPU溫度、網(wǎng)卡PHY芯片溫度的快速升高會(huì)帶動(dòng)環(huán)境溫度上升;
5.配置具體業(yè)務(wù)流觸發(fā)大量閃存卡讀寫操作,對(duì)比閃存卡實(shí)際讀寫次數(shù)與標(biāo)稱壽命;
6.使用python腳本自動(dòng)記錄CPU溫度數(shù)值;
7.使用python腳本自動(dòng)記錄PHY芯片溫度數(shù)值;
8.使用python腳本自動(dòng)記錄PCB溫度數(shù)值;
9.使用python腳本自動(dòng)記錄網(wǎng)卡收發(fā)包數(shù)量
10.使用python腳本分別畫出CPU溫度、PHY芯片溫度、PCB溫度的曲線圖,可以直觀地分析溫度增長(zhǎng)是否是符合線性預(yù)期;最高值是否符合預(yù)期。
CPU溫度監(jiān)控曲線圖:

網(wǎng)卡發(fā)包曲線圖:

二、“主程序穩(wěn)定性”具體的測(cè)試思路及執(zhí)行
1.Python自動(dòng)化腳本,構(gòu)造、發(fā)送大量CPU密集型報(bào)文:分片報(bào)文(普通IP分片)+ 業(yè)務(wù)層分片報(bào)文(Modbus報(bào)文分片、IEC報(bào)文分片、DNP3報(bào)文分片、S7報(bào)文分片、Fins報(bào)文分片、Profinet報(bào)文分片等。),讓主程序去向操作系統(tǒng)申請(qǐng)大量CPU資源和內(nèi)存資源,把CPU使用率和內(nèi)存使用率打上去;
2.使用Python自動(dòng)化腳本,對(duì)步驟1中設(shè)備的主程序向操作系統(tǒng)申請(qǐng)CPU資源和內(nèi)存資源的過程進(jìn)行全程跟蹤、記錄;
3.使用Python自動(dòng)化腳本,分別對(duì)步驟2中記錄的CPU使用率和內(nèi)存使用率進(jìn)行圖表繪制,可以直觀地看出資源的申請(qǐng)使用是否線性化,最高值是否超出預(yù)期;
4.使用Python自動(dòng)化腳本對(duì)CPU資源釋放、內(nèi)存資源釋放進(jìn)行全程跟蹤、記錄并畫圖曲線展示,以直觀地驗(yàn)證主程序在進(jìn)行CPU和內(nèi)存的資源釋放時(shí)也是線性的,不會(huì)有導(dǎo)致crash和重啟的風(fēng)險(xiǎn);
5.使用Python自動(dòng)化腳本全程記錄在打CPU資源和內(nèi)存資源過程中,設(shè)備是否發(fā)生了crash。如果發(fā)生,自動(dòng)化腳本會(huì)捕獲該事件,并且自動(dòng)記錄發(fā)生crash的日期時(shí)間、crash了幾次和crash文件的名稱;同時(shí)會(huì)自動(dòng)向相關(guān)人員發(fā)送郵件通報(bào)這一事件。
6. 使用Python自動(dòng)化腳本全程記錄在打CPU資源和內(nèi)存資源過程中,應(yīng)用主程序是否發(fā)生了重啟。如果發(fā)生會(huì)自動(dòng)向相關(guān)人員發(fā)送郵件通報(bào)這一事件。
內(nèi)存使用率和CPU使用率監(jiān)控曲線圖:

內(nèi)存資源釋放和CPU資源釋放(即泄洪時(shí))監(jiān)控曲線圖:

三、“系統(tǒng)穩(wěn)定性”具體的測(cè)試思路及執(zhí)行
為了驗(yàn)證操作系統(tǒng)的穩(wěn)定性,可以在進(jìn)行“主程序穩(wěn)定性”過程中,制造些“異常”場(chǎng)景或事件去導(dǎo)致操作系統(tǒng)的CPU和內(nèi)存使用飆升,然后去驗(yàn)證“系統(tǒng)穩(wěn)定性”及對(duì)我方主程序穩(wěn)定性及功能的影響。
具體為:
1.按照“主程序”穩(wěn)定性中描述的使用Python自動(dòng)化腳本打CPU資源和內(nèi)存資源;
2.使用Python自動(dòng)化腳本每隔30秒去ssh到系統(tǒng),但是不要關(guān)閉連接。這樣,在大概30-60分鐘內(nèi)系統(tǒng)的CPU資源就會(huì)被打到95%以上。
實(shí)際測(cè)試結(jié)果,在這種情形下,我們的系統(tǒng)會(huì)把占用CPU過多的SSH連接殺掉,此時(shí)自動(dòng)化腳本將不能繼續(xù)進(jìn)行SSH連接,系統(tǒng)的CPU使用率迅速回到異常前水平。
同時(shí)我們的主程序在這種CPU資源極限條件下沒有發(fā)生crash和重啟,功能也正常執(zhí)行。
四、“主程序管理面的穩(wěn)定性”
1.使用Python自動(dòng)化腳本發(fā)送大量能夠觸發(fā)業(yè)務(wù)流的報(bào)文
2.使用Python腳本監(jiān)控是否有與管理面連接無法建立的情況,包括設(shè)計(jì)規(guī)格內(nèi)和超出設(shè)計(jì)規(guī)格的場(chǎng)景,超出設(shè)計(jì)規(guī)格流量停止后應(yīng)該可以自愈。如果有發(fā)生上下線的情況自動(dòng)發(fā)送郵件通知。
3.業(yè)務(wù)流數(shù)據(jù)傳輸時(shí)的自動(dòng)監(jiān)控
管理面數(shù)據(jù)傳輸監(jiān)控曲線圖:

采用本自動(dòng)化穩(wěn)定性測(cè)試方案的好處:
1.可以在項(xiàng)目推進(jìn)過程中,與功能測(cè)試并行進(jìn)行,提前暴露、發(fā)現(xiàn)嚴(yán)重的問題(多為與CPU、內(nèi)存分配使用、回收及設(shè)備crash相關(guān))。
2.可以實(shí)現(xiàn)無人值守,測(cè)試是在自動(dòng)化部署中進(jìn)行,并且有自動(dòng)化跟蹤步驟,如果出現(xiàn)問題會(huì)第一時(shí)間通知開發(fā)和測(cè)試人員,第一時(shí)間定位問題,第一時(shí)間解決問題!
下班和周末時(shí)間都可以連續(xù)不中斷運(yùn)行!
結(jié)合自動(dòng)化對(duì)穩(wěn)定性進(jìn)行高效的、充分的、高強(qiáng)度的測(cè)試,可以讓我們對(duì)自己產(chǎn)品的實(shí)際運(yùn)行狀況有了整體、可量化的認(rèn)知,也對(duì)產(chǎn)品在客戶現(xiàn)場(chǎng)能夠長(zhǎng)時(shí)間、穩(wěn)定運(yùn)行有了充足的信心!同時(shí),也為后期進(jìn)行的壓力測(cè)試奠定了良好的測(cè)試基礎(chǔ)。
北京威努特技術(shù)有限公司(以下簡(jiǎn)稱“威努特”), 是國(guó)內(nèi)工控網(wǎng)絡(luò)安全領(lǐng)軍企業(yè)、全球六家榮獲國(guó)際自動(dòng)化協(xié)會(huì)安全合規(guī)學(xué)會(huì)ISASecure CRT Tool認(rèn)證企業(yè)之一和亞太地區(qū)唯一國(guó)際自動(dòng)化學(xué)會(huì)(ISA)全球網(wǎng)絡(luò)安全聯(lián)盟(GCA)創(chuàng)始成員。
威努特作為國(guó)家高新技術(shù)企業(yè),以創(chuàng)新的“白環(huán)境”整體解決方案為核心,自主研發(fā)了5大類30款全系列網(wǎng)絡(luò)安全專用產(chǎn)品,擁有64項(xiàng)發(fā)明專利、64項(xiàng)軟件著作權(quán)、70項(xiàng)原創(chuàng)漏洞證明等核心知識(shí)產(chǎn)權(quán)。積極牽頭和參與工控網(wǎng)絡(luò)安全領(lǐng)域國(guó)家、行業(yè)標(biāo)準(zhǔn)制定,受邀出色完成新中國(guó)70周年慶典、中共十九大、全國(guó)兩會(huì)等重大活動(dòng)的網(wǎng)絡(luò)安保任務(wù),被授予“國(guó)家重大活動(dòng)網(wǎng)絡(luò)安保技術(shù)支持單位”,得到了中央網(wǎng)信辦、公安部、工信部等國(guó)家政府部門的高度認(rèn)可。迄今已成功為電力、軌道交通、石油石化、軍工、煙草、市政、智能制造、冶金等國(guó)家重要行業(yè)1000多家工業(yè)企業(yè)提供了全面有效的安全保障。
威努特始終以“專注工控,捍衛(wèi)安全”為使命,致力于為我國(guó)關(guān)鍵信息基礎(chǔ)設(shè)施網(wǎng)絡(luò)空間安全保駕護(hù)航!