江淑明,仇潤鶴
?
移動通信網(wǎng)絡(luò)節(jié)點(diǎn)性能的自動化測試平臺的搭建與應(yīng)用
江淑明,仇潤鶴
(東華大學(xué)信息科技與技術(shù)學(xué)院,上海 201620;數(shù)字化紡織服裝技術(shù)教育部工程研究中心,上海 201620)
隨著通信軟件版本更新迭代的速度越來越快,為了保證產(chǎn)品的質(zhì)量和研發(fā)速度,需要能用于網(wǎng)絡(luò)節(jié)點(diǎn)性能測試的自動化測試平臺。搭建了一種移動通信網(wǎng)絡(luò)節(jié)點(diǎn)性能的自動化測試平臺,給出了被測試通信網(wǎng)絡(luò)系統(tǒng)框架中的各個(gè)模塊和自動化測試工具,并以軟件升級測試為例,介紹了整個(gè)平臺的具體自動化測試步驟和測試數(shù)據(jù)結(jié)果的分析,證明整個(gè)的自動化測試平臺能夠順利使用,并能夠在實(shí)際的應(yīng)用中大大提高研發(fā)效率。
移動通信;網(wǎng)絡(luò)節(jié)點(diǎn);通信軟件;自動化測試
隨著通訊系統(tǒng)的復(fù)雜程度的不斷增加,軟件系統(tǒng)的復(fù)雜程度也在不斷增加,尤其是在當(dāng)前移動通訊設(shè)備娛樂功能逐漸增多的前提下,通信軟件的質(zhì)量要求也越來越高,而軟件測試是軟件開發(fā)中不可或缺的部分,軟件測試是軟件質(zhì)量控制和質(zhì)量管理的關(guān)鍵環(huán)節(jié),因此,軟件的測試工作也提升到了一個(gè)非常重要的地位。通信的產(chǎn)品和軟件服務(wù)一般覆蓋面都會比較廣,如果測試質(zhì)量和精度不夠高,上線后出現(xiàn)問題的影響將會是非常巨大的。因此,高精度和高質(zhì)量的測試是我們所需要的。但現(xiàn)在版本更新迭代的越來越快,項(xiàng)目交付壓力越來越大,單純地手動測試已經(jīng)不能滿足現(xiàn)在所有的需求。因此,自動化測試應(yīng)運(yùn)而生,它具有快捷、方便、可重復(fù)、覆蓋率高等許多優(yōu)點(diǎn),能夠大大地提高軟件產(chǎn)品研發(fā)效率,節(jié)省時(shí)間,爭取用最短的時(shí)間進(jìn)入市場。
顯而易見,利用專門的自動化測試工具進(jìn)行有針對性的測試,提高測試效率是非常可行的辦法。國際上流行的測試工具代表有Compuware(美國康博)公司的DevPartner軟件、Rational公司的Purify系列。而對于電信網(wǎng)絡(luò)節(jié)點(diǎn)的性能測試主要可以概括為三種不同的類型,分別是軟硬件管理維護(hù)測試,魯棒性測試和容量測試。其中,軟硬件管理維護(hù)測試主要用來測試軟件版本各種不同層次的升級過程中各種性能指標(biāo)參數(shù)是否穩(wěn)定。
魯棒性測試是指人為的破壞或者重啟某個(gè)節(jié)點(diǎn)或者板子后查看各項(xiàng)指標(biāo)的恢復(fù)情況是否正常。容量測試則是指階梯型的增加模擬用戶數(shù)直到最大負(fù)荷觀察增加的過程中各種性能指標(biāo)是否一直屬于正常。為了實(shí)現(xiàn)節(jié)點(diǎn)性能測試的自動化,實(shí)際項(xiàng)目使用D-JCAT。自動化測試工具D-JCAT是一個(gè)Maven工程項(xiàng)目,由cats和D-jcat兩個(gè)子項(xiàng)目構(gòu)成,都是用Java語言開發(fā),在使用的時(shí)候,只需要在本地打開Eclipse導(dǎo)入性能測試所需版本相對應(yīng)的Maven工程就可以使用,配置簡單,操作界面友好。
測試平臺主要由GSS服務(wù)器、Dallas、核心測試節(jié)點(diǎn)設(shè)備SGSN-MME、多臺交換機(jī)、路由控制器組成,如圖1所示。其中,GSS是一個(gè)UNIX服務(wù)器,主要用來配置核心測試節(jié)點(diǎn)與核心測試節(jié)點(diǎn)之間交流,這種交流主要體現(xiàn)在文件服務(wù)上。因此,可以粗略地認(rèn)為,GSS服務(wù)器就是一個(gè)為核心測試節(jié)點(diǎn)SGSN-MME提供文件服務(wù)的服務(wù)器。
電信網(wǎng)絡(luò)一般覆蓋面比較廣,測試也必須要考慮到不同的真實(shí)場景。所以,其中的一個(gè)測試工具Dallas就是在這樣的需求下產(chǎn)生的。簡單來說,它是一個(gè)分布式的負(fù)載測試工具,幫助測試人員模擬真實(shí)的用戶場景。以便能夠根據(jù)不同性能的測試需求使用不同的負(fù)載需要。具體來說,Dallas能夠從三個(gè)層面進(jìn)行模擬:①它能夠模擬所測節(jié)點(diǎn)周邊的網(wǎng)元節(jié)點(diǎn);②它不僅能夠模擬節(jié)點(diǎn),還能夠充當(dāng)函數(shù)式接口去產(chǎn)生對應(yīng)節(jié)點(diǎn)發(fā)出的信令;③它還能模擬真實(shí)的用戶,而且用戶數(shù)是可以手動設(shè)置的,可以小到一個(gè)用戶,大到上千萬都可以根據(jù)需要模擬出來。

