一種自動化測試系統及方法與流程
2023-12-10 04:33:26 3

本發明涉及網頁測試技術領域,尤其涉及一種自動化測試系統及方法。
背景技術:
軟體測試是軟體工程體系中的一個非常重要的組成部分,是保證軟體質量的關鍵步驟。其中尤其是對網頁和網頁中控制項的軟體測試是一個比較難以處理的技術。傳統的手工測試存在重複性較高、效率較低的問題,並且會出現誤操作從而導致測試結果出現偏差。
技術實現要素:
根據現有技術中存在的上述問題,現提供一種自動化測試系統及方法的技術方案,旨在代替工程師對每個測試項目進行操作,提高網頁頁面的控制項測試的效率,並且降低人工測試過程中容易出現的誤操作導致的測試問題,減少測試時間,降低工程師的時間成本。
上述技術方案具體包括:
一種自動化測試系統,適用於對網頁及網頁中的頁面控制項進行自動化測試;其中,包括:
用例管理單元,提供給使用者預設多個測試用例並保存,並且提供給使用者對被保存的所述測試用例進行編輯的功能;
對象管理單元,提供給使用者預設多個測試對象並保存,並且提供給使用者對被保存的所述測試對象進行編輯的功能,所述測試對象包括所述網頁以及所述網頁中的所述頁面控制項,每個所述測試對象對應於至少一個所述測試用例;
代碼管理單元,提供給使用者預設多個測試代碼並保存,並且提供給使用者對被保存的所述測試代碼進行編輯的功能,所述測試代碼與所述測試用例一一對應;
信息讀取單元,分別連接所述用例管理單元、所述對象管理單元和所述代碼管理單元,用於分別讀取並輸出所述測試用例以及對應所述測試用例的所述測試代碼,以及讀取所述測試對象;
執行單元,連接所述信息讀取單元,用於根據被讀取到的所述測試用例以及對應的所述測試代碼,對被讀取到的所述測試對象進行自動化測試,隨後輸出測試結果;
展示單元,連接所述執行單元,用於向使用者展示所述執行單元輸出的所述測試結果。
優選的,該自動化測試系統,其中,於所述用例管理單元中保存預設的每個所述測試用例的用例信息;
所述用例信息包括:所述測試用例的用例名稱,和/或所述測試用例的用例代碼,和/或所述測試用例的用例描述,和/或所述測試用例的用例的執行文件,和/或所述測試用例的預期結果。
優選的,該自動化測試系統,其中,於所述對象管理單元中保存預設的每個所述測試對象的對象信息;
所述對象信息包括:所述網頁的頁面信息、所述頁面控制項的控制項元素信息以及測試所述網頁所需的測試數據信息;
一個所述頁面控制項僅對應於一個所述網頁,一個網頁對應於至少一個所述頁面控制項。
優選的,該自動化測試系統,其中,所述對象管理單元中包括:
校驗模塊,用於對每個所述測試對象設置一檢查點,以在自動化測試前對所述網頁以及所述網頁中的所述頁面控制項進行校驗。
優選的,該自動化測試系統,其中,所述代碼管理單元包括:
底層管理模塊,用於管理並保存系統底層的公用代碼;
業務管理模塊,用於管理並保存每個所述測試代碼。
優選的,該自動化測試系統,其中,所述信息讀取單元在輸出所述測試代碼的同時,輸出執行所述測試代碼的代碼腳本的執行指令;所述執行單元包括:
接收模塊,用於接收所述信息讀取單元輸出的所述測試用例、所述測試代碼、所述測試對象和所述執行指令;
執行模塊,連接所述接收模塊,用於根據所述執行指令執行對應於所述測試用例的所述測試代碼,以對所述測試對象進行自動化測試;
結果模塊,連接所述執行模塊,用於獲取所述執行模塊對所述測試對象進行自動化測試後得到的執行結果;
對比模塊,連接所述結果模塊,用於將所述執行結果與所述測試用例的所述預期結果進行對比,並輸出經過對比後形成的所述測試結果。
優選的,該自動化測試系統,其中,所述測試結果中包括:所述測試用例的用例名稱,和/或所述測試用例的預期結果,和/或所述測試用例被執行的執行時間,和/或所述執行結果,和/或所述測試用例的執行過程中的錯誤信息。
一種自動化測試方法,適用於對網頁及網頁中的頁面控制項進行自動化測試;其中,預設多個測試用例、多個測試對象以及分別與每個所述測試用例對應的測試代碼,所述測試對象包括所述網頁以及所述網頁中的所述頁面控制項,每個所述測試對象分別對應於至少一個所述測試用例,還包括:
步驟S1,選擇一個需要進行測試的所述測試用例;
步驟S2,根據所述測試用例獲取所述測試對象,以及與所述測試用例對應的所述測試代碼;
步驟S3,根據所述測試代碼的腳本執行指令執行所述測試代碼,以採用被選擇的所述測試用例對所述測試對象進行自動化測試;
步驟S4,將進行自動化測試後生成的執行結果與所述測試用例中包括的預期結果進行對比,以形成一測試結果;
步驟S5,向使用者展示所述測試結果。
上述技術方案的有益效果是:
1)提供一種自動化測試系統,能夠代替工程師對每個測試項目進行操作,提高網頁頁面的控制項測試的效率,並且降低人工測試過程中容易出現的誤操作導致的測試問題,減少測試時間,降低工程師的時間成本;
2)提供一種自動化測試方法,能夠支持上述自動化測試系統正常運行。
附圖說明
圖1是本發明的較佳的實施例中,一種自動化測試系統的總體結構示意圖;
圖2是本發明的較佳的實施例中,自動化測試系統中的對象管理單元的具體結構示意圖;
圖3是本發明的較佳的實施例中,自動化測試系統中的代碼管理單元的具體結構示意圖;
圖4是本發明的較佳的實施例中,自動化測試系統中的執行單元的具體結構示意圖;
圖5是本發明的較佳的實施例中,一種自動化測試方法的流程示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動的前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
需要說明的是,在不衝突的情況下,本發明中的實施例及實施例中的特徵可以相互組合。
下面結合附圖和具體實施例對本發明作進一步說明,但不作為本發明的限定。
本發明的較佳的實施例中,基於現有技術中存在的上述問題,現提供一種自動化測試系統,該系統適用於對網頁以及網頁中的頁面控制項進行自動化測試。
上述自動化測試系統具體如圖1所示,包括:
用例管理單元1,提供給使用者預設多個測試用例並保存,並且提供給使用者對被保存的測試用例進行編輯的功能;
對象管理單元2,提供給使用者預設多個測試對象並保存,並且提供給使用者對被保存的測試對象進行編輯的功能,測試對象包括網頁以及網頁中的頁面控制項,每個測試對象對應於至少一個測試用例;
代碼管理單元3,提供給使用者預設多個測試代碼並保存,並且提供給使用者對被保存的測試代碼進行編輯的功能,測試代碼與測試用例一一對應;
信息讀取單元4,分別連接用例管理單元1、對象管理單元2和代碼管理單元3,用於分別讀取並輸出測試用例以及對應測試用例的測試代碼,以及讀取測試對象;
執行單元5,連接信息讀取單元4,用於根據被讀取到的測試用例以及對應的測試代碼,對被讀取到的測試對象進行自動化測試,隨後輸出測試結果;
展示單元6,連接執行單元5,用於向使用者展示執行單元5輸出的測試結果。
具體地,上述實施例中,上述用例管理單元1供使用者預設多個測試用例。所謂測試用例,是指針對不同的測試對象(下文中會描述)進行的測試項目。例如一個測試用例可以為訪問一個網頁並進行登錄的登錄控制項測試,即測試在一個登錄頁面上輸入用戶名和密碼並通過登錄控制項進行登錄的整個登錄過程。另一個測試用例也可以為對查詢頁面上的查詢過程進行測試的測試項目,即測試在一個查詢頁面上輸入查詢關鍵字並通過查詢控制項進行查詢的整個查詢過程。本發明的其他實施例中,上述測試用例可以包括對網頁以及頁面控制項進行的其他任何能夠想像得到的測試項目,在此不再贅述。
上述實施例中,在上述用例管理單元1中對測試用例進行「編輯」,是指對測試用例進行新增、修改、刪除等編輯操作,並將經過編輯的測試用例進行保存。
上述實施例中,上述對象管理單元2提供給使用者對測試對象進行編輯的功能。所謂測試對象,是指測試過程中所針對的網頁以及網頁頁面中的頁面控制項,換言之,本發明中所述的自動化測試系統實際針對於網頁以及網頁頁面中的頁面控制項來進行測試的。進一步地,一個實施例中,一個測試對象可以為一個網頁,以及該網頁中包括的所有控制項。在另一個實施例中,一個測試對象可以為一個網頁,以及該網頁中包括的一部分控制項。上述測試對象的區分可以由上文中所述的測試用例確定,以及由使用者預設和編輯。
上述實施例中,對測試對象進行編輯的功能同樣包括添加、修改以及刪除測試對象的操作。
上述實施例中,上述代碼管理單元3提供給使用者對測試代碼進行編輯的功能。具體地,該代碼管理單元3可以供使用者對單元中保存的所有測試代碼進行新增、修改和刪除等操作。上述實施例中,測試代碼和測試用例是一一對應的,即測試代碼是測試用例在代碼層面上的描述。
上述實施例中,上述信息讀取單元4分別用於讀取上述用例管理單元1中保存的一個測試用例(可以由使用者選擇來讀取哪一個測試用例),並且根據讀取的測試用例讀取對應的測試代碼,以及讀取對應需要被測試的測試對象,也即上述信息讀取單元4分別讀取測試用例、測試代碼以及測試對象,並且輸出上述被讀取到的內容。
上述實施例中,上述執行單元5於信息讀取單元4連接,並用於接收上述信息讀取單元4輸出的測試用例、測試代碼和測試對象,並且執行對應於測試用例的測試代碼,以根據該測試用例對測試對象進行自動化測試,隨後輸出測試結果。
上述實施例中,上述展示單元6用於接收上述執行單元5輸出的測試結果,並將該測試結果展示給使用者查看,以便於使用者查看自動化測試的測試進展。
本發明的較佳的實施例中,於用例管理單元1中保存預設的每個測試用例的用例信息;
則每個測試用例的用例信息分別包括下文中所述的一個或幾個:
測試用例的用例名稱,測試用例的用例代碼,測試用例的用例描述,測試用例的用例的執行文件,以及測試用例的預期結果。
上述實施例中,所謂用例代碼,即上文中所述的測試代碼,換言之,在上述用例管理單元1中同樣保存有測試用例對應的用例代碼的代碼相關信息。
上述實施例中,所謂預期結果,是指使用者預設的該測試用例正常運行時能夠預期到的正常結果,也就是該測試用例被測試的標準結果。例如,當測試用例為登錄頁面測試時,預期結果應當是:採用正確的用戶名和密碼登錄可以驗證通過,採用錯誤的用戶名和密碼登錄無法驗證通過。同樣地,當測試用例為查詢頁面測試時,預期結果應當是:採用查詢關鍵字進行查詢應當跳出相對應的查詢結果。
上述實施例中,所謂執行文件,可以為上述測試用例的用例代碼的執行腳本。
本發明的較佳的實施例中,於對象管理單元中保存預設的每個測試對象的對象信息;
對象信息包括:網頁的頁面信息、頁面控制項的控制項元素信息以及測試網頁所需的測試數據信息;
一個頁面控制項僅對應於一個網頁,一個網頁對應於至少一個頁面控制項。
具體地,本發明的較佳的實施例中,上述頁面信息是指網頁的頁面上相應的信息,例如網頁名稱、網頁功能、網頁地址以及網頁布局等。上述控制項元素信息是指網頁上每個控制項的相關信息,例如控制項在網頁上設置的位置、控制項的排列序號信息以及控制項的名稱和功能等。上述測試數據信息可以包括測試中的一些參數,例如測試的重複次數以及兩次相鄰測試之間的間隔時間等。
上述網頁中可以包括多個頁面控制項,例如對於登錄網頁來說,其中可以包括供使用者輸入用戶名和密碼的文本框控制項以及登錄按鈕控制項等。對於查詢網頁來說,其中可以包括供使用者輸入查詢關鍵字的文本框控制項、查詢按鈕控制項以及查詢結果顯示的文本框控制項等。
相應地,上述每個頁面控制項分別對應於且僅對應於一個網頁。例如對於登錄按鈕控制項而言,其僅存在於登錄網頁中。
本發明的較佳的實施例中,如圖2中所示,上述對象管理單元2中包括:
校驗模塊21,用於對每個測試對象設置一檢查點,以在自動化測試前對網頁以及網頁中的頁面控制項進行校驗。
具體地,本發明的較佳的實施例中,上述校驗模塊21在每個測試對象上設置的檢查點用於校驗該測試對象是否加載正確,從而保證自動化測試能夠順利進行。
本發明的較佳的實施例中,如圖3中所示,上述代碼管理單元3中包括:
底層管理模塊31,用於管理並保存系統底層的公用代碼;
業務管理模塊32,用於管理並保存每個測試代碼。
具體地,本發明的較佳的實施例中,每個測試代碼都包括公用代碼部分和私有代碼部分,即存在一部分公用代碼可供不同的測試代碼使用,每個測試代碼還包括其私有的部分。
因此,上述底層管理模塊31用於管理並保存系統底層的公用代碼,具體為管理並保存對一些API接口進行封裝的代碼,以提供給上層邏輯層更方便的代碼調用。
上述業務管理模塊32用於管理並保存每個測試代碼,即用於管理並保存每個測試代碼的私有部分。因此,上述業務管理模塊32和測試代碼是一一對應的。有多少個測試代碼,就有多少個業務管理模塊32。則系統在讀取測試用例時就可以採用對應的業務管理模塊32調用對應的測試代碼並執行。
本發明的較佳的實施例中,信息讀取單元在輸出測試代碼的同時,輸出執行測試代碼的代碼腳本的執行指令。
則如圖4中所示,上述執行單元5中具體包括:
接收模塊51,用於接收信息讀取單元4輸出的測試用例、測試代碼、測試對象和執行指令;
執行模塊52,連接接收模塊51,用於根據執行指令執行對應於測試用例的測試代碼,以對測試對象進行自動化測試;
結果模塊53,連接執行模塊52,用於獲取執行模塊52對測試對象進行自動化測試後得到的執行結果;
對比模塊54,連接結果模塊53,用於將執行結果與測試用例的預期結果進行對比,並輸出經過對比後形成的測試結果。
具體地,本發明的較佳的實施例中,上述執行模塊52根據執行指令可以執行對應的測試代碼的代碼腳本,並根據執行內容反饋給結果模塊53相應的執行結果。該執行結果為針對測試對象執行測試用例對應的測試代碼後得到的直接結果。例如對於登錄網頁的登錄測試而言,執行結果為輸入正確/錯誤的用戶名密碼得到的登錄成功/失敗的結果。
則上述對比模塊54針對上述執行結果,將其與該測試用例對應的預期結果進行對比,並根據對比形成相應的測試結果並輸出。
例如,對於登錄測試而言,預期結果可以為:輸入用戶名111以及密碼1111,顯示登錄成功。而執行結果若為:輸入用戶名111以及密碼1111,顯示登錄失敗,則對比後形成的測試結果就可以表示此次測試失敗。又若執行結果同樣為:輸入用戶名111以及密碼1111,顯示登錄成功,則對比後形成的測試結果就可以表示此次測試成功。
又例如,對於查詢測試而言,預期結果可以為:輸入查詢關鍵字111,查詢並顯示得到10條結果參數。而執行結果若為:輸入查詢關鍵字111查詢不到任何結果參數,或者查詢到20條結果參數,則對比後形成的測試結果就可以表示此次測試失敗。又若執行結果同樣為:輸入查詢關鍵字111,查詢並顯示得到10條結果參數,則對比後形成的測試結果就可以表示此次測試成功。
本發明的較佳的實施例中,最終上述展示單元6向使用者展示的測試結果中可以包括下文中所述的一種或幾種:
測試用例的用例名稱,測試用例的預期結果,測試用例被執行的執行時間,執行結果,以及測試用例的執行過程中的錯誤信息。
則上述測試結果能夠比較具體地向使用者展示整個自動化測試過程中發生的內容。
本發明的較佳的實施例中,基於上文中所述的自動化測試系統,現提供一種自動化測試方法,該方法同樣適用於對網頁及網頁中的頁面控制項進行自動化測試。在該方法中,首先預設多個測試用例、多個測試對象以及分別與每個測試用例對應的測試代碼,測試對象包括網頁以及網頁中的頁面控制項,每個測試對象分別對應於至少一個測試用例。
則該方法具體如圖5中所示,包括:
步驟S1,選擇一個需要進行測試的測試用例;
步驟S2,根據測試用例獲取測試對象,以及與測試用例對應的測試代碼;
步驟S3,根據測試代碼的腳本執行指令執行測試代碼,以採用被選擇的測試用例對測試對象進行自動化測試;
步驟S4,將進行自動化測試後生成的執行結果與測試用例中包括的預期結果進行對比,以形成一測試結果;
步驟S5,向使用者展示測試結果。
以上所述僅為本發明較佳的實施例,並非因此限制本發明的實施方式及保護範圍,對於本領域技術人員而言,應當能夠意識到凡運用本發明說明書及圖示內容所作出的等同替換和顯而易見的變化所得到的方案,均應當包含在本發明的保護範圍內。