本發(fā)明屬于信息技術(shù)領(lǐng)域,具體涉及一種DNS監(jiān)測服務(wù)自動化測試方法與系統(tǒng)。
背景技術(shù):
DNS監(jiān)測服務(wù)是利用DNS探測技術(shù)對域名解析服務(wù)進(jìn)行多維度監(jiān)測分析的服務(wù)系統(tǒng),一般采用分布式部署方式,從多個(gè)監(jiān)測點(diǎn)探測監(jiān)測對象。其主要監(jiān)測對象為DNS權(quán)威服務(wù)器和公共遞歸服務(wù)器,大多從安全、配置、性能、可用性等方面進(jìn)行監(jiān)控和綜合分析,以此反映當(dāng)前互聯(lián)網(wǎng)域名服務(wù)體系的整體狀態(tài)。
目前,針對DNS監(jiān)測服務(wù)系統(tǒng)的測試方法較為單一,一般是在監(jiān)測點(diǎn)通過DNS查詢工具發(fā)DNS查詢包對公共遞歸或權(quán)威服務(wù)器進(jìn)行手工探測,將接收到的反饋與待測系統(tǒng)的反饋進(jìn)行人工比對。這類測試通常存在如下缺點(diǎn):a、對真實(shí)DNS服務(wù)器探測,其反饋結(jié)果不可控,無法對各種異常情況的監(jiān)測結(jié)果做全面測試;b、因監(jiān)測屬性多樣且監(jiān)測對象離散,若全部采用枚舉測試,則測試工期太長,效率極低;c、若手工模擬探測過程進(jìn)行抽樣測試,則測試樣本不完整,且存在偶然性,測試結(jié)果權(quán)威性較差,說服力不足;d、模擬探測結(jié)果與監(jiān)測服務(wù)反饋結(jié)果的比對過程數(shù)據(jù)量大,且涉及多維度各個(gè)字段值的驗(yàn)證,人工比對出錯(cuò)率高,容易有誤差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對上述問題,提供一種DNS監(jiān)測服務(wù)自動化測試方法與系統(tǒng),以實(shí)現(xiàn)對DNS監(jiān)測服務(wù)系統(tǒng)的快速可靠的自動化測試。具體來說,本發(fā)明的目的主要包括:
1)通過一種自動化測試方法與系統(tǒng)的設(shè)計(jì),自動化地模擬測試全流程,包括DNS監(jiān)測服務(wù)發(fā)送探測請求、DNS服務(wù)器響應(yīng)請求、DNS監(jiān)測服務(wù)獲取響應(yīng)數(shù)據(jù)、比對期望結(jié)果和監(jiān)測結(jié)果異同,以提高測試效率;
2)監(jiān)測服務(wù)的預(yù)期結(jié)果和監(jiān)測結(jié)果進(jìn)行自動化比對,提高測試控制精度與準(zhǔn)確性;
3)支持盡可能多功能的測試自動化,覆蓋絕大多數(shù)測試用例;
4)通過此方法與系統(tǒng)的使用,使測試者只需要維護(hù)測試數(shù)據(jù),不需要維護(hù)腳本或代碼,降低測試成本,降低自動化測試技能要求。
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
一種DNS監(jiān)測服務(wù)自動化測試方法,其包括以下步驟:
1)指定待測服務(wù)和待監(jiān)測的DNS服務(wù)器的IP及端口;
2)根據(jù)測試用例區(qū)分不同測試場景編寫測試用例文件;
3)根據(jù)測試用例文件編寫監(jiān)測項(xiàng)配置文件,以指定各用例的監(jiān)測場景;
4)根據(jù)各用例的監(jiān)測項(xiàng)配置文件編寫其對應(yīng)的期望結(jié)果文件;
5)通過自動化測試程序逐條執(zhí)行測試用例,向待監(jiān)測的DNS服務(wù)器發(fā)送查詢包,并將反饋結(jié)果與期望結(jié)果進(jìn)行比對;
6)在全部用例執(zhí)行完畢后,根據(jù)步驟5)得到的比對結(jié)果生成測試報(bào)告。
一種DNS監(jiān)測服務(wù)自動化測試系統(tǒng),其包括:
配置管理模塊,負(fù)責(zé)讀取和解析總控配置文件,獲取待測服務(wù)及DNS服務(wù)器信息;
DNS服務(wù)器控制模塊,負(fù)責(zé)讀取總控配置文件指定的DNS服務(wù)配置文件,控制DNS服務(wù)器的配置與啟動,實(shí)現(xiàn)對DNS響應(yīng)結(jié)果的自動化控制;
DNS包管理模塊,負(fù)責(zé)根據(jù)監(jiān)測項(xiàng)配置文件確定監(jiān)測場景,組裝相應(yīng)DNS報(bào)文并發(fā)送到DNS服務(wù)器;同時(shí)負(fù)責(zé)讀取和解析響應(yīng)包的數(shù)據(jù)內(nèi)容,為結(jié)果驗(yàn)證模塊提供服務(wù);
結(jié)果驗(yàn)證模塊,負(fù)責(zé)將待測服務(wù)的監(jiān)測結(jié)果與期望結(jié)果文件中的期望結(jié)果進(jìn)行比對,從而判斷DNS監(jiān)測服務(wù)系統(tǒng)功能的正確性;
執(zhí)行控制模塊,負(fù)責(zé)讀取測試用例文件,啟動自動化測試程序,觸發(fā)待測系統(tǒng)根據(jù)總控配置文件與DNS服務(wù)配置文件向DNS服務(wù)器逐條發(fā)送DNS包管理模塊指定的所有查詢包,并在接收到響應(yīng)報(bào)文后,獲取待測服務(wù)的反饋結(jié)果傳遞到結(jié)果驗(yàn)證模塊以進(jìn)行比對,并根據(jù)比對結(jié)果生成測試報(bào)告。
本發(fā)明的關(guān)鍵點(diǎn)是:
1)測試系統(tǒng)監(jiān)測項(xiàng)配置文件的使用,定義和實(shí)現(xiàn)多個(gè)監(jiān)測項(xiàng)對應(yīng)的配置項(xiàng),并通過自動化測試系統(tǒng)啟動程序讀取該配置文件,執(zhí)行相應(yīng)操作。
2)自動化測試方式的實(shí)現(xiàn),通過啟動自動化測試流程,觸發(fā)待測服務(wù)的多個(gè)監(jiān)測點(diǎn)向多個(gè)監(jiān)測對象發(fā)送可控的DNS探測包,實(shí)現(xiàn)了多對多的監(jiān)測行為模擬,并通過操控DNS服務(wù)器返回各種不同的響應(yīng)包,將待測服務(wù)的監(jiān)測結(jié)果與其相應(yīng)的期望結(jié)果進(jìn)行比對。
3)期望結(jié)果文件的使用,通過將監(jiān)測服務(wù)的期望結(jié)果按格式存入文件,跟待測系統(tǒng)監(jiān)測結(jié)果逐行對比。
本發(fā)明的有益效果如下:
1)測試自動化率高,可覆蓋全流程業(yè)務(wù)邏輯功能測試的絕大多數(shù)用例,提高測試效率。
2)對每個(gè)待測用例,測試人員只需要準(zhǔn)備少量配置和數(shù)據(jù)便可實(shí)現(xiàn)自動化測試,可維護(hù)性強(qiáng),操作簡易。
3)對監(jiān)測對象行為的模擬場景多元化,可通過控制DNS服務(wù)器定制響應(yīng)報(bào)文,同時(shí)能夠?qū)Ω黝惍惓G闆r進(jìn)行針對性模擬,擴(kuò)大了可測范圍,同時(shí)加強(qiáng)了測試的可控性。
4)針對監(jiān)測服務(wù)的特點(diǎn),監(jiān)測項(xiàng)可隨時(shí)增加和定義,可擴(kuò)展性強(qiáng)。
5)對監(jiān)測結(jié)果的比對方式,節(jié)省了人工測試的成本,降低了人為失誤的風(fēng)險(xiǎn),從而實(shí)現(xiàn)了對DNS監(jiān)測服務(wù)系統(tǒng)快速可靠的自動化測試。
附圖說明
圖1是本發(fā)明的DNS監(jiān)測服務(wù)自動化測試系統(tǒng)的示意圖。
圖2是實(shí)施例中DNS監(jiān)測服務(wù)自動化測試方法的流程圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面通過具體實(shí)施例和附圖,對本發(fā)明做進(jìn)一步說明。
本發(fā)明提出的對DNS監(jiān)測服務(wù)系統(tǒng)進(jìn)行自動化測試的系統(tǒng),如圖1所示,包括以下模塊或子系統(tǒng):
1)配置管理模塊,負(fù)責(zé)讀取和解析總控配置文件內(nèi)容,通過總控配置文件獲取待測服務(wù)IP及服務(wù)端口列表、DNS服務(wù)器IP及端口列表文件路徑等配置信息。
2)DNS包管理模塊,負(fù)責(zé)根據(jù)監(jiān)測項(xiàng)配置文件確定監(jiān)測場景,根據(jù)RFC1035DNS報(bào)文協(xié)議要求組裝相應(yīng)DNS報(bào)文,并發(fā)送到DNS服務(wù)器;同時(shí)負(fù)責(zé)讀取和解析響應(yīng)包的數(shù)據(jù)內(nèi)容,為結(jié)果驗(yàn)證模塊提供服務(wù)。
3)DNS服務(wù)器控制模塊,負(fù)責(zé)讀取總控配置文件指定的DNS服務(wù)配置文件(即DNS服務(wù)器IP及端口列表文件),控制列表中DNS服務(wù)器的配置與啟動,實(shí)現(xiàn)對DNS響應(yīng)結(jié)果的自動化控制。
4)結(jié)果驗(yàn)證模塊,負(fù)責(zé)將待測服務(wù)的監(jiān)測結(jié)果與期望結(jié)果(來自于期望結(jié)果文件)按照DNS響應(yīng)報(bào)文的格式將各個(gè)字段值進(jìn)行逐一比對,從而判斷DNS監(jiān)測服務(wù)系統(tǒng)功能的正確性。
5)執(zhí)行控制模塊,負(fù)責(zé)讀取測試用例文件,啟動自動化測試程序,觸發(fā)待測服務(wù)根據(jù)總控配置文件與DNS服務(wù)配置文件向DNS服務(wù)器逐條發(fā)送DNS包管理模塊指定的所有查詢包,并在接收到響應(yīng)報(bào)文后,獲取待測服務(wù)的反饋結(jié)果傳遞到結(jié)果驗(yàn)證模塊,最后將該模塊返回的比對結(jié)果生成測試報(bào)告,保存到指定目錄。
其中,總控配置文件,用于指定待測服務(wù)及DNS服務(wù)器信息,內(nèi)容舉例如下:
Server1=1.1.1.1/53
Server2=1.1.1.2/53
DNS Server File=dir/dnslist.txt----------DNS服務(wù)器IP及端口列表文件路徑
DNS服務(wù)配置文件,即DNS服務(wù)器IP及端口列表文件,用于指定DNS服務(wù)器(監(jiān)測對象)的IP及端口,舉例如下:
8.8.8.8 53
1.2.4.8 53
或a.root-servers.net.53
測試用例文件,用于指定每條用例的監(jiān)測項(xiàng)配置文件及對應(yīng)的期望結(jié)果文件,格式如下:
其中,ItemsFileName表示監(jiān)測項(xiàng)配置文件路徑,CheckFileName表示該條用例對應(yīng)的期望結(jié)果文件。由于監(jiān)測服務(wù)每個(gè)用例即為一個(gè)多監(jiān)測項(xiàng)的混合場景,因此用監(jiān)測項(xiàng)配置文件來描述一個(gè)用例的測試場景。
監(jiān)測項(xiàng)配置文件,是對各監(jiān)測指標(biāo)的開關(guān),監(jiān)測項(xiàng)可擴(kuò)展,每個(gè)監(jiān)測項(xiàng)配置文件的內(nèi)容允許不同,但關(guān)鍵詞必須已定義。其配置格式及對應(yīng)含義,舉例如下:
DNSSEC=1------------------表示監(jiān)測DNS服務(wù)是否支持DNSSEC查詢;
TCP=0------------------表示不監(jiān)測DNS服務(wù)是否支持TCP;
NSEC3=1------------------表示監(jiān)測DNS服務(wù)是否支持NSEC3;
VERSION=1------------------表示監(jiān)測DNS服務(wù)當(dāng)前版本。
期望結(jié)果文件,用于記錄待測監(jiān)測服務(wù)對當(dāng)前用例執(zhí)行結(jié)果的期望監(jiān)測結(jié)果。首行為各列標(biāo)題,第二行開始為內(nèi)容,每行對應(yīng)一個(gè)目標(biāo)服務(wù)器的監(jiān)測期望結(jié)果,其內(nèi)容舉例如下:
DNS-Server,DNSSEC,TCP,NSEC3,VERSION
a.root-servers.net.(或IP),yes,yes,no,ISC BIND
b.root-servers.net.(或IP),no,no,yes,NLnetLabs NSD
將獲取的監(jiān)測結(jié)果與上述期望結(jié)果文件進(jìn)行比對,統(tǒng)計(jì)并記錄比對差異及準(zhǔn)確率,生成測試報(bào)告。
根據(jù)上述系統(tǒng),本實(shí)施例的自動化測試流程如圖2所示。其步驟描述如下:
1)配置總控配置文件,指定待測服務(wù)和監(jiān)測對象(DNS服務(wù)器)的IP及端口;
2)根據(jù)測試用例,區(qū)分不同測試場景,編寫測試用例文件;
3)根據(jù)測試用例文件,編寫監(jiān)測項(xiàng)配置文件,指定各用例的監(jiān)測場景;
4)根據(jù)各用例的監(jiān)測項(xiàng)配置文件,編寫其對應(yīng)的期望結(jié)果文件;
5)根據(jù)配置,執(zhí)行自動化測試程序,讀取上述所需配置,逐條執(zhí)行測試用例,并將反饋結(jié)果與期望結(jié)果比對;
6)全部用例執(zhí)行完畢,生成測試報(bào)告。
以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書所述為準(zhǔn)。