圖1 測試平臺的框架
核心測試節(jié)點(diǎn)設(shè)備,即圖1拓?fù)浣Y(jié)構(gòu)中的SGSN-MME,它的硬件內(nèi)部結(jié)構(gòu)如圖2所示。主要有28個(gè)槽位,每2個(gè)槽位中插入一塊板子。插入的板子類型分為4種,即FSB、NCB、GPB和SMXB,分別充當(dāng)不同的角色。其中GPB是普通的GEP5板子,沒有內(nèi)存,充當(dāng)AP(應(yīng)用處理器)和DP(負(fù)載設(shè)備處理器)的角色。FSB是4種類型板子中唯一具有內(nèi)存的板子,所以用來存儲文件和備份,為所有的板子共享。
NCB是節(jié)點(diǎn)控制板子,主要負(fù)責(zé)路由、監(jiān)視、O&M和軟件分發(fā)。SMXB作為交換板構(gòu)成不同板子之間溝通的橋梁。GSS和Dallas都是為測試核心節(jié)點(diǎn)SGSN-MME所開發(fā)的工具或服務(wù)器。它們通過串口和交換機(jī)與SGSN-MME測試節(jié)點(diǎn)連接之后,整個(gè)需要被測試的系統(tǒng),也就是測試框架就搭建完成。

圖2 測試節(jié)點(diǎn)硬件內(nèi)部結(jié)構(gòu)圖
在配置好被測試的系統(tǒng)之后,就可以在自動化測試工具上對所需要測試的節(jié)點(diǎn)進(jìn)行性能自動化測試了。自動化測試工具D-JCAT的模塊組成如圖3所示。整個(gè)測試工具分為3個(gè)部分:最底層的JCAT提供了一系列公共處理接口的Java API,也集成了log4j日志輸出框架和TestNG測試框架,為整個(gè)自動化測試平臺提供架構(gòu)支撐;D-JCAT Framework則是基于JCAT的進(jìn)一步開發(fā),實(shí)現(xiàn)了JCAT重定義的接口,并且各個(gè)不同的測試節(jié)點(diǎn)有不同的具體實(shí)現(xiàn)。
除此之外,D-JCAT還提供了生成節(jié)點(diǎn)配置的執(zhí)行腳本Confix,以及提供case運(yùn)行監(jiān)聽器的Listener等功能;最上層是CATS Repository。它是在D-JCAT上面進(jìn)行的二次開發(fā),它沒有具體的方法實(shí)現(xiàn),實(shí)現(xiàn)的功能都是調(diào)用D-JCAT,主要包括唯一識別每個(gè)case的XML文件、XML文件唯一映射的Feature Files以及調(diào)用底層代碼的Test Step。在此情況下,一個(gè)自動化case的運(yùn)行過程就如這樣,從上往下一層一層地調(diào)用即可。

