需要安裝VS企業正式版本,VS企業使用版本在做壓測時,線程數有最多設置250人的限制
VS企業正式版本安裝包:VS 2015 Installation.msg
創建一個Web Performance And Load Test項目
1. 打開Visual Studio,選擇File->New->Project->Test->Web Performance and Load Test Project
注意:項目路徑請選擇D盤或其他磁盤,盡量不要選擇C盤,以免磁盤空間不足,對測試結果准確性造成影響
添加調用方式為Get類型的API (API沒有緩存,做壓測的時候可以用這一個API來壓,即每次請求的參數不需要變化)
1. 選中新建好的工程項目,右鍵Add Web Performance Test
2. 雙擊打開工程項目里的WebTest1,右鍵添加API請求
在配置里,調用方式選擇GET,添加API url請求后save一下
3. 有的API需要添加Headers參數
右鍵url->Add Header,在配置里添加Name和Value值
4. 本地運行一下,確保API調用沒有問題后再開始做壓測
點擊Run Test,查看API調用結果是否返回200-成功
在request里勾上Show raw data可以看到請求的原始參數
添加調用方式為Get類型的API(API有緩存,即每次請求的參數需要變化),
可以通過add datasource或者generate code的方式更改每次請求的參數,這里以WebTest1為例,每次請求里的contactid取不同的值
add datasource
1. 從數據庫里以拼接字符串的方式取不同的contactid,把查詢結果存放在xml文件里
xml文件參照:第一組200002864079-20002964075.xml
2. 在url里點擊add data source,選擇數據源的格式為xml格式,導入xml文件,選中uri
3. 在url里點擊data source,點擊uri_Text,此時請求的url顯示成{{DataSource1.uri.uri._Text}},本地運行一下,確保API調用沒有問題后再開始做壓測
generate code
1. 點擊generate code按鈕,生成WebTest1Coded.cs文件
注意此時webtest文件和生成的coded cs文件是兩個獨立的文件,在后面介紹的壓測中添加API時需要選擇coded cs文件
2. 在cs文件里添加C#代碼,右鍵點擊Run Coded Web Performance Test,確保cs文件運行沒有問題后再開始做壓測
添加調用方式為post類型的API(API沒有緩存,做壓測的時候可以用這一個API來壓,即每次請求的參數不需要變化)
1. 選中新建好的工程項目,右鍵Add Web Performance Test
2. 雙擊打開工程項目里的WebTest2,右鍵添加API請求
在配置里,調用方式選擇POST,添加API url請求后save一下
3. 右鍵WebTest2,選擇open with xml格式,把<FormPostHttpBody />去掉
添加下面代碼:
<Headers>
<Header Name="Content-Type" Value="application/json" />
</Headers>
<StringHttpBody />
Save一下
4. 雙擊打開WebTest2
填寫content-type和stringbody
Save一下
添加Load Test開始做壓測
1. 右鍵工程項目,Add Load Test
2. 按向導配置模式、線程數、運行時間、網絡 選擇On-Premise Load Test在本機做壓測
一般不填寫think time,選擇默認的場景。思考時間:被用來模擬人的行為, 使人們在與網站的互動中等待。
思考時間發生在Web測試中的請求和負載測試場景中的測試迭代之間。在負載測試中使用思考時間對於創建更精確的負載模擬是有用的。
一般選擇持續的線程模式,step load是增量的線程模式
默認選擇第一種模式,基於請求的總數出壓測報告
添加進行壓測的webtest或者coded cs文件
選擇網絡,默認選擇LAN局域網
選擇瀏覽器,默認選擇Internet explorer 9.0,點擊Finish按鈕
3. 點擊Run Load Test
4. Summary Report中幾項重要的壓測指標
Max User Load:線程數
Duration:壓測運行時間
Total Tests:線程數在運行時間內發起的總請求數
Failed Tests(% of total):請求失敗的次數/請求總數
Avg.Test Time(sec):服務器平均一秒內處理的請求數
Errors:截圖中的get geo locations error可以忽略,通常在線程數逐漸增多的情況下,會出現500-服務器內部錯誤、504-服務器響應超時錯誤等等
5. 壓測報告模板
觀察在運行時間恆定的情況下,隨着線程數不斷增加,服務器每秒處理的請求數不再增加反而減少了,說明這個API的性能已經達到峰值。
如果在壓測過程中看到有大量的500、504或者其他錯誤,讓dev查下原因,看能否優化下SP腳本和代碼