本發(fā)明涉及軟件測試,具體而言,涉及一種自動化測試方法及裝置。
背景技術:
1、ui自動化測試通過代碼或工具模擬人的行為來對用戶界面進行操作,實現(xiàn)對程序ui層自動化的測試,可以節(jié)省人工測試成本,提高測試效率,廣泛應用于回歸測試、兼容性測試等。
2、當前主流的ui自動化測試框架或工具,結(jié)果判斷依賴于人工編寫斷言,但斷言編寫工作量大,且可能會遺留校驗點,導致漏測?,F(xiàn)有技術中還存在一種采用圖片對比的方式進行結(jié)果判斷的方案,但該方案的誤報率較高,且通用性不夠,不能適用于多種測試場景。
3、針對上述的問題,目前尚未提出有效的解決方案。
技術實現(xiàn)思路
1、本發(fā)明實施例提供了一種自動化測試方法及裝置,以至少解決現(xiàn)有技術中ui自動化測試的編寫工作量大,可能會遺留校驗點,導致漏測,且誤報率較高,通用性不夠,不能適用于多種測試場景的技術問題。
2、根據(jù)本發(fā)明實施例的一個方面,提供了一種自動化測試方法,包括:在歷史時間段下采用正確版本代碼執(zhí)行測試用例并穩(wěn)定運行后得到基準結(jié)果,所述基準結(jié)果包括所述測試用例的各步驟對應的基準測試結(jié)果;采用測試版本代碼執(zhí)行所述測試用例,得到所述測試用例的各步驟的實際測試結(jié)果;將對應的所述實際測試結(jié)果和所述基準測試結(jié)果進行對比,得到對比結(jié)果,并根據(jù)所述測試用例的各所述步驟的對比結(jié)果,確定所述測試用例是否能在執(zhí)行所述測試版本代碼的過程中穩(wěn)定運行。
3、可選地,在歷史時間段下采用正確版本代碼執(zhí)行測試用例并穩(wěn)定運行后得到基準結(jié)果,包括:在歷史時間段下采用所述正確版本代碼執(zhí)行所述測試用例,且在執(zhí)行所述測試用例的過程中,獲取所述測試用例的每一步驟的執(zhí)行截圖,所述執(zhí)行截圖為所述測試用例在目標界面上穩(wěn)定運行當前步驟后得到的對應的直接結(jié)果的截圖;確定所述執(zhí)行截圖中的執(zhí)行結(jié)果是否正確;在所述執(zhí)行截圖中的所述執(zhí)行結(jié)果正確的情況下,將所述執(zhí)行截圖確定為所述當前步驟的基準測試結(jié)果,并將所有所述步驟的所述基準測試結(jié)果確定為所述基準結(jié)果。
4、可選地,將對應的所述實際測試結(jié)果和所述基準測試結(jié)果進行對比,得到對比結(jié)果,包括:將顯示所述測試用例的執(zhí)行結(jié)果的界面確定為目標界面;采用自動配置和/或人工配置,并根據(jù)所述目標界面中的各區(qū)域的顯示內(nèi)容,確定所述目標界面中的對比區(qū)域和非對比區(qū)域,所述對比區(qū)域為所述實際測試結(jié)果和所述基準測試結(jié)果進行對比的區(qū)域,所述非對比區(qū)域為無需進行對比的區(qū)域;根據(jù)所述測試用例的測試場景,確定對比精度,并根據(jù)所述對比精度和所述對比區(qū)域,將對應的所述實際測試結(jié)果和所述基準測試結(jié)果進行對比,得到所述對比結(jié)果。
5、可選地,采用自動配置并根據(jù)所述目標界面中的各區(qū)域的顯示內(nèi)容,確定所述目標界面中的對比區(qū)域和非對比區(qū)域,包括:采用所述正確版本代碼執(zhí)行所述測試用例預設次數(shù),得到截圖集合,所述截圖集合中包括每一次執(zhí)行時所述測試用例的各步驟的執(zhí)行截圖,一個所述步驟對應的所述執(zhí)行截圖的數(shù)量與所述預設次數(shù)相同;將所述步驟的預設個所述執(zhí)行截圖進行對比,得到相似度小于第一預設相似度的區(qū)域為隨機區(qū)域;將所述隨機區(qū)域確定為所述非對比區(qū)域,并將除所述隨機區(qū)域以外的所有所述執(zhí)行截圖中的區(qū)域確定為所述對比區(qū)域。
6、可選地,根據(jù)所述測試用例的測試場景,確定對比精度,包括:確定所述測試用例的測試場景的精確度要求;在所述精確度要求為大于或者等于第一預設精度的情況下,確定所述對比精度為絕對對比,所述絕對對比為逐個像素進行對比的方式;在所述精確度要求為大于或者等于第二預設精度且小于所述第一預設精度的情況下,確定所述對比精度為嚴格對比,所述嚴格對比為嚴格對比采用ssim算法對運行參數(shù)進行對比的方式,所述運行參數(shù)至少包括所述目標界面的亮度和對比度;在所述精確度要求為小于所述第二預設精度的情況下,確定所述對比精度為內(nèi)容對比,所述內(nèi)容對比為只進行文本對比的方式。
7、可選地,根據(jù)所述對比精度和所述對比區(qū)域,將對應的所述實際測試結(jié)果和所述基準測試結(jié)果進行對比,得到對比結(jié)果,包括:獲取所述實際測試結(jié)果中當前步驟的實際執(zhí)行截圖以及所述基準測試結(jié)果中所述當前步驟的基準執(zhí)行截圖;根據(jù)所述對比區(qū)域,對所述實際執(zhí)行截圖和所述基準執(zhí)行截圖進行裁剪,僅保留所述實際執(zhí)行截圖中的對比區(qū)域和所述基準執(zhí)行截圖中的對比區(qū)域,分別為第一區(qū)域和第二區(qū)域;根據(jù)所述對比精度對所述第一區(qū)域和所述第二區(qū)域進行對比,得到所述對比結(jié)果。
8、可選地,根據(jù)所述測試用例的各所述步驟的對比結(jié)果,確定所述測試用例是否能在執(zhí)行所述測試版本代碼的過程中穩(wěn)定運行,包括:對所述測試用例的所有所述步驟的對比結(jié)果進行加權平均處理,得到總相似度,所述對比結(jié)果為對應的步驟的所述實際測試結(jié)果和所述基準測試結(jié)果之間的相似度;在所述總相似度大于或者等于第二預設相似度的情況下,確定所述測試用例能在執(zhí)行所述測試版本代碼的過程中穩(wěn)定運行;在所述總相似度小于所述第二預設相似度的情況下,確定所述測試用例能在執(zhí)行所述測試版本代碼的過程中穩(wěn)定運行。
9、根據(jù)本發(fā)明實施例的另一方面,還提供了一種自動化測試裝置,包括:第一執(zhí)行模塊,用于在歷史時間段下采用正確版本代碼執(zhí)行測試用例并穩(wěn)定運行后得到基準結(jié)果,所述基準結(jié)果包括所述測試用例的各步驟對應的基準測試結(jié)果;第二執(zhí)行模塊,用于采用測試版本代碼執(zhí)行所述測試用例,得到所述測試用例的各步驟的實際測試結(jié)果;確定模塊,用于將對應的所述實際測試結(jié)果和所述基準測試結(jié)果進行對比,得到對比結(jié)果,并根據(jù)所述測試用例的各所述步驟的對比結(jié)果,確定所述測試用例是否能在執(zhí)行所述測試版本代碼的過程中穩(wěn)定運行。
10、可選地,所述第一執(zhí)行模塊,包括:執(zhí)行單元,用于在歷史時間段下采用所述正確版本代碼執(zhí)行所述測試用例,且在執(zhí)行所述測試用例的過程中,獲取所述測試用例的每一步驟的執(zhí)行截圖,所述執(zhí)行截圖為所述測試用例在目標界面上穩(wěn)定運行當前步驟后得到的對應的直接結(jié)果的截圖;第一確定單元,用于確定所述執(zhí)行截圖中的執(zhí)行結(jié)果是否正確;第二確定單元,用于在所述執(zhí)行截圖中的所述執(zhí)行結(jié)果正確的情況下,將所述執(zhí)行截圖確定為所述當前步驟的基準測試結(jié)果,并將所有所述步驟的所述基準測試結(jié)果確定為所述基準結(jié)果。
11、可選地,所述確定模塊,包括:第三確定單元,用于將顯示所述測試用例的執(zhí)行結(jié)果的界面確定為目標界面;第四確定單元,用于采用自動配置和/或人工配置,并根據(jù)所述目標界面中的各區(qū)域的顯示內(nèi)容,確定所述目標界面中的對比區(qū)域和非對比區(qū)域,所述對比區(qū)域為所述實際測試結(jié)果和所述基準測試結(jié)果進行對比的區(qū)域,所述非對比區(qū)域為無需進行對比的區(qū)域;對比單元,用于根據(jù)所述測試用例的測試場景,確定對比精度,并根據(jù)所述對比精度和所述對比區(qū)域,將對應的所述實際測試結(jié)果和所述基準測試結(jié)果進行對比,得到所述對比結(jié)果。
12、可選地,所述第四確定單元,包括:執(zhí)行子單元,用于采用所述正確版本代碼執(zhí)行所述測試用例預設次數(shù),得到截圖集合,所述截圖集合中包括每一次執(zhí)行時所述測試用例的各步驟的執(zhí)行截圖,一個所述步驟對應的所述執(zhí)行截圖的數(shù)量與所述預設次數(shù)相同;第一對比子單元,用于將所述步驟的預設個所述執(zhí)行截圖進行對比,得到相似度小于第一預設相似度的區(qū)域為隨機區(qū)域;第一確定子單元,用于將所述隨機區(qū)域確定為所述非對比區(qū)域,并將除所述隨機區(qū)域以外的所有所述執(zhí)行截圖中的區(qū)域確定為所述對比區(qū)域。
13、可選地,所述對比單元,包括:第二確定子單元,用于確定所述測試用例的測試場景的精確度要求;第三確定子單元,用于在所述精確度要求為大于或者等于第一預設精度的情況下,確定所述對比精度為絕對對比,所述絕對對比為逐個像素進行對比的方式;第四確定子單元,用于在所述精確度要求為大于或者等于第二預設精度且小于所述第一預設精度的情況下,確定所述對比精度為嚴格對比,所述嚴格對比為嚴格對比采用ssim算法對運行參數(shù)進行對比的方式,所述運行參數(shù)至少包括所述目標界面的亮度和對比度;第五確定子單元,用于在所述精確度要求為小于所述第二預設精度的情況下,確定所述對比精度為內(nèi)容對比,所述內(nèi)容對比為只進行文本對比的方式。
14、可選地,所述對比單元,包括:獲取子單元,用于獲取所述實際測試結(jié)果中當前步驟的實際執(zhí)行截圖以及所述基準測試結(jié)果中所述當前步驟的基準執(zhí)行截圖;裁剪子單元,用于根據(jù)所述對比區(qū)域,對所述實際執(zhí)行截圖和所述基準執(zhí)行截圖進行裁剪,僅保留所述實際執(zhí)行截圖中的對比區(qū)域和所述基準執(zhí)行截圖中的對比區(qū)域,分別為第一區(qū)域和第二區(qū)域;第二對比子單元,用于根據(jù)所述對比精度對所述第一區(qū)域和所述第二區(qū)域進行對比,得到所述對比結(jié)果。
15、可選地,所述確定模塊,包括:加權平均處理單元,用于對所述測試用例的所有所述步驟的對比結(jié)果進行加權平均處理,得到總相似度,所述對比結(jié)果為對應的步驟的所述實際測試結(jié)果和所述基準測試結(jié)果之間的相似度;第五確定單元,用于在所述總相似度大于或者等于第二預設相似度的情況下,確定所述測試用例能在執(zhí)行所述測試版本代碼的過程中穩(wěn)定運行;第六確定單元,用于在所述總相似度小于所述第二預設相似度的情況下,確定所述測試用例能在執(zhí)行所述測試版本代碼的過程中穩(wěn)定運行。
16、根據(jù)本發(fā)明實施例的另一方面,還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)包括存儲的程序,其中,在所述程序運行時控制所述計算機可讀存儲介質(zhì)所在設備執(zhí)行上述中任意一項所述的自動化測試方法。
17、根據(jù)本發(fā)明實施例的另一方面,還提供了一種電子設備,包括:一個或多個處理器,存儲器,以及一個或多個程序,其中,所述一個或多個程序被存儲在所述存儲器中,并且被配置為由所述一個或多個處理器執(zhí)行,所述一個或多個程序包括用于執(zhí)行上述中任意一項所述的自動化測試方法。
18、根據(jù)本發(fā)明實施例的另一方面,還提供了一種計算機程序產(chǎn)品,包括計算機指令,所述計算機指令被處理器執(zhí)行時執(zhí)行上述中任意一項所述的自動化測試方法。
19、在本發(fā)明實施例中,在歷史時間段下采用正確版本代碼執(zhí)行測試用例并穩(wěn)定運行后得到基準結(jié)果,基準結(jié)果包括測試用例的各步驟對應的基準測試結(jié)果;采用測試版本代碼執(zhí)行測試用例,得到測試用例的各步驟的實際測試結(jié)果;將對應的實際測試結(jié)果和基準測試結(jié)果進行對比,得到對比結(jié)果,并根據(jù)測試用例的各步驟的對比結(jié)果,確定測試用例是否能在執(zhí)行測試版本代碼的過程中穩(wěn)定運行。通過本發(fā)明提供的技術方案,達到了通過采用圖片對比的方式對ui自動化測試結(jié)果進行分析,支持圖片自動計算和人工配置對比區(qū)域,并根據(jù)測試場景選擇相應的對比精度的目的,從而實現(xiàn)了無需人工編寫和維護斷言、降低誤報的技術效果,提高了配置效率與測試的通用性,進而解決了現(xiàn)有技術中ui自動化測試的編寫工作量大,可能會遺留校驗點,導致漏測,且誤報率較高,通用性不夠,不能適用于多種測試場景的技術問題。