當前位置:學問谷 >

行業範例 >工程 >

如何進行測試方案設計

如何進行測試方案設計

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

如何進行測試方案設計

  如何進行測試方案設計

  一、方法簡介

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_"; 表的路徑

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_";

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_";

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)再次增加數據,測試是否能夠增加成功。

  四、總結

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

標籤: 方案設計 測試
  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flhy/gongcheng/el0dlr.html