圖3 自動化測試工具D-JCAT模塊組成
以軟件升級測試為例,來敘述整個(gè)的實(shí)際測試流程。在這個(gè)通信軟件產(chǎn)品快速迭代的時(shí)代,甚至可以認(rèn)為軟件每天都在不停升級更新,因此,軟件測試也就顯得尤為重要,而為了提高開發(fā)效率,自動化測的重要性就顯現(xiàn)出來了。系統(tǒng)需要具備什么樣的特性,才算是好的或壞的性能,應(yīng)該如何進(jìn)行度量等等,這些都需要對性能測試進(jìn)行分析與研究。簡而言之,軟件升級測試的目的在于利用測試工具來模擬真實(shí)的升級場景,查看和分析升級包安裝配置完成,Dallas模擬用戶和流量都在一個(gè)穩(wěn)定的水平后,相應(yīng)的測試節(jié)點(diǎn)AP和DP處理器負(fù)載是否在正常可以接受的范圍內(nèi),是否會因?yàn)榘姹镜母鲁霈F(xiàn)新的錯(cuò)誤或告警等問題。總之,在新的軟件版本正式交付給用戶之前,要保證設(shè)備軟件能夠升級成功并且升級之后整個(gè)移動通信網(wǎng)絡(luò)能夠保證正常、穩(wěn)定的運(yùn)行,給用戶提供更優(yōu)質(zhì)的體驗(yàn),這就是軟件升級性能測試的意義所在。
在進(jìn)行正式的軟件升級測試之前,需要對核心測試節(jié)點(diǎn)SGSN-MME進(jìn)行初始化配置。主要包括IP地址的配置、節(jié)點(diǎn)能夠附著的用戶容量值配置以及2G、3G、4G用戶比例配置等。配置用到的是命名為sgsn_mmefull.sh的一個(gè)Shell腳本,直接運(yùn)行該腳本,等待其執(zhí)行完成,節(jié)點(diǎn)初始化配置成功,之后進(jìn)行正常的升級流程了。主要的參數(shù)如表1所示,這些參數(shù)在Eclipse的VM arguments由測試人員給定,然后傳遞給腳本或程序運(yùn)行。
在正式開始運(yùn)行一個(gè)軟件升級自動化測試時(shí),首先需要一個(gè)可用的被測試節(jié)點(diǎn),該節(jié)點(diǎn)名稱通過腳本參數(shù)stp傳遞給D-JCAT。同時(shí),被傳遞的還包括準(zhǔn)備升級到的軟件版本baseline參數(shù)。設(shè)定規(guī)則如圖4所示。其他更多的參數(shù)則是寫在一個(gè)“system.properties”的文件中,通過Java中的File類去讀取和操作數(shù)據(jù)。
表1 腳本參數(shù)及其描述
腳本參數(shù)名稱腳本參數(shù)描述 Baseline準(zhǔn)備升級到的軟件版本 Baseline.NonSmooth1最初安裝的軟件版本 Dallas.versionDallas安裝版本 stp被測試的節(jié)點(diǎn)
綜上所述,在測試工具D-JCAT中每個(gè)測試不同性能的案例都有一個(gè)獨(dú)立的XML文件來識別。運(yùn)行某個(gè)具體的案例只需要在已經(jīng)導(dǎo)入Maven工程的Eclipse上點(diǎn)擊“Run Configurations”之后選擇你要測試的案例對應(yīng)的XML文件運(yùn)行即可。對于軟件升級測試來說,選擇的是“NonSmoothSu1_LoadNormal_MkX_1mag_Lwg1Itu_EricssonGlobalA_None.xml”這個(gè)XML文件。
從XML文件開始運(yùn)行之后,測試內(nèi)部的層級調(diào)用過程如下:Feature Files 是用Gherkin語言寫的要運(yùn)行一個(gè)測試案例具體的實(shí)施步驟,并且通過@注解的方式來與XML文件關(guān)聯(lián),從而運(yùn)行正確的Feature File步驟。Gherkin語言定義的每個(gè)步驟都有CATS中的Java代碼來實(shí)現(xiàn),CATS又調(diào)用D-JCAT中的代碼來實(shí)現(xiàn)性能測試案例的運(yùn)行。在此情況下,一個(gè)case就在Eclipse中自動運(yùn)行起來。在JCAT中封裝了log4j日志輸出框架,在D-JCAT中又根據(jù)具體的測試節(jié)點(diǎn)進(jìn)行了適配封裝,在整個(gè)case運(yùn)行的過程中一直打印并且存儲log信息在一個(gè)以當(dāng)前時(shí)間命名的本地路徑下。最后運(yùn)行完成后,由測試人員查看相應(yīng)的log和數(shù)據(jù)來分析測試結(jié)果。

