絡(luò)切片資源隔離性驗(yàn)證:測(cè)試框架設(shè)計(jì)與pytest自動(dòng)化實(shí)踐)
去年做運(yùn)營(yíng)商5G專網(wǎng)驗(yàn)證項(xiàng)目時(shí)客戶提了一個(gè)相當(dāng)?shù)筱@的需求兩個(gè)網(wǎng)絡(luò)切片必須做到“絕對(duì)隔離”而且要用數(shù)據(jù)證明不能拍腦袋。場(chǎng)景是工業(yè)園區(qū)混合組網(wǎng)自動(dòng)化產(chǎn)線走uRLLC切片辦公區(qū)刷視頻走eMBB切片??蛻糇顡?dān)心的是一個(gè)員工刷4K視頻會(huì)不會(huì)把機(jī)械臂的控制時(shí)延從5ms拉到30ms。這個(gè)問題一聽很簡(jiǎn)單真正驗(yàn)證起來卻牽引出一整套測(cè)試框架的設(shè)計(jì)問題。這篇內(nèi)容就把“5G網(wǎng)絡(luò)切片資源隔離性驗(yàn)證的測(cè)試框架與方法”完整拆開講從隔離性到底測(cè)什么、指標(biāo)怎么定到為什么選擇pytest作為自動(dòng)化測(cè)試框架支撐整套驗(yàn)證流程再到用例設(shè)計(jì)、腳本實(shí)現(xiàn)和實(shí)戰(zhàn)中踩過的坑。適合在運(yùn)營(yíng)商、設(shè)備商或第三方測(cè)試機(jī)構(gòu)做5G端到端測(cè)試的同學(xué)參考也適合剛?cè)胄邢胂到y(tǒng)理解切片驗(yàn)證全流程的通信工程師閱讀。本文不談太多3GPP協(xié)議標(biāo)準(zhǔn)條文重點(diǎn)放在“測(cè)試這件事具體怎么做才能拿到可信結(jié)果”畢竟客戶只看最終交付的測(cè)試報(bào)告。1. 網(wǎng)絡(luò)切片資源隔離性到底是什么1.1 切片資源隔離的三層含義網(wǎng)絡(luò)切片Network Slicing本質(zhì)上是在同一張物理5G網(wǎng)絡(luò)上用虛擬化方式切分出多張邏輯網(wǎng)絡(luò)每張邏輯網(wǎng)絡(luò)按需分配無線資源、承載資源和核心網(wǎng)資源服務(wù)不同業(yè)務(wù)。3GPP把典型場(chǎng)景分成三大類eMBB增強(qiáng)移動(dòng)寬帶視頻、AR/VR、uRLLC超可靠低時(shí)延通信工業(yè)控制、遠(yuǎn)程駕駛和mMTC海量機(jī)器連接智能抄表、傳感器。每個(gè)切片對(duì)應(yīng)一個(gè)S-NSSAI標(biāo)識(shí)其中SST字段標(biāo)明切片類型SD字段用來區(qū)分同一類型下的不同切片實(shí)例。剛接觸切片項(xiàng)目時(shí)團(tuán)隊(duì)最容易犯的錯(cuò)是把“隔離性”當(dāng)成一個(gè)整體概念去討論。實(shí)際拆開來看資源隔離性至少包含三層性能隔離當(dāng)某個(gè)切片負(fù)載升高時(shí)另一個(gè)切片的性能指標(biāo)吞吐量、時(shí)延、丟包率不會(huì)發(fā)生不可接受的劣化。比如eMBB切片流量跑滿時(shí)uRLLC切片的P99時(shí)延依然達(dá)標(biāo)。故障隔離某個(gè)切片內(nèi)部出現(xiàn)擁塞、信令風(fēng)暴甚至代碼缺陷導(dǎo)致容器崩潰時(shí)其他切片不受波及仍能正常建立PDU會(huì)話和轉(zhuǎn)發(fā)數(shù)據(jù)。安全隔離切片A的用戶無法訪問切片B的用戶面數(shù)據(jù)或控制面信息數(shù)據(jù)通道、接口地址、服務(wù)化接口之間互相不可達(dá)。打個(gè)比方切片就像同一棟樓里的幾部電梯。性能隔離是說樓上某家公司裝修占著貨梯你的客梯照樣能在合理時(shí)間內(nèi)到達(dá)故障隔離是說貨梯壞了不能把客梯也拖停安全隔離是說貨梯里運(yùn)送的物品走客梯的人不能順手拿走。三件事看著相關(guān)但驗(yàn)證方法和結(jié)論完全不同測(cè)試報(bào)告里不能混為一談。1.2 隔離性驗(yàn)證的業(yè)務(wù)價(jià)值切片隔離性直接決定運(yùn)營(yíng)商敢不敢把不同SLA要求的客戶塞進(jìn)同一張物理網(wǎng)絡(luò)。一個(gè)園區(qū)里一邊是uRLLC切片承載自動(dòng)化產(chǎn)線時(shí)延要求5ms以內(nèi)一邊是eMBB切片供辦公人員刷視頻。如果兩者資源隔離沒做透一個(gè)員工刷4K視頻就可能讓機(jī)械臂的控制時(shí)延從5ms飆到30ms。這還不是“網(wǎng)絡(luò)卡一點(diǎn)”的問題。對(duì)工業(yè)客戶來說30ms時(shí)延意味著一個(gè)工藝循環(huán)的時(shí)間窗口錯(cuò)過整條產(chǎn)線的控制指令失效設(shè)備進(jìn)入安全急停廢掉一批工件。運(yùn)營(yíng)商在切片售前方案里承諾了99.999%的可靠性交付時(shí)就要拿出實(shí)測(cè)數(shù)據(jù)證明這個(gè)承諾在混合負(fù)載條件下依然成立。所以從業(yè)務(wù)視角看資源隔離性驗(yàn)證的本質(zhì)是在驗(yàn)證“運(yùn)營(yíng)商對(duì)客戶的SLA承諾是否可被證明”?,F(xiàn)在集團(tuán)客戶招標(biāo)明確要求提供切片隔離性驗(yàn)證報(bào)告組網(wǎng)方案不是畫個(gè)架構(gòu)圖就能通過要有實(shí)測(cè)數(shù)據(jù)作為支撐。這個(gè)趨勢(shì)在5G組網(wǎng)與運(yùn)維相關(guān)競(jìng)賽和功能驗(yàn)證需求里也越來明顯。1.3 隔離性驗(yàn)證的技術(shù)難點(diǎn)理論上一套切片方案可以講得天花亂墜真正執(zhí)行驗(yàn)證時(shí)會(huì)發(fā)現(xiàn)難點(diǎn)不在“怎么配置”而在“怎么證明”。第一個(gè)難點(diǎn)是無線側(cè)資源共享下的隔離不可控??湛谫Y源本質(zhì)上共享即使給每個(gè)切片劃分不同PRB集合調(diào)度優(yōu)先級(jí)、信道變化、MCS調(diào)制等級(jí)變化依然會(huì)帶來性能互擾。第二個(gè)難點(diǎn)是端到端資源有多層聯(lián)動(dòng)。RAN側(cè)調(diào)度、承載網(wǎng)轉(zhuǎn)發(fā)、核心網(wǎng)UPF隊(duì)列任何一個(gè)環(huán)節(jié)資源受限都會(huì)傳導(dǎo)成隔離性劣化問題定位時(shí)很難一刀切。第三個(gè)難點(diǎn)是測(cè)試環(huán)境難復(fù)現(xiàn)。無線信道條件每天不同同一套測(cè)試場(chǎng)景跑三天數(shù)據(jù)可能差一個(gè)量級(jí)結(jié)論就不可信。這些難點(diǎn)決定了必須有一套可重復(fù)、可量化、可自動(dòng)化執(zhí)行的測(cè)試框架靠“登錄網(wǎng)管看看計(jì)數(shù)”這種方式下結(jié)論客戶是不可能簽字的。2. 測(cè)試框架整體設(shè)計(jì)與工具選型2.1 被測(cè)對(duì)象分層與測(cè)試范圍設(shè)計(jì)框架前先把被測(cè)對(duì)象拆開。端到端切片的資源隔離涉及下面幾層無線接入網(wǎng)RAN層gNB調(diào)度器如何在不同切片間分配PRB切片級(jí)QoS調(diào)度策略是否生效小區(qū)級(jí)的資源預(yù)留是否到位。承載網(wǎng)層FlexE硬隔離管道是否真正實(shí)現(xiàn)物理帶寬隔離SRv6軟隔離在擁塞時(shí)是否按優(yōu)先級(jí)保證目標(biāo)切片。核心網(wǎng)用戶面UPF的轉(zhuǎn)發(fā)資源、隊(duì)列調(diào)度、限速策略。這是流量匯聚和轉(zhuǎn)發(fā)的咽喉也是最容易暴露隔離短板的地方。核心網(wǎng)控制面AMF和SMF對(duì)切片實(shí)例的選擇邏輯、信令處理能力、切片內(nèi)信令風(fēng)暴是否影響其他切片。切片管理面NSMF/NSSMF編排配置的正確性和下發(fā)一致性。實(shí)際項(xiàng)目中多數(shù)驗(yàn)證工作集中在RAN側(cè)和UPF層。原因很簡(jiǎn)單這兩個(gè)位置是用戶面數(shù)據(jù)真正經(jīng)過的路徑也是資源最容易爭(zhēng)搶的地方??刂泼婀芾砻娴母綦x驗(yàn)證多為功能驗(yàn)證和編排一致性校驗(yàn)很少做大規(guī)模壓力測(cè)試。測(cè)試框架在規(guī)劃時(shí)要明確“分層測(cè)”和“端到端測(cè)”兩套視角分層測(cè)用來定位問題端到端測(cè)用來證明客戶關(guān)心的最終SLA。2.2 自動(dòng)化框架選型為什么選擇pytest自動(dòng)化框架選型在團(tuán)隊(duì)內(nèi)部有過爭(zhēng)論。有些人建議沿用Java接口自動(dòng)化測(cè)試框架理由是網(wǎng)元南向接口多用RESTCONF、NETCONF、gRPCJava生態(tài)成熟。最后還是選了pytest為主體的Python框架核心原因有四個(gè)。第一pytest的fixture機(jī)制非常適合測(cè)試前置準(zhǔn)備和環(huán)境清理。切片測(cè)試的每一項(xiàng)用例都需要“配置切片參數(shù)-建立會(huì)話-打流-采集-清理”fixture可以把這個(gè)流程固化成模塊級(jí)或類級(jí)依賴避免用例耦合。第二parametrize參數(shù)化能力讓多負(fù)載等級(jí)、多切片組合的用例展開變得極其簡(jiǎn)潔。一個(gè)干擾等級(jí)從0到100%的測(cè)試用參數(shù)化一次性聲明代碼量只是原來的幾分之一。第三pytest的mark標(biāo)記機(jī)制方便做用例分類。冒煙用例、回歸用例、長(zhǎng)時(shí)間穩(wěn)定性用例可以靈活編排跑測(cè)試時(shí)用-m參數(shù)選擇執(zhí)行范圍不跑廢時(shí)間的用例。第四Python本身在數(shù)據(jù)分析和對(duì)接開源工具鏈上有天然優(yōu)勢(shì)。流量發(fā)生器、抓包工具、網(wǎng)管北向接口的SDK大量支持Python寫測(cè)試腳本時(shí)不用來回切語言。通信測(cè)試工程師會(huì)Python已經(jīng)成為基本能力團(tuán)隊(duì)上手成本低后續(xù)維護(hù)也更順。2.3 系統(tǒng)架構(gòu)與關(guān)鍵組件整套測(cè)試框架按邏輯分層可以拆成這樣流量發(fā)生器商用儀表可用Spirent或IXIA開源方案可用TRex、DPDK-pktgen。用于向目標(biāo)切片和干擾切片發(fā)送可控的流量模型。終端模擬器模擬多個(gè)UE接入不同切片驗(yàn)證真實(shí)用戶會(huì)話下的隔離表現(xiàn)。探針與采集器通過交換機(jī)鏡像端口抓包或通過網(wǎng)元Telemetry接口周期性讀取性能計(jì)數(shù)也可以直接用NetFlow/IPFIX取流量特征。控制與編排腳本層Pythonpytest負(fù)責(zé)調(diào)度流量發(fā)生器、下發(fā)切片配置、執(zhí)行測(cè)試用例、匯總結(jié)果。結(jié)果報(bào)告層pytest-html生成HTML測(cè)試報(bào)告自定義summary腳本輸出指標(biāo)趨勢(shì)Excel。系統(tǒng)連接關(guān)系上流量發(fā)生器端口接到gNB回傳接口或核心網(wǎng)UPF的N3/N6口探針通過交換機(jī)鏡像口觀察QoS Flow的速率和時(shí)延控制腳本通過網(wǎng)絡(luò)管理北向接口下發(fā)切片參數(shù)和策略。整個(gè)框架形成“編排-執(zhí)行-采集-分析”的閉環(huán)人可以從中解放出來只做結(jié)果判斷和異常介入。這套架構(gòu)的優(yōu)勢(shì)是每一層都可以替換。今天用商用儀表明天換開源TRex不需要?jiǎng)幽_本主體。探針側(cè)同理今天抓包明天讀Telemetry采集層做一個(gè)適配封裝即可。框架穩(wěn)定是長(zhǎng)期跑穩(wěn)定性測(cè)試的前提這一點(diǎn)后面會(huì)反復(fù)強(qiáng)調(diào)。3. 核心測(cè)試指標(biāo)與用例設(shè)計(jì)3.1 五大核心指標(biāo)的定義與計(jì)算公式資源隔離性驗(yàn)證必須有量化指標(biāo)不然報(bào)告沒說服力。測(cè)試中我們主要關(guān)注以下指標(biāo)指標(biāo)定義測(cè)量方式典型判據(jù)吞吐量目標(biāo)切片在穩(wěn)定狀態(tài)下用戶面可達(dá)速率流量發(fā)生器收包統(tǒng)計(jì)達(dá)到規(guī)劃帶寬的90%以上平均時(shí)延UE到UPF出口的報(bào)文單向時(shí)延打時(shí)間戳或探針抓包計(jì)算基線值的1.5倍以內(nèi)P99時(shí)延99%分位時(shí)延全量報(bào)文時(shí)延排序uRLLC切片有硬性要求抖動(dòng)相鄰報(bào)文的時(shí)延差變化RFC1889抖動(dòng)算法基線值2倍以內(nèi)丟包率丟失報(bào)文與總發(fā)送報(bào)文的比值儀表統(tǒng)計(jì)數(shù)據(jù)低于0.1%除以這些基礎(chǔ)指標(biāo)外還有一個(gè)更關(guān)鍵的合成指標(biāo)性能衰減率。計(jì)算公式為性能衰減率 無干擾時(shí)目標(biāo)切片性能 - 有干擾時(shí)目標(biāo)切片性能/ 無干擾時(shí)目標(biāo)切片性能 × 100%這個(gè)指標(biāo)直接衡量隔離效果。我們?cè)陧?xiàng)目里定的判據(jù)是目標(biāo)切片在干擾切片滿載時(shí)衰減率小于5%認(rèn)為隔離良好5%到10%認(rèn)為可以接受但需要優(yōu)化超過15%直接判定不達(dá)標(biāo)打回網(wǎng)絡(luò)優(yōu)化團(tuán)隊(duì)重新調(diào)整資源策略。不同行業(yè)客戶對(duì)這個(gè)閾值的接受度不一樣工業(yè)客戶通常要求比消費(fèi)客戶嚴(yán)格得多。還有一個(gè)容易被忽略的指標(biāo)恢復(fù)時(shí)間。當(dāng)干擾撤掉后目標(biāo)切片性能返回基線水平所需的時(shí)間。這個(gè)指標(biāo)反映調(diào)度系統(tǒng)和擁塞控制機(jī)制恢復(fù)是否及時(shí)項(xiàng)目里我們一般要求30秒內(nèi)恢復(fù)到基線的95%以上。3.2 用例設(shè)計(jì)從基線到風(fēng)暴場(chǎng)景資源隔離性驗(yàn)證的用例不是隨便排幾組流量就行而是要有清晰的遞進(jìn)邏輯用例編號(hào)用例名稱前置條件核心步驟通過標(biāo)準(zhǔn)TC-01單切片基線性能測(cè)試無干擾流量目標(biāo)切片單獨(dú)滿載運(yùn)行30分鐘記錄指標(biāo)建立性能基線TC-02雙切片共存性能對(duì)比兩切片均正常eMBB負(fù)載50%測(cè)量uRLLC指標(biāo)衰減率≤5%TC-03eMBB全負(fù)載對(duì)uRLLC時(shí)延干擾eMBB滿載持續(xù)壓滿eMBB 30分鐘測(cè)uRLLC P99P99衰減率≤10%TC-04突發(fā)流量沖擊目標(biāo)切片運(yùn)行中30秒內(nèi)從0拉到100%突發(fā)流量無掉話恢復(fù)時(shí)間≤30秒TC-05長(zhǎng)時(shí)間混合負(fù)載穩(wěn)定性雙切片混合負(fù)載連續(xù)運(yùn)行48小時(shí)監(jiān)控指標(biāo)波動(dòng)無累積劣化趨勢(shì)TC-06切片內(nèi)擁塞時(shí)的故障隔離uRLLC內(nèi)部擁塞在uRLLC內(nèi)制造擁塞觀察eMBBeMBB不受影響TC-07跨切片數(shù)據(jù)面不可達(dá)兩切片建立會(huì)話從切片A向切片B地址發(fā)探測(cè)包無任何報(bào)文可達(dá)這里有一個(gè)容易被誤解的地方TC-01看起來不是隔離性測(cè)試但它是所有結(jié)論的“錨點(diǎn)”。沒有準(zhǔn)確的基線干擾后的指標(biāo)就沒有對(duì)比依據(jù)。前期我們吃過虧基線沒測(cè)準(zhǔn)后面整組數(shù)據(jù)作廢?;€數(shù)據(jù)的采集至少要重復(fù)三輪、每輪取穩(wěn)定期的中位數(shù)不能拿一次性數(shù)據(jù)當(dāng)基線。TC-06和TC-07常常被遺漏但客戶在后評(píng)估時(shí)往往最關(guān)心這兩項(xiàng)。因?yàn)椤肮收细綦x”和“安全隔離”是運(yùn)營(yíng)商敢不敢把危險(xiǎn)業(yè)務(wù)放進(jìn)切片的前提。這兩類用例涉及信令風(fēng)暴注入和跨切片訪問探測(cè)需要和網(wǎng)管側(cè)協(xié)作完成測(cè)試腳本要留好故障注入的接口。3.3 干擾流量的設(shè)計(jì)與負(fù)載模型干擾流量設(shè)計(jì)是整個(gè)測(cè)試?yán)镒钪v究的部分。很多人覺得干擾流量就是“發(fā)一大波數(shù)據(jù)過去”這是錯(cuò)誤的。干擾流必須貼近真實(shí)業(yè)務(wù)模型否則驗(yàn)證結(jié)果沒有代表性。設(shè)計(jì)干擾流量時(shí)注意幾個(gè)要點(diǎn)。第一eMBB干擾切片用大包UDP流或模擬視頻流的恒定速率流不能用TCP短連接一擁一擠的方法——后面排查章節(jié)會(huì)細(xì)說原因。第二uRLLC切片作為干擾源時(shí)用64字節(jié)小包、固定間隔的周期性模型模擬工業(yè)控制報(bào)文的特征。第三不同負(fù)載等級(jí)要按實(shí)際帶寬占比計(jì)算比如物理帶寬500MbpseMBB干擾流量按0%、30%、60%、90%、100%五檔遞進(jìn)每個(gè)檔位穩(wěn)定運(yùn)行至少30分鐘再采集數(shù)據(jù)。參數(shù)計(jì)算舉個(gè)例子。目標(biāo)uRLLC切片規(guī)劃帶寬100Mbps業(yè)務(wù)模型為64字節(jié)小包、0.5ms間隔單路業(yè)務(wù)速率約1Mbps需要100路并發(fā)的目標(biāo)業(yè)務(wù)流。eMBB干擾切片按100路4Mbps的視頻流設(shè)計(jì)總干擾流量約400Mbps對(duì)應(yīng)500Mbps物理帶寬的80%負(fù)載。這樣在報(bào)告里寫清楚流量模型客戶復(fù)核時(shí)才能還原測(cè)試過程測(cè)試本身才具備可追溯性。另外干擾方式要分兩種持續(xù)負(fù)載和突發(fā)沖擊。持續(xù)負(fù)載驗(yàn)證系統(tǒng)的穩(wěn)態(tài)隔離能力突發(fā)沖擊驗(yàn)證調(diào)度器的瞬態(tài)響應(yīng)。突發(fā)沖擊測(cè)試時(shí)流量發(fā)生器要用支持瞬時(shí)突發(fā)的模式在100ms內(nèi)從0拉滿觀察目標(biāo)切片的時(shí)延尖峰和丟包情況。4. 自動(dòng)化實(shí)現(xiàn)與實(shí)操記錄4.1 環(huán)境初始化與前置檢查自動(dòng)化不是上來就寫腳本跑用例環(huán)境準(zhǔn)備階段做的事情決定了后面數(shù)據(jù)是否可信。在項(xiàng)目里每次開始測(cè)試前嚴(yán)格執(zhí)行以下幾步時(shí)鐘同步所有測(cè)試節(jié)點(diǎn)、被測(cè)網(wǎng)元、探針設(shè)備統(tǒng)一啟用NTP或PTP。時(shí)延測(cè)試對(duì)時(shí)間基準(zhǔn)極其敏感不同步的后果是數(shù)據(jù)全是假的哪怕只差幾十毫秒對(duì)uRLLC切片就是災(zāi)難性誤差。版本與配置核對(duì)記錄核心網(wǎng)和基站的軟件版本號(hào)確認(rèn)切片模板版本、S-NSSAI、QoS參數(shù)已正確下發(fā)。特別要對(duì)照網(wǎng)管側(cè)配置和報(bào)文側(cè)實(shí)際承載的映射關(guān)系避免“手填的和生效的不一致”。資源基線校準(zhǔn)外場(chǎng)測(cè)試時(shí)每天開測(cè)前先跑一輪不加干擾的基線確認(rèn)當(dāng)天無線環(huán)境沒有異常偏移。如果當(dāng)天基線數(shù)值和前一晚相差超過5%先排查環(huán)境因素再繼續(xù)測(cè)試。信道一致性保障盡量固定在干擾小的時(shí)段做對(duì)比測(cè)試比如凌晨2點(diǎn)到6點(diǎn)。多輪測(cè)試之間不要移動(dòng)測(cè)試天線位置射頻線纜連接牢固性要檢查。這些前置檢查看著瑣碎但自動(dòng)化框架里應(yīng)該固化為一個(gè)環(huán)境自檢模塊。環(huán)境不合格直接中止執(zhí)行不讓測(cè)試流程繼續(xù)跑下去。寧可花20分鐘做檢查也不要跑了三天三夜最后發(fā)現(xiàn)數(shù)據(jù)因?yàn)闀r(shí)鐘漂移全部作廢。4.2 自動(dòng)化腳本的核心邏輯腳本層是整套框架的“指揮中樞”。下面這段代碼是核心測(cè)試用例的骨架展示了整個(gè)流程的控制邏輯import pytest import time pytest.fixture(scopemodule) def slice_env(): # 連接網(wǎng)管北向接口備份當(dāng)前配置 # 下發(fā)測(cè)試所需S-NSSAI和QoS模板 # 初始化流量發(fā)生器、探針和終端模擬器 env prepare_test_environment() yield env # 清理流量、恢復(fù)配置、釋放資源 teardown_test_environment(env) def measure_performance(target_slice, duration30): 向目標(biāo)切片發(fā)送UDP流并采集吞吐、時(shí)延、抖動(dòng)、丟包率 ... pytest.mark.parametrize(load_level, [0, 30, 60, 90, 100]) def test_embb_interference_on_urllc(slice_env, load_level): # 1. 啟動(dòng)uRLLC目標(biāo)業(yè)務(wù)記錄基線P99時(shí)延 baseline_p99 measure_performance(urllc).p99 # 2. 按load_level啟動(dòng)eMBB干擾流 start_interference(embb, load_level) # 3. 等待系統(tǒng)進(jìn)入穩(wěn)態(tài) time.sleep(300) # 4. 測(cè)量uRLLC切片指標(biāo) measured measure_performance(urllc) # 5. 計(jì)算衰減率并斷言 degradation (baseline_p99 - measured.p99) / baseline_p99 * 100 assert degradation 10, fP99 degradation {degradation:.2f}% exceeds threshold這段代碼是簡(jiǎn)化過的框架示意實(shí)際項(xiàng)目中每個(gè)函數(shù)體內(nèi)部會(huì)有大量API調(diào)用和數(shù)據(jù)采集邏輯。設(shè)計(jì)幾個(gè)關(guān)鍵點(diǎn)需要留意。流量啟動(dòng)和測(cè)量之間要設(shè)置合理的穩(wěn)定時(shí)間。切片調(diào)度器和QoS隊(duì)列需要時(shí)間從當(dāng)前負(fù)載狀態(tài)收斂到新的穩(wěn)態(tài)項(xiàng)目里我們統(tǒng)一設(shè)置的300秒這個(gè)值根據(jù)設(shè)備不同可能需要調(diào)整。太短數(shù)據(jù)不穩(wěn)定太長(zhǎng)影響整體測(cè)試周期。測(cè)量函數(shù)本身要把“打流”和“采集”分離。打流負(fù)責(zé)持續(xù)發(fā)送測(cè)試報(bào)文采集負(fù)責(zé)周期性讀取吞吐和時(shí)延指標(biāo)兩者不是同一套數(shù)據(jù)。探針采集的報(bào)文時(shí)延最準(zhǔn)確儀表統(tǒng)計(jì)的吞吐量最準(zhǔn)確兩套數(shù)據(jù)匯總后交叉校驗(yàn)一旦發(fā)現(xiàn)兩邊差異過大優(yōu)先懷疑數(shù)據(jù)采集鏈路本身有問題。判定邏輯不要只依賴一次測(cè)量。每個(gè)負(fù)載等級(jí)下做三輪測(cè)量取中位數(shù)用于斷言計(jì)算最大最小值之間的波動(dòng)范圍記錄到報(bào)告里。這樣既避免偶發(fā)網(wǎng)絡(luò)波動(dòng)誤判結(jié)論又能在報(bào)告里體現(xiàn)數(shù)據(jù)的穩(wěn)定度。4.3 結(jié)果采集、判定與報(bào)告結(jié)果采集的準(zhǔn)確性直接決定報(bào)告質(zhì)量。項(xiàng)目里我們用三層采集方式互相印證Telemetry周期性數(shù)據(jù)通過網(wǎng)管北向接口讀取UPF和gNB的性能計(jì)數(shù)器每5秒采樣一次記錄整個(gè)測(cè)試周期的變化趨勢(shì)。探針抓包統(tǒng)計(jì)在核心網(wǎng)N3或N6口鏡像抓包用報(bào)文時(shí)間戳計(jì)算真實(shí)時(shí)延和抖動(dòng)按QoS Flow ID過濾出目標(biāo)切片的數(shù)據(jù)流。儀表測(cè)試結(jié)果流量發(fā)生器本身的統(tǒng)計(jì)功能關(guān)注吞吐量、丟包率、連接狀態(tài)。三層數(shù)據(jù)用于交叉驗(yàn)證不匹配時(shí)以探針抓包為準(zhǔn)因?yàn)樽グ鼣?shù)據(jù)是直接觀測(cè)到的網(wǎng)絡(luò)行為不受網(wǎng)管計(jì)數(shù)器某些定時(shí)刷新機(jī)制的干擾。判定邏輯層面我們額外引入了統(tǒng)計(jì)顯著性判斷。性能衰減率要基于至少三輪測(cè)試結(jié)果進(jìn)行t檢驗(yàn)確認(rèn)差異不是隨機(jī)波動(dòng)造成的。這個(gè)步驟很容易被忽略卻是堵住“客戶質(zhì)疑測(cè)試數(shù)據(jù)可重復(fù)性”的一道重要防線。報(bào)告生成可以自動(dòng)化為兩條線一條是pytest-html生成的用例執(zhí)行報(bào)告記錄每條用例的通過/失敗/運(yùn)行時(shí)長(zhǎng)另一條是自定義summary腳本自動(dòng)匯總指標(biāo)表格輸出每個(gè)負(fù)載等級(jí)下目標(biāo)切片的P99時(shí)延、衰減率、恢復(fù)時(shí)間等關(guān)鍵數(shù)據(jù)并生成趨勢(shì)圖。最終交付給客戶的測(cè)試報(bào)告由這個(gè)自動(dòng)化匯總結(jié)果加上人工撰寫的結(jié)論分析組成。5. 常見問題與實(shí)戰(zhàn)避坑清單5.1 我在項(xiàng)目中踩過的坑踩坑記錄是最有價(jià)值的分享。以下四個(gè)問題都是我們?cè)陧?xiàng)目里真實(shí)遇到過的寫出來幫大家少走彎路。第一個(gè)坑時(shí)鐘不同步導(dǎo)致時(shí)延假象。剛開始跑uRLLC切片時(shí)P99時(shí)延基線全都在漂移從8ms一路飄到20ms還找不到規(guī)律。排查了一天最后發(fā)現(xiàn)探針服務(wù)器和核心網(wǎng)設(shè)備之間沒有做NTP同步時(shí)鐘偏差超過幾十毫秒。數(shù)據(jù)完全不可信。解決辦法是全網(wǎng)統(tǒng)一NTP/PTP對(duì)時(shí)并定時(shí)核查各節(jié)點(diǎn)的時(shí)鐘源狀態(tài)。這個(gè)問題特別隱蔽因?yàn)榫W(wǎng)絡(luò)層面一切正常問題出在測(cè)量基礎(chǔ)設(shè)施上。第二個(gè)坑TCP干擾流測(cè)了個(gè)寂寞。用TCP做干擾流跑eMBB切片調(diào)到一定速率后擁塞窗口自動(dòng)收縮TCP協(xié)議自己做了流量整形干擾強(qiáng)度再也上不去。測(cè)出來的結(jié)果是eMBB和uRLLC完美隔離數(shù)據(jù)好得不可思議。后來換成UDP打流繞過擁塞控制才真正壓出問題。TCP適合模擬真實(shí)用戶業(yè)務(wù)但要做壓力干擾必須用UDP加指定速率不然永遠(yuǎn)造不出真正的負(fù)載高峰。第三個(gè)坑流量打到了錯(cuò)誤的切片。排查一個(gè)“目標(biāo)切片在干擾后性能反而提升”的奇怪現(xiàn)象時(shí)發(fā)現(xiàn)干擾流通過DSCP到切片模板的映射配置配錯(cuò)了干擾流量全走了目標(biāo)切片的通道。兩個(gè)業(yè)務(wù)流疊加后帶寬利用率上去了效率提升反映成了性能變好。這個(gè)問題再次強(qiáng)調(diào)配置核對(duì)的重要性每個(gè)切片關(guān)聯(lián)的S-NSSAI、QoS模板、DSCP標(biāo)記、路由策略必須逐項(xiàng)核對(duì)。第四個(gè)坑無線空口波動(dòng)造成假陽性。白天測(cè)出來的隔離性結(jié)果慘不忍睹凌晨測(cè)又全部達(dá)標(biāo)。原因是白天園區(qū)有大量業(yè)務(wù)流量、車輛移動(dòng)、人員走動(dòng)無線環(huán)境干擾波動(dòng)大。后來統(tǒng)一把對(duì)比測(cè)試安排在凌晨固定時(shí)段并且多輪重測(cè)取中位數(shù)數(shù)據(jù)才穩(wěn)定下來。外場(chǎng)測(cè)試一定要意識(shí)到空口環(huán)境不是實(shí)驗(yàn)室天然有噪聲測(cè)試時(shí)間窗的選擇和重復(fù)測(cè)量策略同樣重要。5.2 問題排查思路與速查表把常見問題整理成速查表項(xiàng)目里排查問題時(shí)按表逐項(xiàng)對(duì)照效率翻倍現(xiàn)象可能原因排查方法目標(biāo)切片時(shí)延在干擾后無變化干擾流量未真正進(jìn)入干擾切片QoS限速提前生效檢查S-NSSAI/DSCP映射、QoS流標(biāo)識(shí)查看網(wǎng)管實(shí)時(shí)流量統(tǒng)計(jì)結(jié)果重復(fù)性差空口環(huán)境波動(dòng)、時(shí)鐘不同步、存在未知背景流量固定測(cè)試時(shí)段全網(wǎng)NTP/PTP對(duì)時(shí)多輪重測(cè)取中位數(shù)性能衰減率遠(yuǎn)超預(yù)期調(diào)度策略搶占、PRB資源池劃分不當(dāng)、UPF限速未生效查看gNB調(diào)度統(tǒng)計(jì)檢查UPF隊(duì)列配置核對(duì)PRB資源預(yù)留長(zhǎng)時(shí)間穩(wěn)定性測(cè)試中斷儀表連接超時(shí)、腳本異常、資源泄漏加長(zhǎng)超時(shí)參數(shù)腳本增加斷點(diǎn)重連和守護(hù)進(jìn)程抓包數(shù)據(jù)與儀表數(shù)據(jù)不一致鏡像口帶寬不足丟包、探針時(shí)間戳精度不夠檢查鏡像端口容量換用高精度時(shí)間戳采集方式干擾流量一加就整網(wǎng)劣化承載網(wǎng)FlexE管道帶寬預(yù)留不足檢查承載網(wǎng)切片通道配置確認(rèn)轉(zhuǎn)發(fā)面隔離策略生效排查時(shí)還有一個(gè)通用技巧先看數(shù)據(jù)鏈路再看配置最后才懷疑性能。很多“隔離性問題”其實(shí)都是測(cè)量鏈路本身的時(shí)鐘、抓包、統(tǒng)計(jì)口徑問題。先把環(huán)境問題排除干凈再去找網(wǎng)絡(luò)策略的缺陷能節(jié)省大量時(shí)間。5.3 經(jīng)驗(yàn)體會(huì)與后續(xù)進(jìn)階方向切片隔離性驗(yàn)證做到一定深度你會(huì)發(fā)現(xiàn)測(cè)的核心其實(shí)是整個(gè)測(cè)試框架的工程能力。數(shù)據(jù)采集的準(zhǔn)確性、環(huán)境的可復(fù)現(xiàn)性、腳本的穩(wěn)定性每一項(xiàng)都必須比被測(cè)系統(tǒng)本身更可靠最終報(bào)告才經(jīng)得起客戶和評(píng)審專家的反復(fù)質(zhì)詢。前期在環(huán)境校準(zhǔn)和配置核對(duì)上多花的時(shí)間都會(huì)在后續(xù)的數(shù)據(jù)可信度上回報(bào)回來。這個(gè)框架還可以繼續(xù)擴(kuò)展。往切片生命周期走可以做從創(chuàng)建、激活、修改到釋放的全流程驗(yàn)證把資源隔離性測(cè)試嵌入到每個(gè)生命周期階段的入口檢查里。往故障演練走可以接入混沌工程工具注入U(xiǎn)PF容器重啟、gNB板卡故障、承載網(wǎng)路由震蕩驗(yàn)證切片隔離在真實(shí)故障場(chǎng)景下的韌性邊界。結(jié)果數(shù)據(jù)沉淀下來之后也可以訓(xùn)練異常識(shí)別模型在混合負(fù)載下自動(dòng)分析資源隔離的風(fēng)險(xiǎn)點(diǎn)。方向很多但底子還是那一套“環(huán)境可控、指標(biāo)量化、過程可復(fù)現(xiàn)”的工程方法。