1. 首頁
  2. 輔助設計與工程計算

如何進行測試方案設計

如何進行測試方案設計

容量測試是用來研究程式已經載入非常大量的資料後,處理很少量或很大量資料任務時的執行情況。下面請看小編帶來的如何進行測試方案設計!

如何進行測試方案設計

一、方法簡介

1. 定義

容量測試是用來研究程式已經載入非常大量的資料後,處理很少量或很大量資料任務時的執行情況。這一測試主要關注一次處理合理需求的大量資料時功能的執行情況。

2. 設計方法

系統中有許多功能都需要進行容量測試,比如:在局容量中進行了限定的指標都需要進行容量測試,另外系統經常擴容或者改版,每次擴容和改版都需要進行相應的容量測試。容量測試是用來測試系統已經載入了大量資料的情況下,系統各個功能的執行情況。容量測試有兩個關鍵點:(1)如何載入大容量的資料;(2)載入資料後,需要進行哪些測試。以下用一個配置表的容量測試進行說明。

二、載入大容量資料的方法

新增資料一般需要開發測試指令碼,根據資料呈現出的不同規律性,指令碼的開發方式也有所差異,下面介紹使用WinRunner開發容量測試指令碼的三種方式:

1. 開發結構化指令碼進行容量測試

結構化指令碼類似於結構化程式設計,利用指令碼中的指令控制指令碼的執行。這些指令一般是選擇結構或者迭代結構。選擇控制結構使指令碼具有判斷功能,最普通的形式是if語句。迭代控制結構可以根據需要重複一條或者幾條語句,直到滿足重複的次數為止。我們正是利用了WinRunner指令碼的能夠迴圈新增資料的功能達到容量測試的目的。結構化指令碼適用於所新增的資料具有某種規律性,把資料的這種規律性以指令碼的形式設計出來就可以完成資料的新增。

指令碼設計步驟如下:

(1)尋找新增資料的規律,容量測試的資料在新增的時候一般都具有規律性,有的以某個關鍵字遞增,有的以某個指標遞增,首先把這種規律總結出來;

(2)將資料增加的規律以指令碼的形式錄製下來;

(3)新增迭代結構和選擇控制結構,一般以迴圈結構滿足資料重複新增的需要;

(4)除錯並執行指令碼,新增資料;

下面以新增No.7路由為例進行說明。

(1)尋找規律。局容量中設定了No.7路由的最大值為255,透過試驗,我們發現No.7路由資料以路由號為關鍵字遞增,每次新增路由資料成功後,新增的路由號都被刪除,新新增時只需記錄先前的位置即可。

(2)錄製單次執行的指令碼。如下所示:

# Add signaling route

win_mouse_click ("Add signaling route", 165, 46);

win_type ("Add signaling route","Route");

win_mouse_click ("Add signaling route", 193, 154);

(3)新增迭代語句。局容量中No.7路由的最大值為255,我們要將步驟(2)中錄製的語句迴圈執行255次就可以新增255條資料,為此需要在(2)中的指令碼上加入控制結構,如下:

For(i=0;i<255;i++)

{

# Add signaling route

win_mouse_click ("Add signaling route", 165, 46);

win_type ("Add signaling route","Route");

win_mouse_click ("Add signaling route", 193, 154);

}

(4)迴圈執行,新增資料。

2. 資料驅動的容量測試

如果新增的資料沒有規律,那麼就需要使用資料驅動指令碼。資料驅動是指透過讀取本地Excel表的方式進行測試。當執行資料驅動指令碼時,WinRunner會讀取資料表中的每一筆資料,並放入被引數化的地方,然後執行一次,直到把所有的資料都新增完為止。

指令碼的設計步驟如下:

(1)將需要新增的資料放入一個Excel表中,表的第一行表示這組資料的名稱。表中的資料可以是雜亂無章、毫無規律的資料,WinRunner將讀取該表的資料新增到被測系統中;

(2)錄製一個新增資料的普通指令碼,我們將在這個指令碼的基礎上構建資料驅動測試;

(3)加上開啟及關閉資料表的指令;

(4)加上迴圈語句,完成讀取資料表的每一筆資料的功能;

(5)將指令碼中錄製的固定值引數化為資料表的欄位值;

(6)除錯並執行指令碼,新增資料;

下面以號碼分析為例進行說明。

(1)建立Excel資料表。將需要進行號碼分析的資料新增到該表中,注意第一行表示資料的名稱,不是真正的資料。

(2)錄製普通指令碼。錄製號碼分析的普通指令碼,其中133851就是新增的號碼,後面我們將對這個號碼引數化,使其能夠讀取Eecel資料表中的資料。