圖4 VM主要參數(shù)
在整個(gè)的測試流程中,最直接判斷一個(gè)測試是否通過的方法是通過Eclipse中的console窗口中運(yùn)行是否出現(xiàn)ERROR。如果沒有出現(xiàn)ERROR,則升級步驟中沒有出現(xiàn)問題。測試后關(guān)注的主要參數(shù)如表2所示。一個(gè)正常的軟件升級case完成后,所有的指標(biāo)都應(yīng)該與規(guī)定的標(biāo)準(zhǔn)相匹配。在此情況下,一個(gè)自動化case才是完全通過的。
表2 測試結(jié)果評價(jià)參數(shù)
測試結(jié)果參數(shù)參數(shù)描述 AP CPU usage測試節(jié)點(diǎn)AP CPU的使用量,一般70左右為正常 DP CPU usage測試節(jié)點(diǎn)DP CPU的使用量,一般45左右為正常 Alarm測試過程中出現(xiàn)的告警信息 測試結(jié)果參數(shù)參數(shù)描述
實(shí)際項(xiàng)目中自動化運(yùn)行升級case時(shí),AP, DP, Alarm參數(shù)的實(shí)際情況如圖5、圖6、圖7所示。在使用自動化工具D-JCAT進(jìn)行測試時(shí),只需要等它跑完所有測試步驟后,它自動將不同的參數(shù)記錄在不同的日志文件里面,后續(xù)在Linux服務(wù)器上敲相應(yīng)的命令就可以查看不同的參數(shù)結(jié)果,得出結(jié)論。例如,得到Alarm參數(shù),只需要在輸入“gshlist_alarms”即可。這樣可以大大提升測試效率,可以同時(shí)跑起來多個(gè)case,分別去檢查結(jié)果就可以了。
從圖5、圖6、圖7所得到的實(shí)際項(xiàng)目運(yùn)行中AP,DP,Alarm參數(shù)與表2中參數(shù)描述對比可知,以上三項(xiàng)測試結(jié)果評價(jià)參數(shù)都在合理的范圍內(nèi),也沒出現(xiàn)Alarm。所以,自動化測試軟件升級case成功。
自動化測試與手動測試相比,可以避免人工測試的大量人力投入,減少重復(fù)過程,節(jié)省時(shí)間、費(fèi)用和工作量,提高測試效率和效果,對于企業(yè)具有重要的現(xiàn)實(shí)意義。
本文搭建了移動通信節(jié)點(diǎn)的性能自動化測試平臺,并最終實(shí)現(xiàn)了自動化測試。其中,介紹了整個(gè)被測試系統(tǒng)的各個(gè)模塊的功能和組成,并且將他們搭建成一個(gè)完成的系統(tǒng)。介紹了自動化測試工具,講述了它層級的分工以及調(diào)用過程。以軟件升級case為例,介紹了整體的流程和測試輸出結(jié)果分析,最終使該自動化測試順利運(yùn)行,達(dá)到了預(yù)期的效果。

圖5 AP cpu使用量

圖6 DP cpu使用量

圖7 查看測試中出現(xiàn)的Alarm
[1]王曉華.軟件測試技術(shù)應(yīng)用研究[J].國防科技工業(yè),2012(03):54-55.
[2]王子昊.移動第四代通信技術(shù)的研究進(jìn)展[D].西安:空軍工程大學(xué),2017.
[3]王蓁蓁.軟件測試?yán)碚摮醪娇蚣埽跩].計(jì)算機(jī)科學(xué),2014(03).
[4]張巍.CDMA2000自動化工具平臺研究與實(shí)現(xiàn)[D].西安:西北工業(yè)大學(xué),2016.
[5]羅鵬.3G自動化測試平臺的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2006.
[6]張旭.淺談軟件測試用工具的設(shè)計(jì)與實(shí)現(xiàn)[J].科技創(chuàng)新與應(yīng)用,2012(06):32-33.
[7]林峰.手機(jī)軟件自動測試系統(tǒng)的設(shè)計(jì)與開發(fā)[D].廈門:廈門大學(xué),2009.
[8]黃容.基于TTCN-3的CDMA自動化測試平臺的研發(fā)[D].西安:西安電子科技大學(xué),2014.
[9]張運(yùn)中.TD-LTE終端自動化測試軟件研究[J].電信網(wǎng)技術(shù),2013(12):14-16.
[10]賴歆.淺談信息化系統(tǒng)中的性能測試[D].信息通信,2018(08).
2095-6835(2019)05-0051-03
TP311.53
A
10.15913/j.cnki.kjycx.2019.05.051
江淑明(1994—),男,東華大學(xué)信息科學(xué)與技術(shù)學(xué)院電子與通信工程研究生。
〔編輯:張思楠〕