一種測試方法和設備與流程
2023-05-19 20:03:26 1

本申請涉及計算機技術領域,尤其涉及一種測試方法和設備。
背景技術:
軟體測試是軟體生命周期的一個必要環節,其目的在於儘早發現軟體設計中存在的錯誤,進而確保軟體質量。測試用例是進行軟體測試的基礎,一個覆蓋度高且精簡的測試用例集能夠降低軟體測試成本並提高軟體測試效率。
在實際應用中,一個系統的不同站點之間部署了站點測試環境隔離,和/或資料庫隔離,再加上不同站點業務自身特性等一系列因素限制,針對該系統的不同站點需要分別部署測試用例集,而這些測試用例集中存在大量的重複的測試用例,使得整個系統需要維護的測試用例的數量比較龐大,進而導致系統測試效率降低。
例如:一個系統對應5個不同站點,假設每一個站點需要部署的測試用例集中包含700個測試用例,那麼這個系統需要維護的測試用例的數量將達到3500個,如果該系統新增加n個站點,那麼這個系統需要維護的測試用例的數量將達到(3500+700*n)個測試用例,影響整個系統的測試效率。
技術實現要素:
有鑑於此,本申請實施例提供了一種測試方法和設備,用於解決現有技術中測試用例數量龐大導致測試效率低的問題。
一種測試方法,包括:
接收第一待測試站點發送的測試請求,其中,所述測試請求中包含所述第一待測試站點的標識信息;
根據所述第一待測試站點的標識信息,分別確定測試所述第一待測試站點 所需要的第一配置文件和測試套件,其中,所述測試套件中包含用於支持多個測試站點的公用測試用例集和用於支持所述第一待測試站點的私有測試用例集;
加載所述第一配置文件,並基於所述公用測試用例集和所述私有測試用例集,啟動對所述第一待測試站點的集成測試。
一種測試設備,包括:
接收單元,用於接收第一待測試站點發送的測試請求,其中,所述測試請求中包含所述第一待測試站點的標識信息;
確定單元,用於根據所述第一待測試站點的標識信息,分別確定測試所述第一待測試站點所需要的第一配置文件和測試套件,其中,所述測試套件中包含用於支持多個測試站點的公用測試用例集和用於支持所述第一待測試站點的私有測試用例集;
測試單元,用於加載所述第一配置文件,並基於所述公用測試用例集和所述私有測試用例集,啟動對所述第一待測試站點的集成測試。
本申請有益效果如下:
本申請實施例接收第一待測試站點發送的測試請求,所述測試請求中包含所述第一待測試站點的標識信息;根據所述第一待測試站點的標識信息,分別確定測試所述第一待測試站點所需要的第一配置文件和測試套件,所述測試套件中包含用於支持多個測試站點的公用測試用例集和用於支持所述第一待測試站點的私有測試用例集;加載所述第一配置文件,並基於所述公用測試用例集和所述私有測試用例集,啟動對所述第一待測試站點的集成測試。在本申請實施例中,將每一個站點所需要的測試套件分成公用測試用例集和私用測試用例集,公用測試用例集可以被多個不同站點所使用,也就是說,本申請實施例所提供的測試方式無需單一維護每一個站點所需要的測試套件,而是維護多個站點共同使用的公用測試用例集和每一個站點單獨使用的私用測試用例集,進而有效避免系統中測試用例冗餘的問題,同時有效提升站點的測試效率。
附圖說明
為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對於本領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本申請實施例提供的一種測試方法的流程示意圖;
圖2為本申請實施例提供的一種測試方法的流程示意圖;
圖3為本申請實施例提供的一種測試設備的結構示意圖;
圖4為本申請實施例提供的一種測試系統的結構示意圖。
具體實施方式
為了實現本申請的目的,本申請實施例提供了一種測試方法和設備,接收第一待測試站點發送的測試請求,所述測試請求中包含所述第一待測試站點的標識信息;根據所述第一待測試站點的標識信息,分別確定測試所述第一待測試站點所需要的第一配置文件和測試套件,所述測試套件中包含用於支持多個測試站點的公用測試用例集和用於支持所述第一待測試站點的私有測試用例集;加載所述第一配置文件,並基於所述公用測試用例集和所述私有測試用例集,啟動對所述第一待測試站點的集成測試。在本申請實施例中,將每一個站點所需要的測試套件分成公用測試用例集和私用測試用例集,公用測試用例集可以被多個不同站點所使用,也就是說,本申請實施例所提供的測試方式無需單一維護每一個站點所需要的測試套件,而是維護多個站點共同使用的公用測試用例集和每一個站點單獨使用的私用測試用例集,進而有效避免系統中測試用例冗餘的問題,同時有效提升站點的測試效率。
需要說明的是,本申請實施例中所記載的測試套件可以是指軟體測試/網際網路測試中若干個測試用例的集合。測試套件又可以被稱之為testsuite,測試套件一般是可以被程式執行的。其中,每一個測試用例可用來測試一個或者多 個程式邏輯的正確性。測試套件一般整合自動化測試框架,不同測試框架的測試套件的形式可能不同。
本申請實施例中所記載的待測試站點可以是指一個軟體的一個版本,那麼該軟體的不同版本被稱之為不同待測試站點;也可以是指一個軟體的一個版本的一個功能,那麼該軟體的一個版本的不同功能被稱之為不同待測試站點,這裡不做具體限定。
下面結合說明書附圖對本申請各個實施例作進一步地詳細描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬於本申請保護的範圍。
圖1為本申請實施例提供的一種測試方法的流程示意圖。所述方法可以如下所示。
步驟101:接收第一待測試站點發送的測試請求。
其中,所述測試請求中包含所述第一待測試站點的標識信息。
在步驟101中,本申請實施例提供一個多站點測試平臺,該多站點測試平臺能夠實現對多個站點的集成測試。
在進行軟體測試之前,需要確定每一個站點所需要的私有測試用例集。
在軟體測試啟動時,多站點測試平臺接收至少一個待測試站點發送的測試請求,每一個測試請求中包含一個待測試站點的標識信息。
這裡接收到的測試請求包含第一待測試站點發送的測試請求。
步驟102:根據所述第一待測試站點的標識信息,分別確定測試所述第一待測試站點所需要的第一配置文件和測試套件。
其中,所述測試套件中包含用於支持多個測試站點的公用測試用例集和用於支持所述第一待測試站點的私有測試用例集。
在步驟102中,正如在步驟101中所記載的本申請實施例提供一個多站點測試平臺(又可以稱之為一個job),可以通過maven命令的動態參數機制部署 job。該job能夠實現多個站點的集成測試回歸。
該job在接收到多個待測試站點發送的測試請求時,可以利用不同待測試站點的標識信息對不同的待測試站點進行區分,並根據不同待測試站點的標識信息,確定測試每一個待測試站點所需要的配置文件。
這裡的配置文件不僅僅包含在測試時所需要的內存數據,而且還可以包含測試所需要的當前環境渠道數據,甚至還可以包含其他數據,這裡不做具體限定。
本申請實施例中的當前環境渠道數據可以利用testng註解參數@beforeclass獲取,並在測試啟動時,將獲取到的當前環境渠道數據寫入測試時所使用的上下文信息中。這樣,在測試啟動時,可以從上下文信息中獲取當前測試環境渠道,感知當前測試回歸環境。
在獲取到不同待測試站點的當前環境渠道數據後,可以利用路由技術對各個當前環境渠道數據進行區分,這樣能夠有效解決不同待測試站點之間資料庫環境隔離的問題。
在獲取到測試所需要的配置文件時,還可以利用待測試站點的標識信息,確定測試每一個待測試站點的測試套件。
在本申請實施例中將每一個待測試站點的測試套件分為公用測試用例集和私有測試用例集,公用測試用例集可以稱之為軟體的核心應用場景測試用例集,公用測試用例集可以為多個待測試站點所公用,一般在測試系統中存儲一份;私有測試用例集可以稱之為待測試站點的私有邏輯測試用例集,也就是說,私有測試用例集屬於一個待測試站點所使用的用例集。不同待測試站點的私有測試用例集不同。
具體地,在構建測試用例之前,通過-d參數動態修改每一個測試用例的屬性:
dtest.suitexml.file=xxx-ci-private.xml:用於指定當前待測試站點進行測試回歸的私有邏輯;
dsofatest.app_name=xxx:用於指定當前待測試站點的標識信息。在確定待測試站點的標識信息時,利用sofa框架以及zdal數據路由技術可以得到待測試站點的配置文件,解決各個站點資料庫隔離的問題;
dcom.yyy.confreg.url=xxx:用於指定當前待測試站點系統服務啟動時連接的配置中心,可以通過該參數解決多站點環境之間切換測試問題,實現一個job測試復用的目的。
具體地,根據所述第一待測試站點的標識信息,通過java-d參數提取測試所述第一待測試站點所需要的用於支持所述第二待測試站點的私有測試用例集。
例如:上述記載的在本申請實施例中將每一個待測試站點的測試套件分為公用測試用例(例如:xxx-ci-core.xml)和私有測試用例(例如:xxx-ci-private.xml),那麼假設測試bundle的pom.xml文件,可以提取xxx-ci-private.xml為測試pom中的自定義屬性用於隨著站點環境變化的私有測試用例集。
步驟103:加載所述第一配置文件,並基於所述公用測試用例集和所述私有測試用例集,啟動對所述第一待測試站點的集成測試。
在步驟103中,在啟動軟體測試時,加載測試所述第一待測試站點的所述第一配置文件,並基於所述公用測試用例集和所述私有測試用例集,啟動對所述第一待測試站點的集成測試。
例如:利用java-d參數實現自定義系統變量(包含私有測試用例集)的傳遞,動態指定回歸業務模塊(包含公用測試用例集的業務回歸模塊和私有測試用例集的業務回歸模塊),進行動態指定業務模塊回歸邏輯,實現在多個測試站點的業務場景中執行單個測試站點的部署回歸,打破不同測試站點之間的環境隔離,進而縮短測試站點的測試時間,有效實現全量站點回歸測試,提升不同站點的測試效率。
此外,假設在接收第一待測試站點發送的測試請求時,接收到第二待測試 站點發送的測試請求。其中,所述測試請求中包含所述第二待測試站點的標識信息。
需要說明的是,第一待測試站點發送的測試請求和第二待測試站點發送的測試請求可以是同時發送的,也可以是不同時發送的,在本申請實施例中不做具體限定。
具體地,在接收到第二待測試站點發送的測試請求時,根據所述第二待測試站點的標識信息,分別確定測試所述第二待測試站點所需要的第二配置文件和用於支持所述第二待測試站點的私有測試用例集,並加載所述第二配置文件,並基於確定的用於支持所述第二待測試站點的私有測試用例集,在對所述第一待測試站點的集成測試的基礎上,切換啟動對所述第二待測試站點的集成測試。
在本申請實施例中,在實現對第二待測試站點進行測試時,可以基於確定的用於支持所述第二待測試站點的私有測試用例集,在對所述第一待測試站點的集成測試的基礎上,根據所述第二待測試站點的標識信息和數據路由規則,路由用於測試所述第二待測試站點的資料庫;根據所述用於測試所述第二待測試站點的資料庫,切換啟動對所述第二待測試站點的集成測試。
此外,切換啟動對所述第二待測試站點的集成測試,包括:
復用測試所述第一待測試站點的所述公用測試用例集;
基於所述公用測試用例集和用於支持所述第二待測試站點的私有測試用例集,啟動對所述第二待測試站點的集成測試。
此外,假設第一待測試站點與第二待測試站點同步發送測試請求時,確定用於測試第一待測試站點和測試第二待測試站點的公用測試用例集,並分別確定用於測試第一待測試站點的私有測試用例集和用於測試第二待測試站點的私有測試用例集。
啟動測試,利用公用邏輯回歸測試模塊實現對公用測試用例集的測試,利用私有邏輯回歸測試模塊分別實現對第一待測試站點和第二待測試站點的私 有測試用例集的測試。
也就是說,本申請實施例提供的多站點測試平臺既可以實現單個測試站點的集成測試,又可以實現兩個測試站點之間切換測試,還可以實現多個測試站點的同步測試,這裡不做具體描述。
通過本申請實施例提供的技術方案,接收第一待測試站點發送的測試請求,所述測試請求中包含所述第一待測試站點的標識信息;根據所述第一待測試站點的標識信息,分別確定測試所述第一待測試站點所需要的第一配置文件和測試套件,所述測試套件中包含用於支持多個測試站點的公用測試用例集和用於支持所述第一待測試站點的私有測試用例集;加載所述第一配置文件,並基於所述公用測試用例集和所述私有測試用例集,啟動對所述第一待測試站點的集成測試。
在本申請實施例中,將每一個站點所需要的測試套件分成公用測試用例集和私用測試用例集,公用測試用例集可以被多個不同站點所使用,也就是說,本申請實施例所提供的測試方式無需單一維護每一個站點所需要的測試套件,而是維護多個站點共同使用的公用測試用例集和每一個站點單獨使用的私用測試用例集,進而有效避免系統中測試用例冗餘的問題,同時有效提升站點的測試效率。
圖2為本申請實施例提供的一種測試方法的流程示意圖。所述方法可以如下所示。在本申請實施例提供的測試方法中,執行主體可以為多站點測試設備。其中,在該多站點測試設備中新增加私有測試用例集渠道,即將一個待測試站點所需要的測試用例劃分為公用測試用例和私有測試用例。
步驟201:多站點測試設備接收至少一個測試站點發送的測試請求。
其中,每一個測試請求中包含待測試站點的標識信息。
步驟202:多站點測試設備根據每一個測試請求中包含待測試站點的標識信息,分別確定用於測試每一個待測試站點的配置文件。
步驟203:多站點測試設備根據每一個測試請求中包含待測試站點的標識 信息,分別確定用於測試每一個待測試站點的私有測試用例集。
步驟204:多站點測試設備根據確定的配置文件和私有測試用例集,啟動測試,對發送測試請求的測試站點進行回歸測試。
在步驟204中,多站點測試設備啟動公有邏輯回歸模塊調用公用測試用例集,以及啟動私有邏輯回歸模塊調用每一個測試站點的私有測試用例集對每一個測試站點的私有邏輯進行測試。
圖3為本申請實施例提供的一種測試設備的結構示意圖。所述測試設備包括:接收單元31、確定單元32和測試單元33,其中:
接收單元31,用於接收第一待測試站點發送的測試請求,其中,所述測試請求中包含所述第一待測試站點的標識信息;
確定單元32,用於根據所述第一待測試站點的標識信息,分別確定測試所述第一待測試站點所需要的第一配置文件和測試套件,其中,所述測試套件中包含用於支持多個測試站點的公用測試用例集和用於支持所述第一待測試站點的私有測試用例集;
測試單元33,用於加載所述第一配置文件,並基於所述公用測試用例集和所述私有測試用例集,啟動對所述第一待測試站點的集成測試。
可選地,所述接收單元31,還用於接收第二待測試站點發送的測試請求,其中,所述測試請求中包含所述第二待測試站點的標識信息;
所述確定單元32,還用於根據所述第二待測試站點的標識信息,分別確定測試所述第二待測試站點所需要的第二配置文件和用於支持所述第二待測試站點的私有測試用例集;
所述測試單元33,還用於加載所述第二配置文件,並基於確定的用於支持所述第二待測試站點的私有測試用例集,在對所述第一待測試站點的集成測試的基礎上,切換啟動對所述第二待測試站點的集成測試。
具體地,所述測試單元33基於確定的用於支持所述第二待測試站點的私有測試用例集,在對所述第一待測試站點的集成測試的基礎上,切換啟動對所 述第二待測試站點的集成測試,包括:
基於確定的用於支持所述第二待測試站點的私有測試用例集,在對所述第一待測試站點的集成測試的基礎上,根據所述第二待測試站點的標識信息和數據路由規則,路由用於測試所述第二待測試站點的資料庫;
根據所述用於測試所述第二待測試站點的資料庫,切換啟動對所述第二待測試站點的集成測試。
具體地,所述測試單元33切換啟動對所述第二待測試站點的集成測試,包括:
復用測試所述第一待測試站點的所述公用測試用例集;
基於所述公用測試用例集和用於支持所述第二待測試站點的私有測試用例集,啟動對所述第二待測試站點的集成測試。
具體地,所述確定單元32根據所述第一待測試站點的標識信息,確定測試所述第一待測試站點所需要的測試套件,包括:
根據所述第一待測試站點的標識信息,通過java-d參數提取測試所述第一待測試站點所需要的用於支持所述第二待測試站點的私有測試用例集。
需要說明的是,本申請實施例提供的測試設備可以通過軟體方式實現,也可以通過硬體方式實現,這裡不做限定。
本申請實施例所提供的測試設備可以將每一個站點所需要的測試套件分成公用測試用例集和私用測試用例集,公用測試用例集可以被多個不同站點所使用,也就是說,本申請實施例所提供的測試方式無需單一維護每一個站點所需要的測試套件,而是維護多個站點共同使用的公用測試用例集和每一個站點單獨使用的私用測試用例集,進而有效避免系統中測試用例冗餘的問題,同時有效提升站點的測試效率。
圖4為本申請實施例提供的一種測試系統的結構示意圖。所述測試系統包含輸入單元41、多站點測試設備42和輸出單元43,其中:
輸入單元41,用於接收不同測試站點發送的測試請求。
多站點測試設備42,用於根據不同測試站點發送的測試請求中包含的待測試站點的標識信息,分別確定測試不同的測試站點所需要的配置文件和測試套件,所述測試套件中包含用於支持不同測試站點的公用測試用例集和分別用於測試每一個待測試站點的私有測試用例集,並加載配置文件,並基於所述公用測試用例集和所述私有測試用例集,啟動對不同的待測試站點的集成測試。
需要說明的是,本申請實施例提供的多站點測試設備還可以包含公用邏輯回歸模塊421和私有邏輯回歸模塊422。
本領域的技術人員應明白,本申請的實施例可提供為方法、裝置(設備)、或電腦程式產品。因此,本申請可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本申請可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、cd-rom、光學存儲器等)上實施的電腦程式產品的形式。
本申請是參照根據本申請實施例的方法、裝置(設備)和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個 流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
儘管已描述了本申請的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請範圍的所有變更和修改。
顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和範圍。這樣,倘若本申請的這些修改和變型屬於本申請權利要求及其等同技術的範圍之內,則本申請也意圖包含這些改動和變型在內。