System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及軟件測試,具體涉及一種數據實時同步軟件的自動化測試方法及裝置。
技術介紹
1、數據實時同步軟件是一種數據實時同步軟件,它的主要作用是,在各主流關系型數據庫之間,進行同構的或異構的、單向的或雙向的、一對一或一對多或多對一的實時數據同步。它的最小可運行模型包括:一個源端數據庫、一個目的端數據庫,一個數據實時同步進程。
2、為了測試數據實時同步軟件同步數據的準確性,需要創造大量sql(structuredquery?language?server?database,結構化查詢語言數據庫)腳本形式的測試用例實體,通過在源端數據庫運行sql腳本,在目的端觀察實時同步結果是否與源端數據一致的方式,來確定數據實時同步軟件各個功能點的準確性。
3、為了確定數據實時同步軟件各個功能點的準確性,需要對數據實時同步軟件進行自動化測試,在自動化測試之前,需要對測試數據庫中的初始表數據進行刪除,目前一般是采用手動方式刪除,該刪除方式會導致部分需要刪除的數據可能未被刪除干凈,即測試數據庫存在不干凈、被污染的情形,進而無法確定數據實時同步軟件各個功能點的準確性。因此,如何保證每次測試時,測試數據庫干凈、未被污染,進而可以確定數據實時同步軟件各個功能點的準確性,也成為亟待解決的問題。
技術實現思路
1、有鑒于此,有必要提供一種數據實時同步軟件的自動化測試方法及裝置,用以實現保證每次測試時測試數據庫不被污染從而確定數據實時同步軟件各個功能點的準確性的目的。
2、為了
3、基于kubernetes和docker引擎實例化得到源庫容器和目的庫容器,并獲取所述源庫容器對應的第一端口信息及所述目的庫容器對應的第二端口信息;所述第一端口信息包括源庫ip地址和源庫端口,所述第二端口信息包括目的庫ip地址和目的庫端口;
4、將數據實時同步軟件自動安裝至源庫容器實例中;
5、獲取源庫對應的測例,基于所述測例和所述第一端口信息,進行sql解析與執行,以在源庫中創建測例表數據,并基于所述實時同步軟件和所述第二端口信息將所述測例表數據同步至目的庫,得到同步表數據;
6、基于所述測例表數據和所述同步表數據,得到所述數據實時同步軟件的數據同步測試結果。
7、在一種可能的實現方式中,所述基于kubernetes和docker引擎實例化得到源庫容器和目的庫容器,并獲取所述源庫容器對應的第一端口信息及所述目的庫容器對應的第二端口信息,包括:
8、基于docker引擎,從docker鏡像倉庫中獲取源庫容器鏡像和目的庫容器鏡像,再實例化為源庫容器和目的庫容器;
9、獲取所述源庫容器對應的第一端口信息及所述目的庫容器對應的第二端口信息。
10、在一種可能的實現方式中,將數據實時同步軟件自動安裝至源庫容器實例中,包括:
11、調用ansible工具開啟軟件安裝進程,基于所述軟件安裝進程,將數據實時同步軟件自動安裝至源庫容器實例中。
12、在一種可能的實現方式中,所述基于所述測例和所述第一端口信息,進行sql解析與執行,以在源庫中創建測例表數據,并基于所述實時同步軟件和所述第二端口信息將所述測例表數據同步至目的庫,得到同步表數據,包括:
13、將所述測例發送至sql解析引擎,以基于所述sql解析引擎將所述測例按照語義分割為可執行的sql語句集合;
14、將所述sql語句集合和所述第一端口信息發送至sql執行引擎,以基于所述sql執行引擎連接到目的庫并按順序執行所述sql語句集合,以在源庫中創建測例表數據,并基于所述實時同步軟件和所述第二端口信息將所述測例表數據同步至目的庫,得到同步表數據。
15、在一種可能的實現方式中,所述基于所述sql解析引擎將所述測例按照語義分割為可執行的sql語句集合,包括:
16、基于所述sql解析引擎中基于python的sqlparser引擎,將所述測例按照語義分割為可執行的sql語句集合。
17、在一種可能的實現方式中,所述基于所述測例表數據和所述同步表數據,得到所述數據實時同步軟件的數據同步測試結果,包括:
18、將所述測量表數據和所述同步表數據中表名相同的表進行一一比對,確定表數據比對結果;
19、基于所述表數據比對結果,得到所述數據實時同步軟件的數據同步測試結果。
20、在一種可能的實現方式中,所述源庫和所述目的庫為dm數據庫、oracle數據庫、pg數據庫、db2數據庫、sqlserver數據庫和mysql數據庫中的任意兩個數據庫。
21、另一方面,本專利技術還提供一種數據實時同步軟件的自動化測試裝置,包括:
22、實例化模塊,用于基于kubernetes和docker引擎實例化得到源庫容器和目的庫容器,并獲取所述源庫容器對應的第一端口信息及所述目的庫容器對應的第二端口信息;所述第一端口信息包括源庫ip地址和源庫端口,所述第二端口信息包括目的庫ip地址和目的庫端口;
23、軟件安裝模塊,用于將數據實時同步軟件自動安裝至源庫容器實例中;
24、表數據獲取模塊,用于獲取源庫對應的測例,基于所述測例和所述第一端口信息,進行sql解析與執行,以在源庫中創建測例表數據,并基于所述實時同步軟件和所述第二端口信息將所述測例表數據同步至目的庫,得到同步表數據;
25、測試結果確定模塊,用于基于所述測例表數據和所述同步表數據,得到所述數據實時同步軟件的數據同步測試結果。
26、另一方面,本專利技術還提供一種電子設備,包括存儲器和處理器,其中,
27、所述存儲器,用于存儲程序;
28、所述處理器,與所述存儲器耦合,用于執行所述存儲器中存儲的所述程序,以實現如上述任意一項所述的數據實時同步軟件的自動化測試方法。
29、另一方面,本專利技術還提供一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現如上述任一項所述的數據實時同步軟件的自動化測試方法。
30、采用上述實現方式的有益效果是:本專利技術提供的數據實時同步軟件的自動化測試方法及裝置,通過kubernetes和docker引擎實例化得到源庫容器和目的庫容器,并獲取所述源庫容器及所述目的庫容器對應的端口信息,然后將需要測試的數據實時同步軟件安裝到源庫容器實例中,接著基于源庫的測例和目的庫容器的端口信息進行sql解析,得到多個可執行的sql語句,執行這些sql語句后,得到源庫和目的庫的表數據,進而可以確定數據實時同步軟件的數據同步測試結果。
31、本專利技術基于kubernetes和docker引擎實例化得到源庫容器和目的庫容器,實現數據實時同步軟件的數據同步測試,過程中可以對sql語句進行解析,生成多個sql語句并執行,進而實現測例的批量執行本文檔來自技高網...
【技術保護點】
1.一種數據實時同步軟件的自動化測試方法,其特征在于,包括:
2.根據權利要求1所述的數據實時同步軟件的自動化測試方法,其特征在于,所述基于Kubernetes和Docker引擎實例化得到源庫容器和目的庫容器,并獲取所述源庫容器對應的第一端口信息及所述目的庫容器對應的第二端口信息,包括:
3.根據權利要求1所述的數據實時同步軟件的自動化測試方法,其特征在于,將數據實時同步軟件自動安裝至源庫容器實例中,包括:
4.根據權利要求1所述的數據實時同步軟件的自動化測試方法,其特征在于,所述基于所述測例和所述第一端口信息,進行SQL解析與執行,以在源庫中創建測例表數據,并基于所述實時同步軟件和所述第二端口信息將所述測例表數據同步至目的庫,得到同步表數據,包括:
5.根據權利要求4所述的數據實時同步軟件的自動化測試方法,其特征在于,所述基于所述SQL解析引擎將所述測例按照語義分割為可執行的SQL語句集合,包括:
6.根據權利要求1所述的數據實時同步軟件的自動化測試方法,其特征在于,所述基于所述測例表數據和所述同步表數據,得到所述數據
7.根據權利要求1-6任一項所述的數據實時同步軟件的自動化測試方法,其特征在于,所述源庫和所述目的庫為DM數據庫、Oracle數據庫、PG數據庫、DB2數據庫、SQLServer數據庫和MySQL數據庫中的任意兩個數據庫。
8.一種數據實時同步軟件的自動化測試裝置,其特征在于,包括:
9.一種電子設備,其特征在于,包括存儲器和處理器,其中,
10.一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1至7任一項所述的數據實時同步軟件的自動化測試方法。
...【技術特征摘要】
1.一種數據實時同步軟件的自動化測試方法,其特征在于,包括:
2.根據權利要求1所述的數據實時同步軟件的自動化測試方法,其特征在于,所述基于kubernetes和docker引擎實例化得到源庫容器和目的庫容器,并獲取所述源庫容器對應的第一端口信息及所述目的庫容器對應的第二端口信息,包括:
3.根據權利要求1所述的數據實時同步軟件的自動化測試方法,其特征在于,將數據實時同步軟件自動安裝至源庫容器實例中,包括:
4.根據權利要求1所述的數據實時同步軟件的自動化測試方法,其特征在于,所述基于所述測例和所述第一端口信息,進行sql解析與執行,以在源庫中創建測例表數據,并基于所述實時同步軟件和所述第二端口信息將所述測例表數據同步至目的庫,得到同步表數據,包括:
5.根據權利要求4所述的數據實時同步軟件的自動化測試方法,其特征在于,所述基于所述sql...
【專利技術屬性】
技術研發人員:吳豐,余院蘭,趙九宵,
申請(專利權)人:武漢達夢數據庫股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。