數據正確性驗證方法及裝置的製作方法
2023-06-03 23:53:11 1
innertext",2)).GetROProperty("x")+90,其中,datatable.Value("innertext",2)為參數化部分,理解為從DataTable視圖的第二個表(即Action表)中取出列名為innertext下的數據。由於DataTable下的Action表中保存內容是用於參數化的驅動數據的具體內容(報表名、開始、結束日期等),此處取出的innertext數據即「關閉操作統計」,使用datatable.vlaue("innertext",2)取出數據後賦值給webelement控制項的innertext屬性,那麼innertext屬性便被參數化而有了具體值,隨後可以指導QTP通過參數化的具體屬性值找到待測試報表。完成一項屬性的參數化後,重複上述步驟對其他屬性進行參數化;4、設置迭代次數,根據迭代次數的設置,按行依次讀取表中數據來驅動測試腳本執行數據驗證。由於運行測試時QTP將導入驅動數據至DataTable視圖中的Global表或Action表,因此需要對數據表的迭代次數進行設置。迭代次數用於控制腳本的執行次數,是與數據行數對應的;QTP關於迭代次數有三種設置:僅執行一次、執行所有數據行、指定循環執行的行數。如設置為僅執行一行時,則腳本僅讀取第一行的參數化數據;如設置為執行所有數據行,則QTP將依據讀取到的數據行的行數確定腳本的循環執行次數。Global為全局表,可通過File->Settings->Run設置迭代方式。Action為局部表,可通過TestFlow->右鍵具體Action->ActionCallProperties設置迭代次數。其中,程序執行次數是通過Global設置的次數乘以Action中設置的次數控制的,例如Global執行3行數據,Action執行4行數據,那麼腳本就需要執行3*4=12次;本發明的實施例中將數據導入至Action表,因此只需設置Action的迭代次數。設置完迭代次數後,測試將根據迭代次數的設置,按行依次讀取DataTable中數據來驅動測試腳本執行。當腳本運行起來,導入參數化數據後,QTP將讀取DataTable中的第一行數據,根據已經設置的迭代次數,腳本執行完當前一次迭代後將自動跳轉至下一行數據,開始新一輪腳本的運行,直至執行完所有迭代。測試停止則DataTable中數據也隨之清除。本方案可提高QTP驗證web報表數據正確性的腳本利用率,對於相同業務邏輯、操作步驟的報表而言,僅執行一次測試即可實現同類報表的測試;並且本方案將驅動數據獨立為外部數據文件,大大降低了腳本的維護成本。更進一步地,在本發明的方法中,腳本執行時對於數據驗證的處理方式參見圖2,包括步驟:1、在腳本執行時首先創建以當前訪問的報表名命名的Excel文檔,文檔中sheet表分兩部分,一部分為系統導出數據;一部分為資料庫導出數據。2、訪問系統報表時,通過getcelldata(i,j)的方法遍歷webtable,然後在本地excel文檔-系統數據的sheet表中由第二行(資料庫sheet表的第一行額外保存了統計項ID)開始保存數據(目的是與資料庫導出數據行對應)。3、由資料庫中導出數據保存至同一excel-資料庫sheet表中,首先依據待驗證報表名導出統計項ID及名稱,然後查詢該報表下各版本的上報項個數,由此計算得出報表樣式,依據導出的統計項ID、名稱、日期、版本、上報項等信息為查詢條件,按行導出資料庫數據,並保存至excel文檔資料庫sheet表中;統計項數據的導出過程如圖3,由資料庫中導出數據首先判斷某個時間單一版本的統計項數據是否為空;如為空,則捨棄該時間-版本的數據導出過程(即從excel中刪除該時間-版本),判斷下一個時間-版本數據;不為空,則按行(以時間-版本-上報項為查詢條件)查詢數據,若查詢結果僅有一個數據(即上傳用戶數統計項),則該數據賦值給「上傳用戶數」統計項,其餘單元格賦值為0;否則將按行正常賦值。4、對兩個sheet表中單元格數據——對比,一致則測試通過;不一致,則在QTP產生的測試結果報告中輸出錯誤信息;在保存系統數據的sheet表中該出錯數據的單元格內容顯示錯誤數據信息,並將字體置為紅色突出顯示以便查看。本領域普通技術人員可以理解,實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬體來完成,所述的程序可以存儲於一計算機可讀取存儲介質中,該程序在執行時,包括上述實施例方法的各步驟,而所述的存儲介質可以是:R0M/RAM、磁碟、光碟等。因此,與本發明的方法相對應的,本發明還同時包括一種數據正確性驗證裝置,該裝置通常以與方法各步驟相對應的功能模塊的形式表示;如圖4所示,所述裝置包括:驅動數據保存模塊I,用於在本地建立用於保存驅動數據的文檔;驅動數據導入模塊2,用於將驅動數據導入至測試用表中;腳本參數化模塊3,用於根據測試用例從對應的測試用表中取出驅動數據對腳本進行參數化;迭代驗證模塊4,用於設置迭代次數,根據迭代次數的設置,按行依次讀取表中數據來驅動測試腳本執行數據驗證。更進一步地,所述迭代驗證模塊通過腳本執行模塊驅動測試腳本執行數據驗證,所述腳本執行模塊包括:數據文檔創建模塊,用於在腳本執行時首先創建以當前訪問的報表名命名的數據文檔,所述數據文檔中分為系統導出數據保存區和資料庫導出數據保存區兩部分;系統數據導出模塊,用於遍歷網頁報表,將獲取的數據按行保存在所述數據文檔的系統導出數據保存區中;資料庫數據導出模塊,用於依據待驗證報表名導出待查詢條件,依據導出的待查詢條件,按行導出資料庫數據,保存在所述數據文檔的資料庫導出數據保存區中;數據驗證模塊,對系統導出數據保存區和資料庫導出數據保存區中單元格數據一一對比,一致則測試通過;不一致,則在產生的測試結果報告中輸出錯誤信息。以上實施方式僅用於說明本發明,而並非對本發明的限制,有關
技術領域:
的普通技術人員,在不脫離本發明的精神和範圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬於本發明的範疇,本發明的專利保護範圍應由權利要求限定。權利要求1.一種數據正確性驗證方法,其特徵在於,所述方法包括步驟:SI,在本地建立用於保存驅動數據的文檔;S2,將驅動數據導入至測試用表中;S3,根據測試用表中驅動數據的列名對腳本進行參數化;S4,設置迭代次數,根據迭代次數的設置,依次讀取測試用表中每行的驅動數據替代參數來驅動測試腳本執行數據驗證。2.根據權利要求1所述的方法,其特徵在於,步驟S2-S4中,使用QTP工具進行數據的操作。3.根據權利要求1所述的方法,其特徵在於,步驟SI中,所述驅動數據包括報表名稱、報表查詢開始日期、報表查詢結束日期。4.根據權利要求1所述的方法,其特徵在於,步驟S3中,通過獲取報表名稱的坐標值加固定數字來找到打開該報表的按鈕,然後訪問報表數據。5.根據權利要求1所述的方法,其特徵在於,步驟S4之後,當測試停止則將測試表中數據也隨之清除。6.根據權利要求1所述的方法,其特徵在於,步驟S4中,驅動測試腳本執行數據驗證具體包括步驟:S41,在腳本執行時首先創建以當前訪問的報表名命名的數據文檔,所述數據文檔中分為系統導出數據保存區和資料庫導出數據保存區兩部分;S42,遍歷網頁報表,將獲取的數據按行保存在所述數據文檔的系統導出數據保存區中;S43,依據待驗證報表名導出待查詢條件,依據導出的待查詢條件查詢資料庫,按行導出資料庫數據,保存在所述數據文檔的資料庫導出數據保存區中;S44,對系統導出數據保存區和資料庫導出數據保存區中單元格數據一一對比,一致則測試通過;不一致,則在產生的測試結果報告中輸出錯誤信息。7.根據權利要求6所述的方法,其特徵在於,步驟S43中,所述導出資料庫數據的過程為:從資料庫中導出數據,首先判斷某個時間單一版本的統計項數據是否為空;若為空,則捨棄該時間-版本的數據導出過程,判斷下一個時間-版本數據;若不為空,則按行查詢數據;若查詢結果僅有一個數據,則該數據賦值給「上傳用戶數」統計項,其餘單元格賦值為O;否則將按行正常賦值。8.根據權利要求6所述方法,其特徵在於,步驟S44中,不一致時,輸出錯誤信息具體操作為:在系統導出數據保存區中該出錯數據對應的單元格內顯示錯誤數據信息,並將字體置為紅色突出顯示。9.一種數據正確性驗證裝置,其特徵在於,所述裝置包括:驅動數據保存模塊,用於在本地建立用於保存驅動數據的文檔;驅動數據導入模塊,用於將驅動數據導入至測試用表中;腳本參數化模塊,用於根據測試用例從對應的測試用表中取出驅動數據對腳本進行參數化;迭代驗證模塊,用於設置迭代次數,根據迭代次數的設置,按行依次讀取表中數據來驅動測試腳本執行數據驗證。10.根據權利要求9所述的裝置,其特徵在於,所述迭代驗證模塊通過腳本執行模塊驅動測試腳本執行數據驗證,所述腳本執行模塊包括:數據文檔創建模塊,用於在腳本執行時首先創建以當前訪問的報表名命名的數據文檔,所述數據文檔中分為系統導出數據保存區和資料庫導出數據保存區兩部分;系統數據導出模塊,用於遍歷網頁報表,將獲取的數據按行保存在所述數據文檔的系統導出數據保存區中;資料庫數據導出模塊,用於依據待驗證報表名導出待查詢條件,依據導出的待查詢條件,按行導出資料庫數據,保存在所述數據文檔的資料庫導出數據保存區中;數據驗證模塊,對系統導出數據保存區和資料庫導出數據保存區中單元格數據一一對t匕,一致則測試通過;不一致,則在產生的測試結果報告中輸出錯誤信息。全文摘要本發明涉及數據測試
技術領域:
,提供了一種數據正確性驗證方法及裝置。該方法包括在本地建立用於保存驅動數據的文檔;將驅動數據導入至測試用表中;根據測試用表中驅動數據的列名對腳本進行參數化;設置迭代次數,根據迭代次數的設置,依次讀取測試用表中每行的驅動數據替代參數來驅動測試腳本執行數據驗證。本發明中將測試數據與腳本的分離,通過參數化的方式將數據文件中讀取到的數據寫入到腳本中,可以執行一次腳本實現多張報表數據的測試,大大降低了腳本的維護成本,可有效提高QTP驗證web報表數據正確性的腳本利用率。文檔編號G06F17/30GK103186467SQ20111046215公開日2013年7月3日申請日期2011年12月31日優先權日2011年12月31日發明者趙榮申請人:北京新媒傳信科技有限公司