本申請涉及計算機技術領域,尤其涉及一種服務器接口的自動化測試方法及裝置。
背景技術:
隨著計算機技術的不斷發展,為了降低終端的運行壓力以及便于數據的維護和更新,服務器與安裝在終端上的客戶端進行數據交互的運行模式逐漸被應用的越來越廣泛。
目前,服務器可通過接口與客戶端進行數據的交互,從而為用戶提供各種業務,即,客戶端將用戶的請求發送給服務器,服務器可通過接口將該請求對應的業務數據返回給客戶端,客戶端在將業務數據提供給用戶。
為了使得測試人員在進行服務器與客戶端結合的系統測試過程中,就能夠排除由于服務器的接口缺陷所導致的問題,便于定位問題,因此,在對服務器與客戶端結合的系統測試過程中,首先需要對服務器的接口進行測試,以此來確保服務器的接口的功能實現正確。
現有技術對服務器的接口進行測試的過程中,人工先在數據庫中創建測試數據,后續,客戶端向服務器發送預先構建的測試數據對應的業務請求,服務器通過接口接收到該業務請求后,直接將業務請求對應的測試數據返回給客戶端,客戶端將接收到的測試數據提供給人工,人工判斷返回的測試數據與期望數據是否一致,若是,則說明服務器的接口的功能實現正確,若否,則說明服務器的接口的功能實現存在缺陷。
顯然,在測試的過程中,人工檢查服務器的接口返回的數據是否正確,會耗費大量的時間并且效率較低,從而導致整個回歸測試的時間較長。
技術實現要素:
本申請實施例提供一種服務器接口的自動化測試方法及裝置,用以解決現有技術中人工檢查服務器的接口返回的數據是否正確,會耗費大量的時間并且效率較低,從而導致整個回歸測試的時間較長的問題。
本申請實施例提供一種服務器接口的自動化測試方法,包括:
訪問預設的請求鏈接,使服務器在數據庫中獲取所述請求鏈接對應的測試數據;
接收服務器通過接口返回的所述請求鏈接對應的測試數據;
確定所述請求鏈接對應的測試數據與預設的期望數據一致;
確定服務器接口的自動化測試成功。
優選地,所述數據庫包括:mysql數據庫和redis數據庫。
優選地,在訪問預設的請求鏈接之前,分別向mysql數據庫和redis數據庫發送數據清空命令,使mysql數據庫和redis數據庫清空已存儲的數據,向mysql數據庫發送添加命令,使mysql數據庫添加所述請求鏈接對應的測試數據,其中,所述添加命令中攜帶有所述請求鏈接對應的測試數據,向redis數據庫發送更新命令,使redis數據庫更新添加到mysql數據庫中的所述請求鏈接對應的測試數據。
優選地,在確定服務器接口的自動化測試成功之前,向mysql數據庫發送刪除命令,使mysql數據庫將所述請求鏈接對應的測試數據刪除,向redis數據庫發送刪除命令,使redis數據庫將所述請求鏈接對應的測試數據刪除。
優選地,當未接收到服務器通過接口返回的所述請求鏈接對應的測試數據,則自動化測試失敗。
本申請實施例提供一種服務器接口的自動化測試裝置,包括:
訪問模塊,用于訪問預設的請求鏈接,使服務器在數據庫中獲取所述請求鏈接對應的測試數據;
接收模塊,用于接收服務器通過接口返回的所述請求鏈接對應的測試數據;
第一確定模塊,用于確定所述請求鏈接對應的測試數據與預設的期望數據一致;
第二確定模塊,用于確定服務器接口的自動化測試成功。
優選地,所述數據庫包括:mysql數據庫和redis數據庫。
優選地,所述裝置還包括:初始化模塊,用于在訪問模塊訪問預設的請求鏈接之前,分別向mysql數據庫和redis數據庫發送數據清空命令,使mysql數據庫和redis數據庫清空已存儲的數據,向mysql數據庫發送添加命令,使mysql數據庫添加所述請求鏈接對應的測試數據,其中,所述添加命令中攜帶有所述請求鏈接對應的測試數據,向redis數據庫發送更新命令,使redis數據庫更新添加到mysql數據庫中的所述請求鏈接對應的測試數據。
優選地,所述裝置還包括:刪除模塊,用于在第二確定模塊確定服務器接口的自動化測試成功之前,向mysql數據庫發送刪除命令,使mysql數據庫將所述請求鏈接對應的測試數據刪除,向redis數據庫發送刪除命令,使redis數據庫將所述請求鏈接對應的測試數據刪除。
優選地,所述裝置還包括:測試失敗模塊,用于當所述接收模塊未接收到服務器通過接口返回的所述請求鏈接對應的測試數據,則自動化測試失敗。
本申請實施例提供一種服務器接口的自動化測試方法及裝置,該方法包括:訪問預設的請求鏈接,使服務器在數據庫中獲取該請求鏈接對應的測試數據,接收服務器通過接口返回的該請求鏈接對應的測試數據,確定該請求鏈接對應的測試數據與預設的期望數據一致,確定服務器接口的自動化測試成功。通過上述方法,對服務器的接口進行測試的整個過程不再由人工去實施,而是可直接由自動化測試工具或設備模擬人工的操作來完成,這樣可有效的節約人力成本,并且縮短了整個回歸測試時間,提高了測試效率。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:
圖1為本申請實施例提供的一種服務器接口的自動化測試的過程示意圖;
圖2為本申請實施例提供的一種服務器接口的自動化測試裝置的結構示意圖。
具體實施方式
為使本申請的目的、技術方案和優點更加清楚,下面將結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
圖1為本申請實施例提供的服務器接口的自動化測試過程,具體包括以下步驟:
S101:訪問預設的請求鏈接。
在實際應用中,為了使得測試人員在進行服務器與客戶端結合的系統測試過程中,就能夠排除由于服務器的接口缺陷所導致的問題,便于定位問題,因此,在對服務器與客戶端結合的系統測試過程中,首先需要對服務器的接口進行測試,以此來確保服務器的接口的功能實現正確。
進一步的,由于在對服務器的接口進行自動化測試的過程中,需要提前知道服務器返回的正確數據具體是什么,因此,在本申請中,可對服務器返回的數據進行控制,具體的,就是可向數據庫發送攜帶有已知的正確的測試數據的數據添加命令,數據庫添加已知的正確的測試數據。
另外,為了能夠防止已經存在在數據庫中的其他數據干擾到正確的測試數據,因此,需要在向數據庫發送攜帶有已知的正確的測試數據的數據添加命令之前,需要先向數據庫發送數據清空命令,數據庫接收到該數據清空命令后,將其中已存儲的數據全部清空。
在此需要說明的是,由于數據庫有可能存在添加數據出現錯誤的情況,也就是說,沒有將測試數據正確添加到數據庫,因此,在本申請中,在將該測試數據添加到數據庫后,需要根據添加命令中所攜帶的測試數據,判斷數據庫中的測試數據是否正確的添加到數據庫,如果沒有正確的添加到數據庫,則服務器接口的自動化測試失敗。
上述所提到的正確添加到數據庫是指不僅僅在數據庫中添加完成正確的測試數據,還要使得已經添加完成的測試數據與添加命令中所攜帶的測試數據一致。
另外,在數據庫中添加了已知的正確的測試數據后,后續需要在測試的過程中訪問到該測試數據,因此,在本申請中,還需要預先設定一個請求鏈接,通過該請求鏈接可以直接訪問到添加到該數據庫中的該測試數據。
進一步的,在對服務器的接口進行自動化測試的過程中,首先需要通過安裝在終端上的客戶端(如,瀏覽器)使用get或post的方式訪問預設的請求鏈接,終端將請求鏈接對應的請求發送給服務器,服務器接收到該請求鏈接對應的請求后,直接在數據庫中獲取該請求鏈接對應的測試數據,并將該請求鏈接對應的測試數據返回給終端。
S102:接收服務器通過接口返回的所述請求鏈接對應的測試數據。
S103:確定所述請求鏈接對應的測試數據與預設的期望數據一致。
S104:確定服務器接口的自動化測試成功。
在實際應用中,有可能存在終端并未接收到服務器通過接口返回的測試數據的情況,也就是說,服務器的接口并沒用正確的實現其功能,因此,在本申請中,在執行完成S101后,需要判斷是否接收到服務器返回的測試數據,當終端未接收到服務器通過接口返回的該請求鏈接對應的測試數據,則自動化測試失敗,也就是說,服務器的接口沒有正確的實現其功能。
進一步的,由于本申請旨在通過將服務器返回的測試數據與已知正確的測試數據(也即,期望數據)進行比對,來判斷該服務器接口功能是否正確,因此,在本申請中,當終端接收到服務器通過接口返回的該請求鏈接對應的測試數據后,需要確定該返回的測試數據是否與預設的期望數據一致。
當確定該返回的請求鏈接對應的測試數據與預設期望數據一致,則確定服務器接口的自動化測試成功,說明服務器的接口可以正確的實現其功能,沒有任何缺陷,而當確定該返回的請求鏈接對應的測試數據與預設期望數據不一致,則確定服務器接口的自動化測試失敗,說明服務器的接口存在缺陷。
通過上述方法,對服務器的接口進行測試的整個過程不再由人工去實施,而是可直接由自動化測試工具或設備模擬人工的操作來完成,這樣可有效的節約人力成本,并且縮短了整個回歸測試時間,提高了測試效率。
進一步的,在實際應用中,在確定服務器的接口的自動化測試成功之前,還需要將數據庫存儲的測試數據刪除,具體的,向數據庫發送刪除命令,使數據庫將該請求鏈接對應的測試數據刪除。并且,判斷測試數據是否刪除成功,如果是,則確定服務器的接口的自動化測試成功,如果否,則確定服務器的接口的自動化測試失敗。
在此需要說明的是,上述所提到的測試數據是否刪除成功是指不僅僅在數據庫中完成刪除測試數據的操作,還要使得全部測試數據從數據庫中刪除干凈。
為了更加清楚的闡述本申請的實施過程,以下以數據庫包括:mysql數據庫和redis數據庫為實施例進行說明。
在實際應用中,由于redis數據庫有很快的數據讀寫速度,因此,為了提高數據的讀寫速度,通常同時使用mysql數據庫和redis數據庫,將redis數據庫作為mysql數據庫的緩存,也就是說,用戶在進行更新(即,增加,刪除,修改)操作時,只需要在mysql數據庫中更新即可,后續,redis數據庫會通過redis更新接口將mysql數據庫中所更新的數據更新到redis數據庫。
服務器在接收到終端發送的請求鏈接對應的請求后,可先在redis數據庫中查找請求鏈接對應的數據。
因此,本申請在對服務器的接口進行自動化測試的過程中,預先分別向mysql數據庫和redis數據庫發送數據清空命令,使mysql數據庫和redis數據庫清空已存儲的數據,再向mysql數據庫發送攜帶有該請求鏈接對應的測試數據的添加命令,使mysql數據庫添加所述請求鏈接對應的測試數據,向redis數據庫發送更新命令,使redis數據庫更新添加到mysql數據庫中的該請求鏈接對應的測試數據。并設定一個請求鏈接,通過該請求鏈接可以直接訪問到添加到該mysql數據庫和redis數據庫中的該測試數據
進一步的,訪問預設的請求鏈接,通過安裝在終端上的客戶端(如,瀏覽器)使用get或post的方式訪問預設的請求鏈接,終端將請求鏈接對應的請求發送給服務器,服務器接收到該請求鏈接對應的請求后,直接在redis數據庫中獲取該請求鏈接對應的測試數據,并將該請求鏈接對應的測試數據返回給終端。
進一步的,接收服務器通過接口返回的該請求鏈接對應的測試數據,并確定該返回的測試數據是否與預設的期望數據一致,如果一致,則向mysql數據庫發送刪除命令,使mysql數據庫將該請求鏈接對應的測試數據刪除,向redis數據庫發送刪除命令,使redis數據庫將該請求鏈接對應的測試數據刪除,如果不一致,則確定服務器接口的自動化測試失敗。
進一步的,在向mysql數據庫發送刪除命令,使mysql數據庫將該請求鏈接對應的測試數據刪除,向redis數據庫發送刪除命令,使redis數據庫將該請求鏈接對應的測試數據刪除后,需要判斷測試數據是否刪除成功,如果是,則確定服務器的接口的自動化測試成功,如果否,則確定服務器的接口的自動化測試失敗。
以上為本申請實施例提供的服務器接口的自動化測試方法,基于同樣的思路,本申請實施例還提供一種服務器接口的自動化測試裝置。
如圖2所示,本申請實施例提供的一種服務器接口的自動化測試裝置,包括:
訪問模塊201,用于訪問預設的請求鏈接,使服務器在數據庫中獲取所述請求鏈接對應的測試數據;
接收模塊202,用于接收服務器通過接口返回的所述請求鏈接對應的測試數據;
第一確定模塊203,用于確定所述請求鏈接對應的測試數據與預設的期望數據一致;
第二確定模塊204,用于確定服務器接口的自動化測試成功。
所述數據庫包括:mysql數據庫和redis數據庫。
所述裝置還包括:
初始化模塊205,用于在訪問模塊201訪問預設的請求鏈接之前,分別向mysql數據庫和redis數據庫發送數據清空命令,使mysql數據庫和redis數據庫清空已存儲的數據,向mysql數據庫發送添加命令,使mysql數據庫添加所述請求鏈接對應的測試數據,其中,所述添加命令中攜帶有所述請求鏈接對應的測試數據,向redis數據庫發送更新命令,使redis數據庫更新添加到mysql數據庫中的所述請求鏈接對應的測試數據。
所述裝置還包括:
刪除模塊206,用于在第二確定模塊204確定服務器接口的自動化測試成功之前,向mysql數據庫發送刪除命令,使mysql數據庫將所述請求鏈接對應的測試數據刪除,向redis數據庫發送刪除命令,使redis數據庫將所述請求鏈接對應的測試數據刪除。
所述裝置還包括:
測試失敗模塊207,用于當所述接收模塊202未接收到服務器通過接口返回的所述請求鏈接對應的測試數據,則自動化測試失敗。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態隨機存取存儲器(SRAM)、動態隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitory media),如調制的數據信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本申請的實施例可提供為方法、系統或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求范圍之內。