本發明涉及一種接口測試方法,具體是指一種自動化的接口測試方法。
背景技術:
接口測試是測試系統組件間接口的一種測試,主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
接口測試適用于為其他系統提供服務的底層框架系統和中心服務系統,主要測試這些系統對外部提供的接口,驗證其正確性和穩定性。接口測試同樣適用于一個上層系統中的服務層接口,越往上層,其測試的難度越大。
接口測試實施在多系統多平臺的構架下,有著極為高效的成本收益比,接口測試天生為搞復雜性的平臺帶來高效的缺陷監測和質量監督能力。平臺越復雜,系統越龐大,接口測試的效果越明顯。
接口測試的目的是測試接口,尤其是那些與系統相關聯的外部接口,測試的重點是要檢查數據的交換,傳遞和控制管理過程,還包括處理的次數。
然而,如今的接口測試基本都是依靠人力來執行測試用例,整個測試的過程較為繁雜,需要耗費較多的時間。而在測試完成后還需要人工來收集各個測試用例的各項測試結果,并將測試結果整理成測試報告。此過程不僅耗時耗力,同時因為參數的繁雜性,很容易導致最終的測試報告中出現錯誤,其精準性主要依靠測試人員的職業技能水平,難以進行很好的錯誤規避。
技術實現要素:
本發明的目的在于克服上述問題,提供一種自動化的接口測試方法,提高了接口測試的智能性,并使得整個接口測試的過程無需再通過人工完成,大大提高了接口測試的效率,并進一步提高了接口測試的準確性。
本發明的目的通過下述技術方案實現:
一種自動化的接口測試方法,包括以下步驟:
(1)開發自動化執行工具,并針對項目接口編寫接口測試用例以及環境預設置腳本,并將接口測試用例和環境預設置腳本工程上傳至gitlab中;
(2)在服務器上部署自動化執行工具,并且對該自動化執行工具配置接口測試用例工程的gitlab地址;
(3)在自動化執行工具中根據接口所需的運行環境選擇并執行相應的環境預設置腳本;
(4)自動化執行工具自動獲取所有的接口測試用例并且在頁面進行展示;
(5)在自動化執行工具的展示頁面中選擇要執行的接口測試用例,并且選擇具體的執行方式,自動化執行工具根據所選的執行方式自行運行已選的接口測試用例;
(6)接口測試用例執行完成后,自動化執行工具解析并存儲接口測試用例的執行結果,并將執行結果中相應的項目提取并整理成測試報告,同時在頁面上進行展示;
(7)自動化執行工具將測試報告通過郵件發送給相關人員。
進一步的,步驟(1)中自動化執行工具的具體構建方法為:
(11)通過java語言編寫接口測試用例執行模塊、接口測試用例結果收集模塊以及郵件發送模塊,并將上述各模塊組合成自動化執行工具的框架;
(12)通過python語言編寫接口測試用例,將編寫好的接口測試用例儲存在gitlab中,并將儲存接口測試用例的gitlab地址輸入步驟(11)中構架的自動化執行工具中;
(13)通過python語言編寫環境預設置腳本,且該環境預設置腳本與接口測試用例在同一python工程中,將環境預設置腳本儲存在gitlab中,并將環境預設置腳本的gitlab地址輸入步驟(11)中構架的自動化執行工具中。
作為優選,步驟(5)所述的執行方式包括立即執行和定時執行,執行方式中還包括運行循環次數以及運行間隔時間的設置。
作為優選,步驟(6)中所述的接口測試用例的執行結果與測試報告均將在數據庫中進行儲存,同時自動化執行工具還會將接口測試用例的執行時間同步儲存在數據庫中。
本發明與現有技術相比,具有以下優點及有益效果:
(1)本發明很好的解決了人工進行接口測試效率低的問題,更好的節約了人力資源,同時大大提高了接口測試的效率以及測試結果整理的準確性;
(2)本發明利用運行條件模塊來設定接口測試的觸發條件,使得接口測試的時間與方式更加靈活,進一步提高了接口測試的靈活性,同時很好的提升了接口測試的智能性,降低了服務器的工作壓力,更加合理的分配了服務器資源;
(3)本發明的接口測試用例的執行結果與測試報告均將在數據庫中進行儲存,能夠很方便的在需要時進行調閱。
(4)本發明可以根據需求自行在自動化執行工具中集成各項小工具,以便于產品的實際使用,使得自動化執行工具可以適應更多的需求與環境。
具體實施方式
下面結合實施例對本發明作進一步的詳細說明,但本發明的實施方式不限于此。
實施例
一種自動化的接口測試方法,包括以下步驟:
(1)開發自動化執行工具,并針對項目接口編寫接口測試用例以及環境預設置腳本,并將接口測試用例和環境預設置腳本工程上傳至gitlab中;
自動化執行工具的具體構建方法為:
(11)通過java語言編寫接口測試用例執行模塊、接口測試用例結果收集模塊以及郵件發送模塊,并將上述各模塊組合成自動化執行工具的框架;
(12)通過python語言編寫接口測試用例,將編寫好的接口測試用例儲存在gitlab中,并將儲存接口測試用例的gitlab地址輸入步驟(11)中構架的自動化執行工具中;接口測試用例需要根據實際的項目進行編寫,每個項目都需要與其匹配的接口測試用例,在使用的過程中還可以根據需要增添新的接口測試用例;若在使用過程中需要增添新的接口測試用例,只需在接口測試用例工程中添加新的接口測試用例后并將其上傳至gitlab即可。
(13)通過python語言編寫環境預設置腳本,且該環境預設置腳本與接口測試用例在同一python工程中,將環境預設置腳本儲存在gitlab中,并將環境預設置腳本的gitlab地址輸入步驟(11)中構架的自動化執行工具中;環境預設置腳本可以根據不同的環境編寫多種不同的環境腳本,比如webtest和apptest等環境。
上述的各項模塊以及腳本的編寫均屬于本領域技術人員的常規技術手段,本領域技術人員可以根據實際的需求編寫出相應功能的模塊或腳本,在此便不進行贅述。
(2)在服務器上部署自動化執行工具,并且對該自動化執行工具配置接口測試用例工程的gitlab地址;在部署該自動化執行工具后保持該自動化執行工具的運行狀態,在未使用時依舊需要保持該自動化執行工具的后臺運行情況。
(3)在自動化執行工具中根據接口所需的運行環境選擇并執行相應的環境預設置腳本。如此便可以使得本方法擁有更高的適應性,可以適應各種環境如:web環境、app環境、windows環境等。
(4)自動化執行工具自動獲取所有的接口測試用例并且在頁面進行展示;
在對運行環境進行預設置后,與該運行環境相匹配的接口測試用例將會顯現,可以對其中顯現的接口測試用例進行選擇,也可以根據需求添加新的接口測試用例。如此設置的目的是為了避免操作人員選擇的接口測試用例與運行環境相沖突,導致最終接口測試用例無法正常執行。
為了更加合理的利用服務器資源,在選擇時可以將所有需要進行的接口測試用例均進行選擇,以便于提高產品的智能性與使用效果。
(5)在自動化執行工具的展示頁面中選擇要執行的接口測試用例,并且選擇具體的執行方式,自動化執行工具根據所選的執行方式自行運行已選的接口測試用例;
上述的執行方式包括立即執行和定時執行,立即執行是指設置完成后即刻進行接口測試的過程,而定時執行則是在指定的時間啟動并進行接口測試。執行方式中還可以設置循環次數,從而根據需求設置一次、多次或無限次;還可以設置兩次執行之間的間隔時間等內容,以進一步提高產品的功能性。
若不是急需測試結果,一般情況下應將自動化執行工具自動運行的過程放在凌晨或者休息日進行,如此可以降低服務器的工作壓力,進一步節省服務器資源,提高了服務器的利用率。
(6)接口測試用例執行完成后,自動化執行工具解析并存儲接口測試用例的執行結果,并將執行結果中相應的項目提取并整理成測試報告,同時在頁面上進行展示;
接口測試用例的執行結果與測試報告均將在數據庫中進行儲存,同時自動化執行工具還會將接口測試用例的執行時間同步儲存在數據庫中。
具體的測試結果將以html格式的文件進行報告,本自動化執行工具中的接口測試用例結果收集模塊將會對該html格式的文件進行解析,并從中提取所需要的數據整理成測試報告。
(7)自動化執行工具將測試報告通過郵件發送給相關人員。
測試報告的發送為本領域技術人員的常規技術手段,在發送前可以先在系統中設置相應的收件地址,在此便不進行贅述。
如上所述,便可很好的實現本發明。