以動態資料進行壓力測試_以Visual Studio及MS SQL為例
在進行壓力測試前的準備工具有兩項: Visual Studio Enterprise及MS SQL。Visual Studio必須為企業版才有壓力測試的專案選項。
如何建立壓力測試的專案,不是這篇文章的重點,可以參考本文附上的參考連結。
本文有兩個重點:
1. 壓力測試所需的資料應該放在哪裡。
2. 如何在壓力測試專案中使用這些測試資料。
1. 建立大量的測試資料
假設今天要測試一個建立帳戶的API,此API的Request參數為JSON格式,如下:
{
"MemberId": "1091212000001",
"Name": "KO",
"PhoneNo": "0977555222",
"Email": "1091212000001@gmail.com",
"ID":"A223456789"
}
我預備進行兩小時的建立帳戶壓力測試,我預估我必須使用到50萬組帳號資料,因此我必須有MemberId=1091212000001~1091212500000的測試資料。
如何建立這些不重複的測試資料屬於開發人員的基本功了,也不在多加描述。
這些資料我以MS SQL的資料表為儲存體,將50萬筆資料寫入TestCreateAccount資料表中,如下: 將資料寫入TestCreateAccount.Data欄位中
2. 在壓力測試專案中使用第一個步驟所產生的測試資料
2.1 先建立一個Web Performance Test
2.2 接著在CreateAccount按右鍵,選擇 Add Data Source
2.3 選擇Database,下一步。
2.4 依據自己的環境,建立資料庫連線
2.5 選擇資料來源 TestCreateAccount,完成
2.6 資料來源已經設定完成了,接下來的步驟就是綁定DB的測試資料到要測試的API上面了
2.7 String Body中的值,就是API Request的內容,必須將DB的資料綁定到String Body欄位中。作法很簡單: 點選紅框的… 會出現輸入資料的畫面。在畫面中輸入 {{DataSource1.TestCreateAccount.Data}} 就綁定完成了。
在測試資料及資料的綁定都完成之後,就可以立刻進行測試了。不過這邊有個小提示,當測試數據越龐大時,在測試按鈕按下去時會等待較久的時間,因為進行測試前,會先將測試資料取出來先放在記憶體中,所以等待的時間就是從資料庫讀取資料的時間。否則如果是在測試當下才一筆一筆的從DB讀資料,測試的結果就不可能準確了。
參考資料:
Visual Studio Web效能測試(壓力測試工具) 簡易流程