張佔嶺web
Web壓力架構... 1正則表達式
一 系統性能測試概述... 1數據庫
1.1 性能測試概述... 1瀏覽器
1.2 性能測試的指標... 2緩存
1.3 關鍵點的描述... 2服務器
1.4 性能測試的目的... 2網絡
1.5 測試項目開發規範... 2架構
二 使用VS壓力測試工具進行測試... 3併發
2.1 性能測試(WebTest). 3編輯器
2.1.1 概念... 3
2.1.2 如何創建性能測試... 3
2.1.3 使用CS代碼快速創建性能測試... 5
2.1.4 運行當前性能測試... 6
2.2 負載(壓力)測試(LoadTest)... 6
2.2.1 概念... 6
2.2.2 目的... 6
2.2.3 術語... 6
2.2.4 如何創建負載測試... 7
2.2.5 負載測試運行時的說明... 10
2.2.6 分析報告說明... 11
2.3 測試場景描述... 12
2.4 主要業務模塊... 12
三 測試數據的填充... 13
3.1 Webtest工具填充... 13
3.2 手動編輯業務代碼... 13
3.3 使用RedGate.SQLDataGenerator工具進行填充... 13
本次測試是針對學習吧系統在應對密集整轉的壓力下業務處理能力的測試,檢驗系統的吞吐率。本系統的壓力測試主要是針對主要用戶註冊,登陸,用戶中心,班級圈、訂單,檢查在應用高峯時期,併發用戶數較多的時候的處理能力等等。
1 應用系統的負載能力:即系統所能容忍的最大用戶數量,也就是在正常的響應時間中,系統可以支持的最多的客戶端的數量。
2 應用系統的吞吐率:即應用系統在單位時間內完成的交易量,也就是在單位時間內,應用系統針對不一樣的負載壓力,所能完成的交易數量。
3 系統的響應能力:即在各類負載壓力狀況下,系統的響應時間,也就是從客戶端請求發起,到服務器端應答返回所須要的時間,包括網絡傳輸時間和服務器處理時間。
4 應用系統的可靠性:即在連續工做時間狀態下,系統可以正常運行的時間,即在連續工做時間段內沒有出錯信息
系統在不一樣用戶數量(併發)壓力下的表現,即:支持的併發用戶數目和併發用戶發送頻率,以及在較大壓力下,系統的處理能力以及CPU、數據庫I/O和內存的使用狀況,並找出相應的性能瓶頸
壓力測試的目的就是檢驗系統的最大吞吐量,檢驗現行的業務系統在各類壓力交易
量下的運行情況,檢驗系統地運行瓶頸,獲取系統的處理能力等等。
本次針對系統所進行的壓力測試的測試目的爲:
1 給出系統當前的性能情況
2 定位系統性能瓶頸或潛在性能瓶頸
3 總結一套合理的、可操做的、適合公司現實狀況的性能測試方案,爲後續的性能測試工做提供基本思路
1 在具體項目解決方案中添加測試項目
2 爲每一個模塊創建各自的文件夾
3 開發人員能夠採用代碼方法創建性能測試,非專業人員能夠經過錄制創建性能測試
4 測試域名不採用IP地址,能夠在HOSTS中配置虛擬域名,這樣方便之後修改
5 數據動態參數採用CSV文件,對於非加密信息能夠採用直接鏈接數據庫的方式獲得真實數據
將一些測試的流程進行錄製,並保存成一個webtest 就生成了一個web性能測試,這些性能測試文件能夠添加到負載測試項目,完成壓力測試。(負載測試項目由多個web性能測試組成)
1 建立 Web 性能測試
你的 Web 瀏覽器隨即打開。
2 輸入要測試的網站的 URL。
3 若是你但願客戶使用本身的應用程序,也請你使用。 例如,搜索項並將其添加到購物車中。記錄器將捕獲 HTTP 請求和響應。
4 完成後,請中止記錄。
如今,Visual Studio 爲你的每一個 HTTP 請求的 HTTP 響應查找動態參數。 發生這種狀況時,將顯示進度欄。
5 重命名你的測試。 例如,學民吧首頁.webtest。
6 編輯測試屬性以指定性能目標。 例如,能夠將頁面響應時間目標設置爲 1 秒。(這個值在負載測試時會用到)
7 保存測試。
經過嚮導生成性能測試後,也能夠將它生成代碼文件,方便咱們開發人員直接編輯它
運行性能測試後,它會模擬你定義的請求,代你完成整個流程
測試結果在運行後被顯示出來
負載測試(Load Testing)是肯定在各類工做負載下系統的性能,目標是測試當負載逐漸增長時,系統組成部分的相應輸出項,例如經過量、響應時間、CPU負載、內存使用等來決定系統的性能。負載測試是一個分析軟件應用程序和支撐架構、模擬真實環境的使用,從而肯定可以接收的性能過程。壓力測試(Stress Testing)是經過肯定一個系統的瓶頸或者不能接收的性能點,來得到系統能提供的最大服務級別的測試。
經過壓力測試,判斷當前應用環境狀況下系統的負載能力,爲從此應用範圍擴大,用戶量上升後,服務器擴容、升級等提供必要的技術支撐,及服務器規劃等。
應用服務器
網站/軟件架構中的應用處理服務器,提供請求的接收、處理、返回WEB請求
數據庫服務器
網站/軟件架構中的數據處理服務器,提供數據的存儲和讀取等功能
測試機
專門用來壓力測試的計算機,一般爲經常使用的PC機
系統用戶數
是指實際可能使用應用系統的總用戶數
在線用戶數
是指當前登陸應用系統,處於正在操做或空閒狀態的用戶數
併發用戶數
是指當前登陸應用系統,並同時進行操做的用戶數
響應時間
是指服務器從接收請求到返回請求之間的處理時間。壓力測試中,忽略網絡傳輸時間及測試機中處理時間,測試機上得到響應時間即做爲服務器的響應時間
1 在 Web 性能和負載測試項目中建立新的負載測試。
2 負載測試嚮導出現後,請選擇負載模式步驟。
將負載模式更改成分級負載。 這將隨着時間逐漸添加用戶。
3 選擇測試組合步驟。
添加建立的 Web 性能測試。
將 Web 性能測試移至要運行的測試列表中。
4 完成嚮導後,Web 性能測試就會添加到負載測試並顯示在負載測試編輯器中。
在測試運行時,你可能會發展某個頁的響應時間超過你設置的值。
添加分析註釋以跟蹤問題。
負載測試完成後,將顯示摘要。
已完成測試的結果包含性能計數器數據、閾值衝突和錯誤信息。 注意,若是在性能測試中,這個相應時間沒有設置(默認爲0)表示,不去關心這個數據,即便你的響應時間再慢,它不會出現未經過的狀況,如圖
負載測試摘要
總體結果
最大用戶負載 |
225 |
測試/秒 |
15.9 |
未經過的測試 |
6,928 |
平均測試時間(秒) |
12.9 |
每秒事務數 |
0 |
平均事務時間(秒) |
0 |
每秒頁數 |
20.1 |
平均頁面時間(秒) |
10.2 |
請求/秒 |
174 |
失敗的請求數 |
0 |
緩存的請求數佔總請求數的百分比 |
57.7 |
平均響應時間(秒) |
1.20 |
平均內容長度(字節) |
1,346 |
關鍵統計信息: 最慢的 5 個頁面
URL (更多詳細信息的連接) |
95% 頁面時間(秒) |
xxx |
19.0 |
xxx |
8.08 |
xxx |
0.13 |
關鍵統計信息: 最慢的 5 個測試
名稱 |
95% 測試時間(秒) |
29.1 |
測試結果
測試結果部分列出了負載測試中的全部測試和方案。 它將顯示測試名稱、方案、運行次數、失敗次數以及平均測試時間。 您能夠選擇某個測試的名稱以打開「測試」表和查看該測試的更多詳細信息。
名稱(性能測試名稱) |
方案(方案名稱) |
測試總數 |
失敗的測試數(佔總數的百分比) |
平均測試時間(秒) |
xxx |
個人班級圈 |
2,507 |
0 (0) |
21.4 |
xx |
學生登錄-增量測試 |
5,346 |
5,325 (99.6) |
10.1 |
xxx |
學生登錄-桓定測試 |
1,666 |
1,603 (96.2) |
8.80 |
頁結果
頁面結果部分列出了負載測試中的全部網頁。 將顯示 URL、方案、測試名稱、平均頁面時間和計數。 您能夠選擇某個頁面的 URL 以打開「頁」表和查看該頁面的更多詳細信息。
頁結果
URL (更多詳細信息的連接) |
方案 |
測試 |
平均頁面時間(秒) |
計數 |
xxx |
個人班級圈 |
個人班級圈 |
11.5 |
2,507 |
xxx |
學生登錄-增量測試 |
登錄 |
10.1 |
5,346 |
xxx |
個人班級圈 |
個人班級圈 |
9.87 |
2,550 |
xxx |
學生登錄-桓定測試 |
登錄 |
8.80 |
1,666 |
錯誤
錯誤部分列出了在負載測試過程當中發生的全部錯誤。 將顯示錯誤類型和子類型、計數和最新消息。 您能夠選擇某個錯誤以打開「錯誤」表,並查看該錯誤的更多詳細信息。
類型 |
子類型 |
計數 |
最後一條消息 |
SocketException |
2 |
因爲鏈接方在一段時間後沒有正確答覆或鏈接的主機沒有反應,鏈接嘗試失敗。 163.177.72.159:80 |
事務結果
事務結果部分列出了負載測試中的全部事務。 將顯示事務名稱、方案、名稱、響應時間、已用時間和計數。 您能夠選擇某個事務的名稱以打開「事務」表,並查看該事務的更多詳細信息。
控制器和代理資源
控制器和代理資源部分列出了用於運行測試的計算機。 將顯示計算機名、處理器時間百分比和可用內存。 您能夠選擇某個計算機名稱以打開「控制器和代理」圖形,並查看不一樣時間的資源使用量。
用戶分佈圖
測試結果表格
關係圖表
測試中,使用逐步加壓的模式,測試運行場景安排以下:
每一個場景都包括:
使用webTest對指定頁面邏輯進行錄製,如用戶註冊,創建課程等,以後使用壓力測試工具loadtest進行測試同時測試數據便可寫入真實庫。
由開發人員去針對指定模塊的業務進行二次開發,再使用如循環的方式將數據批量注入真實數據庫便可
操做簡單,上手容易!
1 定義生成數據的數量
2 預覽生成的數據結果
3 能夠對指定數據列進行編輯,對數值類型的列能夠進行隨機生機,增量生成,設置最大值和最小值等等
4 對字符類型的列,能夠進行正則表達式的過濾
5 對日期時間類型的列,能夠設置起始日期和結束日期,及隨機產生和增量產生及時間段產生等
6 一鍵生成數據,並提供數據生成的報表