本發(fā)明涉及測(cè)試領(lǐng)域,特別是涉及一種基于socket的dmz功能自動(dòng)化測(cè)試方法及系統(tǒng)。
背景技術(shù):
dmz(demilitarizedzone,隔離區(qū))是為了解決安裝防火墻后外部網(wǎng)絡(luò)的訪問(wèn)用戶不能訪問(wèn)內(nèi)部網(wǎng)絡(luò)服務(wù)器的問(wèn)題,而設(shè)立的一個(gè)非安全系統(tǒng)與安全系統(tǒng)之間的緩沖區(qū)。該緩沖區(qū)位于內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間的小網(wǎng)絡(luò)區(qū)域內(nèi)。在這個(gè)小網(wǎng)絡(luò)區(qū)域內(nèi)可以放置一些必須公開的服務(wù)器設(shè)施,如企業(yè)web服務(wù)器、ftp服務(wù)器和論壇等,通過(guò)這樣一個(gè)dmz區(qū)域,更加更有效地保護(hù)內(nèi)部網(wǎng)絡(luò)。因此,為了內(nèi)部網(wǎng)絡(luò)的安全性,dmz功能的測(cè)試尤為重要。
dmz功能的測(cè)試目前是以手動(dòng)測(cè)試的方式來(lái)完成的,其需要搭建測(cè)試環(huán)境,在dmz服務(wù)電腦上安裝tcp或udpserver,搭建的過(guò)程比較困難且繁瑣,而且手動(dòng)測(cè)試一次只能測(cè)試一個(gè)端口,占用測(cè)試周期長(zhǎng)。
技術(shù)實(shí)現(xiàn)要素:
為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明之目的在于提供一種基于socket的dmz功能自動(dòng)化測(cè)試方法及系統(tǒng),以簡(jiǎn)化測(cè)試難度、提高測(cè)試效率、減輕測(cè)試人員工作量、縮短測(cè)試周期以及降低產(chǎn)品成本。
為達(dá)上述目的,本發(fā)明提出一種基于socket的dmz功能自動(dòng)化測(cè)試方法,包括如下步驟:
步驟一,建立測(cè)試拓?fù)浣Y(jié)構(gòu),并進(jìn)行相應(yīng)配置;
步驟二,啟動(dòng)測(cè)試pc上的第一協(xié)議的socketserver腳本;
步驟三,通過(guò)協(xié)議連接陪測(cè)pc,開啟該陪測(cè)pc上的第一協(xié)議的socketclient腳本;
步驟四,記錄測(cè)試結(jié)果;
步驟五,關(guān)閉連接該陪測(cè)pc的協(xié)議,開啟該測(cè)試pc上的第二協(xié)議的socketserver腳本;
步驟六,通過(guò)協(xié)議連接該陪測(cè)pc,開啟該陪測(cè)pc上的第二協(xié)議的socketclient腳本;
步驟七,記錄測(cè)試結(jié)果;
步驟八,重復(fù)步驟二至步驟七直至測(cè)試完所有待測(cè)端口。
進(jìn)一步地,于步驟一中,將被測(cè)器件與該測(cè)試pc連接,并通過(guò)網(wǎng)絡(luò)連接該陪測(cè)pc,該測(cè)試pc與陪測(cè)pc間用網(wǎng)線連接,相連的網(wǎng)卡配置同一網(wǎng)段地址,但不配置網(wǎng)關(guān),并配置好該被測(cè)器件的dmz輸入?yún)?shù)。
進(jìn)一步地,該第一協(xié)議為tcp協(xié)議,該第二協(xié)議為udp協(xié)議。
進(jìn)一步地,該socketserver腳本的腳本內(nèi)容為將該測(cè)試pc上的該被測(cè)器件分配的ip地址與待測(cè)端口綁定,等待該待測(cè)pc的socketclient的接入。
進(jìn)一步地,該socketclient腳本的腳本內(nèi)容為向輸入的被測(cè)器件的wan側(cè)地址與待測(cè)端口發(fā)送請(qǐng)求并開始監(jiān)控返回值。
進(jìn)一步地,于步驟四與步驟七中,根據(jù)返回值記錄tcp協(xié)議或udp協(xié)議的dmz功能是否生效。
為達(dá)到上述目的,本發(fā)明還提供一種基于socket的dmz功能自動(dòng)化測(cè)試系統(tǒng),包括:
測(cè)試拓?fù)浣卧?,用于建立測(cè)試拓?fù)浣Y(jié)構(gòu),并進(jìn)行相應(yīng)配置;
第一測(cè)試pc啟動(dòng)單元,用于啟動(dòng)測(cè)試pc上的第一協(xié)議的socketserver腳本,并連接陪測(cè)pc;
第一陪測(cè)pc啟動(dòng)單元,用于開啟該陪測(cè)pc上的第一協(xié)議的socketclient腳本;
第一測(cè)試結(jié)果記錄單元,用于記錄第一測(cè)試結(jié)果;
第二測(cè)試pc啟動(dòng)單元,用于關(guān)閉連接該陪測(cè)pc的協(xié)議,開啟該測(cè)試pc上的第二協(xié)議的socketserver腳本,并連接該陪測(cè)pc;
第二陪測(cè)pc啟動(dòng)單元,用于開啟該陪測(cè)pc上的第二協(xié)議的socketclient腳本;
第二測(cè)試結(jié)果記錄單元,用于記錄第二測(cè)試結(jié)果。
進(jìn)一步地,該測(cè)試拓?fù)浣卧獙⒈粶y(cè)器件與該測(cè)試pc連接,并通過(guò)網(wǎng)絡(luò)連接該陪測(cè)pc,該測(cè)試pc與陪測(cè)pc間用網(wǎng)線連接,相連的網(wǎng)卡配置同一網(wǎng)段地址,但不配置網(wǎng)關(guān),并配置好該被測(cè)器件的dmz輸入?yún)?shù)。
進(jìn)一步地,該第一協(xié)議為tcp協(xié)議,該第二協(xié)議為udp協(xié)議。
進(jìn)一步地,該socketserver腳本的腳本內(nèi)容為將該測(cè)試pc上的該被測(cè)器件分配的ip地址與待測(cè)端口綁定,等待該待測(cè)pc的socketclient的接入,該socketclient腳本的腳本內(nèi)容為向輸入的被測(cè)器件的wan側(cè)地址與待測(cè)端口發(fā)送請(qǐng)求并開始監(jiān)控返回值。
與現(xiàn)有技術(shù)相比,本發(fā)明一種基于socket的dmz功能自動(dòng)化測(cè)試方法及系統(tǒng)基于socket實(shí)現(xiàn)了dmz功能的自動(dòng)化測(cè)試,本發(fā)明簡(jiǎn)化了測(cè)試難度、提高了測(cè)試效率、減輕了測(cè)試人員工作量、縮短了測(cè)試周期以及降低了產(chǎn)品成本。
附圖說(shuō)明
圖1為本發(fā)明一種基于socket的dmz功能自動(dòng)化測(cè)試方法的步驟流程圖;
圖2為本發(fā)明具體實(shí)施例的步驟流程圖;
圖3為本發(fā)明一種基于socket的dmz功能自動(dòng)化測(cè)試系統(tǒng)的系統(tǒng)架構(gòu)圖。
具體實(shí)施方式
以下通過(guò)特定的具體實(shí)例并結(jié)合附圖說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書所揭示的內(nèi)容輕易地了解本發(fā)明的其它優(yōu)點(diǎn)與功效。本發(fā)明亦可通過(guò)其它不同的具體實(shí)例加以施行或應(yīng)用,本說(shuō)明書中的各項(xiàng)細(xì)節(jié)亦可基于不同觀點(diǎn)與應(yīng)用,在不背離本發(fā)明的精神下進(jìn)行各種修飾與變更。
socket是指網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換。socket本質(zhì)是編程接口(api),對(duì)tcp/ip的封裝,tcp/ip也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口,這就是socket編程接口。
根據(jù)連接啟動(dòng)的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過(guò)程可以分為三個(gè)步驟:服務(wù)器監(jiān)聽,客戶端請(qǐng)求,連接確認(rèn)。
(1)服務(wù)器監(jiān)聽:是服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)。
(2)客戶端請(qǐng)求:是指由客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。
(3)連接確認(rèn):是指當(dāng)服務(wù)器端套接字監(jiān)聽到或者說(shuō)接收到客戶端套接字的連接請(qǐng)求,它就響應(yīng)客戶端套接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,連接就建立好了。
本發(fā)明基于socket提出了一種dmz功能自動(dòng)化測(cè)試方法。如圖1所示,本發(fā)明一種基于socket的dmz功能自動(dòng)化測(cè)試方法,包括如下步驟:
步驟101,建立測(cè)試拓?fù)浣Y(jié)構(gòu),并進(jìn)行相應(yīng)配置。在本發(fā)明具體實(shí)施例中,測(cè)試拓?fù)浣Y(jié)構(gòu)如圖2所示,即,dut(deviceundertest,被測(cè)器件)與測(cè)試pc連接,并通過(guò)internet連接陪測(cè)pc,測(cè)試pc與陪測(cè)pc間用網(wǎng)線連接,相連的網(wǎng)卡配置同一網(wǎng)段地址,但不配置網(wǎng)關(guān),也就是說(shuō)由測(cè)試人員按拓?fù)溥B接好設(shè)備,配置好dut中的dmz功能,配置好dmz輸入?yún)?shù),如輸入dut獲取的wan(wideareanetwork,廣域網(wǎng))側(cè)ip地址并輸入待測(cè)端口或待測(cè)端口列表,啟動(dòng)測(cè)試,并計(jì)算待測(cè)端口數(shù)量,設(shè)置循環(huán)值,在本發(fā)明具體實(shí)施例中,循環(huán)值設(shè)置為0。
步驟102,啟動(dòng)測(cè)試pc上的第一協(xié)議的socketserver腳本,等待待測(cè)pc上的socketclient的接入。在本發(fā)明具體實(shí)施例中,第一協(xié)議為tcp協(xié)議,即開啟測(cè)試pc上編寫好的使用tcp協(xié)議socketserver腳本,腳本內(nèi)容為調(diào)用socket模塊中的命令將測(cè)試pc上ip地址(dut分配)與待測(cè)端口綁定,等待socketclient的接入。
步驟103,通過(guò)協(xié)議連接陪測(cè)pc,開啟陪測(cè)pc上的第一協(xié)議的socketclient腳本。在本發(fā)明具體實(shí)施例中,通過(guò)telnet協(xié)議連接陪測(cè)pc,開啟陪測(cè)pc上編寫好的tcp協(xié)議socketclient腳本,腳本內(nèi)容為調(diào)用socket模塊中的命令向測(cè)試人員輸入的dut的wan側(cè)地址與待測(cè)端口發(fā)送請(qǐng)求并開始監(jiān)控返回值。
步驟104,記錄測(cè)試結(jié)果。如果返回值為失敗,則記錄測(cè)試結(jié)果“待測(cè)端口為xx,tcp協(xié)議dmz功能無(wú)效”,如果成功則記錄測(cè)試結(jié)果“待測(cè)端口為xx,tcp協(xié)議dmz功能生效”。
步驟105,關(guān)閉連接陪測(cè)pc的協(xié)議,開啟測(cè)試pc上的第二協(xié)議的socketserver腳本,等待待測(cè)pc上的socketclient的接入。在本發(fā)明具體實(shí)施例中,第二協(xié)議為udp協(xié)議,即關(guān)閉連接陪測(cè)pc的telnet協(xié)議,開啟測(cè)試pc上編寫好的使用udp協(xié)議socketserver腳本,腳本內(nèi)容為調(diào)用socket模塊中的命令將測(cè)試pc上ip地址(dut分配)與待測(cè)端口綁定,等待socketclient的接入。
步驟106,通過(guò)協(xié)議連接陪測(cè)pc,開啟陪測(cè)pc上的第二協(xié)議的socketclient腳本。在本發(fā)明具體實(shí)施例中,通過(guò)telnet協(xié)議連接陪測(cè)pc,開啟陪測(cè)pc上編寫好的udp協(xié)議socketclient腳本,腳本內(nèi)容為調(diào)用socket模塊中的命令向測(cè)試人員輸入的dut的wan側(cè)地址與待測(cè)端口發(fā)送請(qǐng)求并開始監(jiān)控返回值。
步驟107,記錄測(cè)試結(jié)果。如果返回值為失敗,則記錄測(cè)試結(jié)果“待測(cè)端口為xx,udp協(xié)議dmz功能無(wú)效”,如果成功則記錄測(cè)試結(jié)果“待測(cè)端口為xx,udp協(xié)議dmz功能生效”。
步驟108,重復(fù)步驟102至步驟107直至測(cè)試完所有待測(cè)端口。在本發(fā)明具體實(shí)施例中,于步驟107后將循環(huán)值加1,判斷循環(huán)值是否小于待測(cè)端口數(shù)量,如果等于則結(jié)束測(cè)試,如果循環(huán)值小于待測(cè)端口數(shù)量則更改為下一個(gè)端口并重復(fù)步驟102-步驟107。
圖2為本發(fā)明具體實(shí)施例的步驟流程圖。以下將通過(guò)一具體實(shí)施例來(lái)進(jìn)一步說(shuō)明本發(fā)明:
步驟1,建立測(cè)試拓?fù)浣Y(jié)構(gòu),進(jìn)行配置,該測(cè)試拓?fù)浣Y(jié)構(gòu)為dut(deviceundertest,被測(cè)器件)與測(cè)試pc連接,并通過(guò)internet連接陪測(cè)pc,測(cè)試pc與陪測(cè)pc間用網(wǎng)線連接,相連的網(wǎng)卡配置同一網(wǎng)段地址,但不配置網(wǎng)關(guān),即由測(cè)試人員按拓?fù)溥B接好設(shè)備,配置好dut中dmz功能,輸入dut獲取的wan側(cè)ip并輸入待測(cè)端口或待測(cè)端口列表,啟動(dòng)測(cè)試床系統(tǒng);
步驟2,調(diào)用len函數(shù)計(jì)算待測(cè)端口數(shù)量,設(shè)置循環(huán)值為0;
步驟3,調(diào)用pybot命令開啟測(cè)試pc上編寫好的使用tcp協(xié)議socketserver腳本,腳本內(nèi)容為調(diào)用socket模塊中bind命令將測(cè)試pc上ip地址(dut分配)與待測(cè)端口綁定,等待陪測(cè)pc的socketclient的接入;
步驟4,調(diào)用telnetlib模塊telnet函數(shù)通過(guò)telnet協(xié)議連接陪測(cè)pc,調(diào)用pybot命令開啟陪測(cè)pc上編寫好的tcp協(xié)議socketclient腳本,腳本內(nèi)容為調(diào)用socket模塊中connect命令向測(cè)試人員輸入的dut的wan側(cè)地址與待測(cè)端口發(fā)送請(qǐng)求并開始監(jiān)控返回值;
步驟5,如果返回值為失敗,則測(cè)試記錄測(cè)試結(jié)果“待測(cè)端口為xx,tcp協(xié)議dmz功能無(wú)效”,如果成功則記錄測(cè)試結(jié)果“待測(cè)端口為xx,tcp協(xié)議dmz功能生效”;
步驟6,調(diào)用close函數(shù)關(guān)閉telnet連接,調(diào)用pybot命令開啟測(cè)試pc上編寫好的使用udp協(xié)議socketserver腳本,腳本內(nèi)容為調(diào)用socket模塊中bind命令將測(cè)試pc上ip地址(dut分配)與待測(cè)端口綁定,等待陪測(cè)pc的socketclient的接入;
步驟7,調(diào)用telnetlib模塊的telnet函數(shù)通過(guò)telnet協(xié)議連接陪測(cè)pc,調(diào)用pybot命令開啟陪測(cè)pc上編寫好的udp協(xié)議socketclient腳本,腳本內(nèi)容為調(diào)用socket模塊中connect命令向測(cè)試人員輸入的dut的wan側(cè)地址與待測(cè)端口發(fā)送請(qǐng)求并開始監(jiān)控返回值。
步驟8,如果返回值為失敗,則測(cè)試記錄測(cè)試結(jié)果“待測(cè)端口為xx,udp協(xié)議dmz功能無(wú)效”,返回值成功則記錄測(cè)試結(jié)果“待測(cè)端口為xx,udp協(xié)議dmz功能生效”;
步驟9,循環(huán)值加1,判斷循環(huán)值是否小于待測(cè)端口數(shù)量,如果等于則結(jié)束測(cè)試;
步驟10,如果循環(huán)值小于待測(cè)端口數(shù)量則更改為下一個(gè)端口并重復(fù)前面的步驟3-步驟9。
圖3為本發(fā)明一種基于socket的dmz功能自動(dòng)化測(cè)試系統(tǒng)的系統(tǒng)架構(gòu)圖。如圖3所示,本發(fā)明一種基于socket的dmz功能自動(dòng)化測(cè)試系統(tǒng),包括:
測(cè)試拓?fù)浣卧?01,用于建立測(cè)試拓?fù)浣Y(jié)構(gòu),并進(jìn)行相應(yīng)配置。在本發(fā)明具體實(shí)施例中,測(cè)試拓?fù)浣Y(jié)構(gòu)為:dut(deviceundertest,被測(cè)器件)與測(cè)試pc連接,并通過(guò)internet連接陪測(cè)pc,測(cè)試pc與陪測(cè)pc間用網(wǎng)線連接,相連的網(wǎng)卡配置同一網(wǎng)段地址,但不配置網(wǎng)關(guān),也就是說(shuō)由測(cè)試人員按拓?fù)溥B接好設(shè)備,配置好dut中的dmz功能,配置好dmz輸入?yún)?shù),如輸入dut獲取的wan(wideareanetwork,廣域網(wǎng))側(cè)ip地址并輸入待測(cè)端口或待測(cè)端口列表,啟動(dòng)測(cè)試,并計(jì)算待測(cè)端口數(shù)量,設(shè)置循環(huán)值,在本發(fā)明具體實(shí)施例中,循環(huán)值設(shè)置為0。
第一測(cè)試pc啟動(dòng)單元302,用于啟動(dòng)測(cè)試pc上的第一協(xié)議的socketserver腳本,等待待測(cè)pc上的socketclient的接入。在本發(fā)明具體實(shí)施例中,第一協(xié)議為tcp協(xié)議,即,第一測(cè)試pc啟動(dòng)單元302開啟測(cè)試pc上編寫好的使用tcp協(xié)議socketserver腳本,腳本內(nèi)容為調(diào)用socket模塊中的命令將測(cè)試pc上ip地址(dut分配)與待測(cè)端口綁定,等待socketclient的接入,通過(guò)telnet協(xié)議連接陪測(cè)pc。
第一陪測(cè)pc啟動(dòng)單元303,用于開啟陪測(cè)pc上的第一協(xié)議的socketclient腳本。在本發(fā)明具體實(shí)施例中,測(cè)試pc通過(guò)telnet協(xié)議連接陪測(cè)pc,第一陪測(cè)pc啟動(dòng)單元303開啟陪測(cè)pc上編寫好的tcp協(xié)議socketclient腳本,腳本內(nèi)容為調(diào)用socket模塊中的命令向測(cè)試人員輸入的dut的wan側(cè)地址與待測(cè)端口發(fā)送請(qǐng)求并開始監(jiān)控返回值。
第一測(cè)試結(jié)果記錄單元304,用于記錄第一測(cè)試結(jié)果,即,如果返回值為失敗,則記錄測(cè)試結(jié)果“待測(cè)端口為xx,tcp協(xié)議dmz功能無(wú)效”,如果成功則記錄測(cè)試結(jié)果“待測(cè)端口為xx,tcp協(xié)議dmz功能生效”。
第二測(cè)試pc啟動(dòng)單元305,用于關(guān)閉連接陪測(cè)pc的協(xié)議,開啟測(cè)試pc上的第二協(xié)議的socketserver腳本,等待待測(cè)pc上的socketclient的接入。在本發(fā)明具體實(shí)施例中,第二協(xié)議為tcp協(xié)議,即關(guān)閉連接陪測(cè)pc的telnet協(xié)議,開啟測(cè)試pc上編寫好的使用udp協(xié)議socketserver腳本,腳本內(nèi)容為調(diào)用socket模塊中的命令將測(cè)試pc上ip地址(dut分配)與待測(cè)端口綁定,等待socketclient的接入,并連接陪測(cè)pc。
第二陪測(cè)pc啟動(dòng)單元306,用于開啟陪測(cè)pc上的第二協(xié)議的socketclient腳本。在本發(fā)明具體實(shí)施例中,測(cè)試pc通過(guò)telnet協(xié)議連接陪測(cè)pc,第二陪測(cè)pc啟動(dòng)單元306開啟陪測(cè)pc上編寫好的udp協(xié)議socketclient腳本,腳本內(nèi)容為調(diào)用socket模塊中的命令向測(cè)試人員輸入的dut的wan側(cè)地址與待測(cè)端口發(fā)送請(qǐng)求并開始監(jiān)控返回值。
第二測(cè)試結(jié)果記錄單元307,用于記錄第二測(cè)試結(jié)果,即,如果返回值為失敗,則記錄測(cè)試結(jié)果“待測(cè)端口為xx,udp協(xié)議dmz功能無(wú)效”,如果成功則記錄測(cè)試結(jié)果“待測(cè)端口為xx,udp協(xié)議dmz功能生效”。
綜上所述,本發(fā)明一種基于socket的dmz功能自動(dòng)化測(cè)試方法及系統(tǒng)基于socket實(shí)現(xiàn)了dmz功能的自動(dòng)化測(cè)試,本發(fā)明簡(jiǎn)化了測(cè)試難度、提高了測(cè)試效率、減輕了測(cè)試人員工作量、縮短了測(cè)試周期以及降低了產(chǎn)品成本。
任何本領(lǐng)域技術(shù)人員均可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾與改變。因此,本發(fā)明的權(quán)利保護(hù)范圍,應(yīng)如權(quán)利要求書所列。