- 相關推薦
如何進行測試方案設計
容量測試是用來研究程序已經加載非常大量的數據后,處理很少量或很大量數據任務時的運行情況。下面請看小編帶來的如何進行測試方案設計!
如何進行測試方案設計
一、方法簡介
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)再次增加數據,測試是否能夠增加成功。
四、總結
容量測試不僅僅是添加數據就可以了,要進行全面、深入的容量測試,必須在加載數據的基礎上從多個不同的角度測試系統。本文給出了加載數據的方法和加載數據后的測試樣例,實際應用中需要根據不同系統的特點進行不同的設計。