本申請提供了一種數據庫操作測試方法、裝置、存儲介質及計算機設備,可對待測試應用是否調用指令信息獲取函數進行監聽,若監聽到待測試應用調用指令信息獲取函數,則獲取指令信息獲取函數所返回的指令信息以及指令信息獲取函數在本次調用過程中的調用鏈信息,并根據指令信息確定目標數據庫訪問指令的讀寫操作類型,以及根據調用鏈信息確定目標數據庫訪問指令所要訪問的數據庫的主從屬性,基于該讀寫操作類型及主從屬性得到待測試應用的數據庫操作測試結果。如此,無需專門構建可供測試的數據庫即可對應用的數據庫讀寫操作進行測試,從而可節約資源并降低成本。從而可節約資源并降低成本。從而可節約資源并降低成本。
【技術實現步驟摘要】
數據庫操作測試方法、裝置、存儲介質及計算機設備
[0001]本申請涉及應用測試
,尤其涉及一種數據庫操作測試方法、裝置、存儲介質及計算機設備。
技術介紹
[0002]在通過數據庫存儲數據時,一般會配置主數據庫和從數據庫。主數據庫支持寫操作,在一些情況下,主數據庫還支持讀操作,而從數據庫支持只讀操作。應用可以對存儲于從數據庫中的數據進行讀取,或者將數據寫入至主數據庫中。
[0003]目前,在應用上線之前,并不會對應用所執行的數據庫操作進行測試,導致無法測試應用對主從數據庫所執行的數據庫操作是否符合主從讀寫分離配置。為避免應用上線后,不合理的數據庫操作導致生產環境發出告警,需要對應用的數據庫操作進行測試。測試時,由于目前沒有可供測試的現成數據庫,因此,在測試之前,需要由數據庫管理員進行數據庫配置和數據同步等操作,以構建可供測試的數據庫。構建完成后,再通過所構建的數據庫對應用的數據庫操作進行測試。然而,通過前述方式對應用的數據庫操作進行測試,不僅需要大量資源,而且維護成本高。
技術實現思路
[0004]本申請的目的旨在至少能解決上述的技術缺陷之一,特別是現有技術中消耗資源多且維護成本高的技術缺陷。
[0005]第一方面,本申請實施例提供了一種數據庫操作測試方法,所述方法包括:
[0006]在監聽到待測試應用調用指令信息獲取函數的情況下,獲取所述指令信息獲取函數所返回的指令信息,以及獲取所述指令信息獲取函數在本次調用中所對應的調用鏈信息;所述指令信息獲取函數用于獲取數據庫訪問指令的指令信息;
[0007]根據所述指令信息獲取函數所返回的指令信息確定目標數據庫訪問指令的讀寫操作類型,所述目標數據庫訪問指令為與所述指令信息相對應的數據庫訪問指令;
[0008]基于所述調用鏈信息確定目標數據庫的主從屬性,所述目標數據庫為所述目標數據庫訪問指令所要訪問的數據庫,所述目標數據庫的主從屬性用于確定所述目標數據庫所允許的讀寫操作類型;
[0009]對所述目標數據庫的主從屬性和所述目標數據庫訪問指令的讀寫操作類型進行匹配,以得到測試結果。
[0010]在其中一個實施例中,所述根據所述指令信息獲取函數所返回的指令信息確定所述目標數據庫訪問指令的讀寫操作類型的步驟,包括:
[0011]從所述指令信息獲取函數所返回的指令信息中提取所述目標數據庫訪問指令中的操作標簽;
[0012]若所述操作標簽為選擇標簽,則確定所述目標數據庫訪問指令的讀寫操作類型為讀操作類型;
[0013]若所述操作標簽為插入標簽、更新標簽或者刪除標簽,則確定所述目標數據庫訪問指令的讀寫操作類型為寫操作類型。
[0014]在其中一個實施例中,所述基于所述調用鏈信息確定所述目標數據庫的主從屬性的步驟,包括:
[0015]從所述調用鏈信息中提取各級調用函數所對應的注解信息;
[0016]若至少一級調用函數所對應的注解信息中包括預設的只讀注解信息,則確定所述目標數據庫的主從屬性為從數據庫;
[0017]若至少一級調用函數所對應的注解信息中包括預設的寫注解信息,則確定所述目標數據庫的主從屬性為主數據庫。
[0018]在其中一個實施例中,所述目標數據庫的主從屬性為主數據庫或者從數據庫,所述目標數據庫訪問指令的讀寫操作類型為讀操作類型或者寫操作類型;
[0019]所述對所述目標數據庫的主從屬性和所述目標數據庫訪問指令的讀寫操作類型進行匹配,以得到測試結果的步驟,包括:
[0020]若所述目標數據庫的主從屬性為從數據庫且所述目標數據庫訪問指令的讀寫操作類型為寫操作類型,則拋出數據庫操作異常提示,并生成沖突測試結果。
[0021]在其中一個實施例中,所述對所述目標數據庫的主從屬性和所述目標數據庫訪問指令的讀寫操作類型進行匹配,以得到測試結果的步驟,還包括:
[0022]若所述目標數據庫的主從屬性為主數據庫,且所述目標數據庫訪問指令的讀寫操作類型為讀操作類型,則獲取預先配置的處理方式,并按照所述處理方式進行處理以及按照所述處理方式生成所述測試結果;所述處理方式為拋異常處理、日志生成處理或不作處理。
[0023]在其中一個實施例中,所述在監聽到待測試應用調用指令信息獲取函數的情況下,獲取所述指令信息獲取函數所返回的指令信息,以及獲取所述指令信息獲取函數在本次調用中所對應的調用鏈信息的步驟之前,還包括:
[0024]利用程序插樁技術在所述待測試應用中插入測試函數,以通過所述測試函數監聽所述待測試應用是否調用所述指令信息獲取函數。
[0025]在其中一個實施例中,所述利用程序插樁技術在所述待測試應用中插入測試函數的步驟,包括:
[0026]利用程序插樁技術在所述待測試應用的指定位置處插入所述測試函數,所述指定位置為使得所述測試函數與所述指令信息獲取函數在同一線程中運行的位置。
[0027]第二方面,本申請實施例還提供了一種數據庫操作測試裝置,所述裝置包括:
[0028]信息獲取模塊,用于在監聽到待測試應用調用指令信息獲取函數的情況下,獲取所述指令信息獲取函數所返回的指令信息,以及獲取所述指令信息獲取函數在本次調用中所對應的調用鏈信息;所述指令信息獲取函數用于獲取數據庫訪問指令的指令信息;
[0029]讀寫操作類型確定模塊,用于根據所述指令信息獲取函數所返回的指令信息確定所述目標數據庫訪問指令的讀寫操作類型,所述目標數據庫訪問指令為與所述指令信息相對應的數據庫訪問指令;
[0030]主從屬性確定模塊,用于基于所述調用鏈信息確定目標數據庫的主從屬性,所述目標數據庫為所述目標數據庫訪問指令所要訪問的數據庫,所述目標數據庫的主從屬性用
于確定所述目標數據庫所允許的讀寫操作類型;
[0031]測試結果獲取模塊,用于對所述目標數據庫的主從屬性和所述目標數據庫訪問指令的讀寫操作類型進行匹配,以得到測試結果。
[0032]第三方面,本申請實施例提供了一種存儲介質,所述存儲介質中存儲有計算機可讀指令,所述計算機可讀指令被一個或多個處理器執行時,使得一個或多個處理器執行上述任一實施例所述數據庫操作測試方法的步驟。
[0033]第四方面,本申請實施例提供了一種計算機設備,包括:一個或多個處理器,以及存儲器;
[0034]所述存儲器中存儲有計算機可讀指令,所述計算機可讀指令被所述一個或多個處理器執行時,執行上述任一實施例所述數據庫操作測試方法的步驟。
[0035]本申請實施例提供的數據庫操作測試方法、裝置、存儲介質及計算機設備中,對待測試應用是否調用指令信息獲取函數進行監聽,若監聽到待測試應用調用指令信息獲取函數,則獲取指令信息獲取函數所返回的指令信息以及指令信息獲取函數在本次調用過程中的調用鏈信息,并根據指令信息確定目標數據庫訪問指令的讀寫操作類型,以及根據調用鏈信息確定目標數據庫訪問指令所要訪問的數據庫的主從屬性,基于該讀寫操作類型及主從屬性得到待測試應用的數據庫操作測試結本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種數據庫操作測試方法,其特征在于,所述方法包括:在監聽到待測試應用調用指令信息獲取函數的情況下,獲取所述指令信息獲取函數所返回的指令信息,以及獲取所述指令信息獲取函數在本次調用中所對應的調用鏈信息;所述指令信息獲取函數用于獲取數據庫訪問指令的指令信息;根據所述指令信息獲取函數所返回的指令信息確定目標數據庫訪問指令的讀寫操作類型,所述目標數據庫訪問指令為與所述指令信息相對應的數據庫訪問指令;基于所述調用鏈信息確定目標數據庫的主從屬性,所述目標數據庫為所述目標數據庫訪問指令所要訪問的數據庫,所述目標數據庫的主從屬性用于確定所述目標數據庫所允許的讀寫操作類型;對所述目標數據庫的主從屬性和所述目標數據庫訪問指令的讀寫操作類型進行匹配,以得到測試結果。2.根據權利要求1所述的方法,其特征在于,所述根據所述指令信息獲取函數所返回的指令信息確定所述目標數據庫訪問指令的讀寫操作類型的步驟,包括:從所述指令信息獲取函數所返回的指令信息中提取所述目標數據庫訪問指令中的操作標簽;若所述操作標簽為選擇標簽,則確定所述目標數據庫訪問指令的讀寫操作類型為讀操作類型;若所述操作標簽為插入標簽、更新標簽或者刪除標簽,則確定所述目標數據庫訪問指令的讀寫操作類型為寫操作類型。3.根據權利要求1所述的方法,其特征在于,所述基于所述調用鏈信息確定所述目標數據庫的主從屬性的步驟,包括:從所述調用鏈信息中提取各級調用函數所對應的注解信息;若至少一級調用函數所對應的注解信息中包括預設的只讀注解信息,則確定所述目標數據庫的主從屬性為從數據庫;若至少一級調用函數所對應的注解信息中包括預設的寫注解信息,則確定所述目標數據庫的主從屬性為主數據庫。4.根據權利要求1至3任一項所述的方法,其特征在于,所述目標數據庫的主從屬性為主數據庫或者從數據庫,所述目標數據庫訪問指令的讀寫操作類型為讀操作類型或者寫操作類型;所述對所述目標數據庫的主從屬性和所述目標數據庫訪問指令的讀寫操作類型進行匹配,以得到測試結果的步驟,包括:若所述目標數據庫的主從屬性為從數據庫且所述目標數據庫訪問指令的讀寫操作類型為寫操作類型,則拋出數據庫操作異常提示,并生成沖突測試結果。5.根據權利要求4所述的方法,其特征在于,所述對所述目標數據庫的主從屬性和所述目標數據庫訪問指令的讀寫操作類型進行匹配,以得到測試結果的步驟,還包括:若所...
【專利技術屬性】
技術研發人員:張友璇,
申請(專利權)人:廣州品唯軟件有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。