一種避免arp干擾的網(wǎng)絡(luò)通信測試方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信測試技術(shù)領(lǐng)域,特別是涉及一種避免ARP干擾的網(wǎng)絡(luò)通信測試方法及系統(tǒng)。
【背景技術(shù)】
[0002]虛擬局域網(wǎng)VLAN(Virtual Local Area Network)是一組邏輯上的設(shè)備和用戶,這些設(shè)備和用戶并不受物理網(wǎng)段的限制,可以根據(jù)功能、部門及應(yīng)用等因素將它們組織起來,相互之間的通信就好像它們在同一個(gè)網(wǎng)段中一樣,由此得名虛擬局域網(wǎng)。VLAN是一種比較新的技術(shù),VLAN網(wǎng)絡(luò)的建立需要相應(yīng)的支持VLAN技術(shù)的網(wǎng)絡(luò)設(shè)備。當(dāng)網(wǎng)絡(luò)中的不同VLAN間進(jìn)行相互通信時(shí),需要采用路由器或交換機(jī)來實(shí)現(xiàn)路由功能。
[0003]處于VLAN網(wǎng)絡(luò)中的主機(jī)可發(fā)送信息時(shí)將包含目標(biāo)IP地址的ARP (AddressResolut1n Protocol)請(qǐng)求廣播到VLAN網(wǎng)絡(luò)上的所有主機(jī),并接收返回消息,以此確定目標(biāo)的MAC地址;收到返回消息后將該IP地址和MAC地址存入本機(jī)ARP緩存中并保留一定時(shí)間,下次請(qǐng)求時(shí)直接查詢ARP緩存以節(jié)約資源。主機(jī)地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個(gè)主機(jī)互相信任的基礎(chǔ)上的,網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息,其他主機(jī)收到應(yīng)答報(bào)文時(shí)不會(huì)檢測該報(bào)文的真實(shí)性就會(huì)將其記入本機(jī)ARP緩存,可能導(dǎo)致發(fā)出請(qǐng)求的本機(jī)存入的ARP應(yīng)答消息并不屬于與本機(jī)直連的主機(jī)所發(fā)生。
[0004]有鑒于此,須保證VLAN通信系統(tǒng)中相互直連的兩個(gè)主機(jī)間正常通信,才可對(duì)接入VLAN的各主機(jī)(以AP模式接入網(wǎng)絡(luò))網(wǎng)絡(luò)模式進(jìn)行自動(dòng)測試。然而現(xiàn)有技術(shù)在自動(dòng)化測試AP(Access Point)網(wǎng)絡(luò)模式時(shí),因多臺(tái)待測試主機(jī)DUT(device under test)連接在同一虛擬局域網(wǎng)VLAN的交換機(jī)上,作為測試主機(jī)的PC向外發(fā)送ARP請(qǐng)求廣播時(shí),所有的待測試主機(jī)DUT (AP模式)均會(huì)收到該請(qǐng)求,因待測試DUT的管理地址相同,收到請(qǐng)求的待測試主機(jī)DUT均會(huì)向發(fā)送ARP請(qǐng)求的測試主機(jī)PC以單播方式發(fā)送ARP響應(yīng),致使測試主機(jī)PC無法正確獲取直連的待測試主機(jī)DUT的ARP響應(yīng),測試主機(jī)PC的ARP緩存中直連的待測試主機(jī)DUT的管理地址對(duì)應(yīng)錯(cuò)誤的MAC地址,導(dǎo)致PC與直連的DUT無法進(jìn)行正常通信而直接影響自動(dòng)化測試。且在自動(dòng)化測試失敗后需以人工方式進(jìn)行問題排查,進(jìn)而極大增加了測試周期,測試效率低,并造成人力及物力資源的極大浪費(fèi)。
[0005]因此,如何提出一種新的測試技術(shù),其測試周期短、效率高、可靠性高,進(jìn)而克服現(xiàn)有測試技術(shù)的諸多缺失,實(shí)已成為目前業(yè)界亟待解決之難題。
【發(fā)明內(nèi)容】
[0006]鑒于上述現(xiàn)有技術(shù)的缺失,本發(fā)明之主要目的在于提供一種避免ARP干擾的網(wǎng)絡(luò)通信測試方法及系統(tǒng),其可執(zhí)行自動(dòng)測試作業(yè)且可靠性高。
[0007]本發(fā)明的另一目的在于提供一種避免ARP干擾的網(wǎng)絡(luò)通信測試方法及系統(tǒng),其測試周期短且效率高,且可避免人力物力資源浪費(fèi)。
[0008]為達(dá)上述及其他目的,本發(fā)明提出一種避免ARP干擾的網(wǎng)絡(luò)通信測試方法,用于對(duì)位于網(wǎng)絡(luò)上的多個(gè)設(shè)備的AP模式自動(dòng)化測試,該方法包括:執(zhí)行步驟SI,透過一測試主機(jī)向該網(wǎng)絡(luò)發(fā)送ARP請(qǐng)求廣播,并接收該些設(shè)備發(fā)送的ARP響應(yīng)進(jìn)行緩存;執(zhí)行步驟S2:調(diào)用ARP命令將該主機(jī)緩存的ARP列表導(dǎo)出賦值給一變量,并將該變量解碼,找到與該測試主機(jī)直連的設(shè)備的管理地址所匹配的MAC地址;執(zhí)行步驟S3:將該MAC地址與預(yù)定的MAC地址進(jìn)行比較以檢測該MAC地址是否正確,如果正確則執(zhí)行步驟S7,否則進(jìn)行下一步;執(zhí)行步驟S4:調(diào)用ARP命令循環(huán)清除該測試主機(jī)緩存的ARP ;執(zhí)行步驟S5:調(diào)用ARP命令添加正確的ARP,將ARP列表導(dǎo)出賦值給另一變量,并將該另一變量解碼;執(zhí)行步驟S6:確認(rèn)ARP是否添加成功,若不成功則重復(fù)執(zhí)行步驟S3?S6,直到添加成功為止則執(zhí)行下一步;以及執(zhí)行步驟S7:進(jìn)行AP模式自動(dòng)化測試以驗(yàn)證該測試主機(jī)與其直連的設(shè)備正常通信。
[0009]本發(fā)明的上述測試方法,是透過測試腳本調(diào)用函數(shù)subprocess.Popen輸入ARP命令的方式調(diào)用ARP命令將其導(dǎo)出并賦值。
[0010]本發(fā)明的上述測試方法,步驟S3、步驟S4、步驟S5中執(zhí)行MAC地址確認(rèn)、ARP清除、ARP添加是否成功是透過使用正則表達(dá)式處理函數(shù)執(zhí)行。
[0011]本發(fā)明的上述測試方法,步驟S2、步驟S5中,透過decode函數(shù)將變量解碼轉(zhuǎn)變成可顯示格式。
[0012]本發(fā)明還提供一種可執(zhí)行上述方法的避免ARP干擾的網(wǎng)絡(luò)通信測試系統(tǒng),包括:廣播模塊,用于供一測試主機(jī)向該網(wǎng)絡(luò)發(fā)送ARP請(qǐng)求廣播,并接收該些設(shè)備發(fā)送的ARP響應(yīng)并將其緩存至該測試主機(jī);處理模塊,用于自該測試主機(jī)導(dǎo)出ARP列表將其賦值給一變量,并將該變量解碼,找到與該測試主機(jī)直連的設(shè)備的管理地址所匹配的MAC地址,并檢測該MAC地址與預(yù)定的MAC地址是否一致,若不一致則循環(huán)執(zhí)行清除ARP、添加正確ARP作業(yè),直到正確ARP添加成功;以及測試模塊,根據(jù)該處理模塊的處理結(jié)果執(zhí)行AP模式自動(dòng)化測試。
[0013]本發(fā)明之處理模塊進(jìn)一步包括:導(dǎo)出模塊,調(diào)用ARP命令,自該測試主機(jī)導(dǎo)出該ARP列表;賦值模塊,用于將該ARP進(jìn)行賦值處理將其賦值給一變量;編譯模塊,用于對(duì)該變量進(jìn)行解碼處理形成可顯示格式;清除模塊,調(diào)用ARP命令,循環(huán)清除該測試主機(jī)緩存的ARP ;添加模塊,調(diào)用ARP命令,循環(huán)添加正確的ARP ;以及檢測模塊,用于檢測該MAC碼與預(yù)定MAC碼的一致性,以及檢測ARP是否清除干凈、正確ARP是否添加成功。
[0014]于本發(fā)明之系統(tǒng)中,當(dāng)檢測模塊檢測結(jié)果為該MAC碼與預(yù)定MAC碼的一致時(shí)或正確MAP添加成功時(shí),該測試模塊執(zhí)行AP模式自動(dòng)化測試。
[0015]綜上所述,本發(fā)明主要是透過測試主機(jī)調(diào)用測試腳本自動(dòng)對(duì)測試主機(jī)所接收到的ARP響應(yīng)的正確性進(jìn)行檢測,并在此ARP響應(yīng)不正確時(shí)自動(dòng)將其清除并添加正確的ARP,之后執(zhí)行AP模式自動(dòng)化測試以驗(yàn)證測試主機(jī)與其直連的設(shè)備間的正常通信。與現(xiàn)有技術(shù)相比,本發(fā)明所揭示的測試方法在測試主機(jī)與直連設(shè)備無法正常通信時(shí)無需采用人工方式進(jìn)行排查即可自動(dòng)添加正確的ARP以保證測試主機(jī)與直連設(shè)備正常通信進(jìn)行AP模式自動(dòng)化測試,因此,本發(fā)明測試方法可避免現(xiàn)有技術(shù)人工排查造成的測試周期長、測試可靠性低等缺失。
【附圖說明】
[0016]下面將以明確易懂的方式,結(jié)合【附圖說明】優(yōu)選實(shí)施方式,對(duì)一種避免ARP干擾的網(wǎng)絡(luò)通信測試方法及系統(tǒng)的上述特性、技術(shù)特征、優(yōu)點(diǎn)及其實(shí)現(xiàn)方式予以進(jìn)一步說明。
[0017]圖1是本發(fā)明之測試方法所應(yīng)用的網(wǎng)絡(luò)架構(gòu)示意圖;
[0018]圖2是本發(fā)明之避免ARP干擾的網(wǎng)絡(luò)通信測試方法的流程圖;以及
[0019]圖3是本發(fā)明之避免ARP干擾的網(wǎng)絡(luò)通信測試系統(tǒng)架構(gòu)示意圖。
[0020]附圖標(biāo)號(hào)說明:
[0021]PC1、PC2、PC3 測試主機(jī)
[0022]DUT1、DUT2、DUT3 待測設(shè)備
[0023]30.廣播模塊,31.處理模塊,32.測試模塊
[0024]310.導(dǎo)出模塊,311.賦值模塊,312.編譯模塊,313.檢測模塊,314.清除模塊,315.添加模塊。
【具體實(shí)施方式】
[0025]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)照【附圖說明】本發(fā)明的【具體實(shí)施方式】。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖,并獲得其他的實(shí)施方式。
[0026]本發(fā)明主要是透過測試主機(jī)PC與其直連的調(diào)用測試腳本自動(dòng)對(duì)測試主機(jī)所接收到的ARP響應(yīng)的正確性進(jìn)行檢測,并在此ARP響應(yīng)不正確時(shí)自動(dòng)將其清除并添加正確的ARP,之后執(zhí)行AP模式自動(dòng)化測試以驗(yàn)證測試主機(jī)與其直連的設(shè)備間的正常通信。為清楚簡要闡述本發(fā)明,將結(jié)合附圖1、2對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
[0027]如圖1所示,測試主機(jī)PC1、PC2、PC3透過路由或交換機(jī)分別與VLAN網(wǎng)絡(luò)上的待測試設(shè)備DUT1、DUT2、DUT3直連。測試主機(jī)PCl、PC2、PC3分別向VLAN網(wǎng)絡(luò)發(fā)送ARP請(qǐng)求廣播,并接收該些設(shè)備DUT1、DUT2、DUT3發(fā)送的ARP響應(yīng)進(jìn)行緩存,本發(fā)明之方法可對(duì)測試主機(jī)所接收到的ARP正確性進(jìn)行驗(yàn)證,以避免錯(cuò)誤ARP干擾而使AP模式自動(dòng)化測試無法正常進(jìn)行。
[0028]于該實(shí)施例中,設(shè)備DUT1、DUT2、DUT3同時(shí)進(jìn)行自動(dòng)化測試,為了更好地說明本發(fā)明的預(yù)期效果,下面以自動(dòng)化環(huán)境測試DUTl的AP模式case舉例說明本發(fā)明的詳細(xì)技術(shù)方案。
[0029]當(dāng)DUTl的AP模式case自動(dòng)化測試運(yùn)行至測試主機(jī)PCl與直連的DUTl進(jìn)行通信時(shí),測試腳本開始執(zhí)行以下步驟,詳細(xì)步驟流程如圖2所示。
[0030]首選,執(zhí)行步驟SI,測試腳本調(diào)用函數(shù)subprocess.Popen輸入ARP命令將測試主機(jī)PCl的ARP緩存列表導(dǎo)出來并賦值給某一個(gè)變量A,使用decode函數(shù)將變量A轉(zhuǎn)換成Unicode編碼(使其能夠正常顯示),使用正則表達(dá)式處理函數(shù)以DUT管理地址(該地址為固定)作為匹配項(xiàng)定位變量A中的DUT管理地址的位置,并以特殊字符為匹配項(xiàng)匹配DUT管理地址后面的字符,這些字符就是DUT管理地址對(duì)應(yīng)的MAC地址,將這些字符原封不動(dòng)賦值給一個(gè)變量B。
[0031 ] 執(zhí)行步驟S2,使用邏輯函數(shù)和賦值運(yùn)算符將變量B中MAC地址和預(yù)設(shè)的MAC地址進(jìn)行比較,檢測MAC地址的正確性,若正確則執(zhí)行步驟S8,否則執(zhí)行步驟S3。
[0032]執(zhí)行步驟S3,測試腳本調(diào)用函數(shù)subprocess.Popen輸入ARP命令清除與DUT管理地址相關(guān)的IP地址和MAC地址的ARP對(duì)應(yīng)條目,調(diào)用函數(shù)subprocess.Popen輸入ARP命令將測試主機(jī)PCl的ARP緩存列表導(dǎo)出來并賦值給某一個(gè)變量C,使用decode函數(shù)將變量C轉(zhuǎn)換成Unicode編碼(使其能夠正常顯示)。
[0033]執(zhí)行步驟4,使用正則表達(dá)式處理函數(shù)以DUT管理地址作為匹配項(xiàng)來匹配變量C中是否存在DUT管理地址,若不存在說明清除干凈,若存在則說明沒有清除干凈(ARP會(huì)自動(dòng)學(xué)習(xí)并添加),需重復(fù)調(diào)用函數(shù)subprocess.Popen輸入ARP命令清除與DUT管理地址相關(guān)的IP地址和MAC地址的ARP對(duì)應(yīng)條目,調(diào)用函數(shù)subprocess.Popen輸入ARP命令將測試主機(jī)PCl的ARP緩存列表導(dǎo)出來并賦值給某一個(gè)變量C,使用decode函數(shù)將變量C轉(zhuǎn)換成Unicode編碼(使其能夠正常顯示),使用正則表達(dá)式處理函數(shù)以DUT管理地址作為匹配項(xiàng)來匹配變量C中的DUT管理地址直到清除干凈。
[0034]執(zhí)行步驟S5,調(diào)用函