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