# Add the Analysed Digit Type5 [Local Network] Entry5

win_mouse_click ("Add the Analysed Digit Type5 [Local Network] Entry5", 174, 25);

win_type ("Add the Analysed Digit Type5 [Local Network] Entry5","133851");

(3)新增開啟和關閉資料表的指令,資料表只有在開啟的.條件下才能夠讀取資料。

table = "D: tableconfig_table.xls"; 表的路徑

rc = ddt_open(table, DDT_MODE_READ);

if (rc!= E_OK && rc != E_FILE_OPEN)

pause("Cannot open table.");

# Add the Analysed Digit Type5 [Local Network] Entry5

win_mouse_click ("Add the Analysed Digit Type5 [Local Network] Entry5", 174, 25);

win_type ("Add the Analysed Digit Type5 [Local Network] Entry5","133851");

ddt_close(table);

注:該步驟也可以使用WinRunner 自帶的資料驅動向導進行新增。

(4)新增迴圈語句。透過迴圈語句逐句讀取資料表中的資料,完成資料的自動新增。

table = "D: tableconfig_table.xls";

rc = ddt_open(table, DDT_MODE_READ);

if (rc!= E_OK && rc != E_FILE_OPEN)

pause("Cannot open table.");

ddt_get_row_count(table,table_RowCount);

for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)

{

ddt_set_row(table,table_Row);

# Add the Analysed Digit Type5 [Local Network] Entry5

win_mouse_click ("Add the Analysed Digit Type5 [Local Network] Entry5", 174, 25);

win_type ("Add the Analysed Digit Type5 [Local Network] Entry5","133851");

}

ddt_close(table);

(5)引數化。將固定值133851替換為表的Digit引數,這樣每一次迴圈就可以讀取資料表的一個值,而不是原先的固定值了。

table = "D: tableconfig_table.xls";

rc = ddt_open(table, DDT_MODE_READ);

if (rc!= E_OK && rc != E_FILE_OPEN)

pause("Cannot open table.");

ddt_get_row_count(table,table_RowCount);

for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)

{

ddt_set_row(table,table_Row);

# Add the Analysed Digit Type5 [Local Network] Entry5

win_mouse_click ("Add the Analysed Digit Type5 [Local Network] Entry5", 174, 25);

win_type ("Add the Analysed Digit Type5 [Local Network] Entry5", ddt_val(table,"Digit"));

}

ddt_close(table);

(6)除錯並執行步驟5中的指令碼,即可完成資料的自動新增。

3. 結構化指令碼和資料驅動相結合

如果新增的資料跟測試環境(如局向號、版本號等)有很大的關係,但是測試環境一旦確定下來,其資料又有很大的規律性,在這種情況下新增資料就需要將上述的兩種方法結合起來開發指令碼。使用資料驅動應對測試環境的變化,使用結構化指令碼應對測試資料的變化,具體的使用方法2.1和2.2中已經說明,在此不再贅述。

三、 載入資料後的測試項

容量測試需要測試的內容:一是大容量的資料是否可以載入成功;二是載入大容量資料後系統是否可以正常執行。第二點需要根據系統的特點不斷的進行整理總結,如下是一個配置表加滿後的測試設計專案:

1. 能夠新增最大的容量資料,在達到最大容量時功能能夠正常執行;

2. 達到最大容量後,該功能的顯示、修改和刪除正常;

3. 超出容量最大值時會有限制,且提示已經達到了最大容量;

4. 能夠進行備份、恢復和資料同步,同步後系統能夠穩定的工作;檢視前臺表,資料跟後臺一致,尤其是最後的幾條記錄;

5. 關聯功能的測試,新增大容量的資料後,與該功能關聯的功能能夠正常使用;

6. 進行主備倒換和重啟,單板能夠啟動並執行正常;

7. 日誌管理中沒有異常的日誌資訊;

8. 告警管理中,如果有相關的告警其告警資訊正確;

9. 加滿資料後不影響後臺的使用,後臺的CPU和記憶體衝高後可以恢復;

10. 前臺的CPU和記憶體衝高後可以恢復;

11. 達到最大容量後,刪除部分排序在前的資料,再次增加:

(1)配置資料達到最大容量;

(2)刪除部分中間的資料或者排序在前面的資料;

(3)再次增加資料,測試是否能夠增加成功。

四、總結

容量測試不僅僅是新增資料就可以了,要進行全面、深入的容量測試,必須在載入資料的基礎上從多個不同的角度測試系統。本文給出了載入資料的方法和載入資料後的測試樣例,實際應用中需要根據不同系統的特點進行不同的設計。