SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
ASP.NET 負載測試

     2011
原始架構




原始架構
使用瀏覽器測試
瀏覽器無法大量測試




   CRASH!!!
HTTP Request/Response
GET /path/file.html HTTP/1.0 From:
someuser@jmarshall.com User-Agent:
HTTPTool/1.0 [blank line here]




                                     HTTP/1.0 200 OK Date: Fri, 31 De
                                     1999 23:59:59 GMT Content-Type:
                                     text/html Content-Length: 1354
                                     <html> <body>

 7 METHOD for HTTP Request
 GET、POST、HEAD、OPTIONS、TRACE、PUT、DELETE
透過HTTP Proxy進行側錄




               GET /index.asp HTTP/1.0
               HTTP/1.0 200 OK
               GET /login.asp HTTP/1.0
               HTTP/1.0 200 OK
Web Test Automation
Web Test (網頁測試)
將一個操作情境錄製,變成可以自
動化操作的測試案例。

用於檢驗網站是否可以正常回應
某一項操作。


Load Test (負載測試) 
重複不斷進行一個錄製好的測試
案例,直到完成設定的測試量。

檢視網站是否在大量的操作同時
進行下,仍維持正常回應。
網頁測試工具
Linux
 ● ab
   ab -n 1000 -c 100 http://192.192.216.94/Default.aspx
 ● wbox
   wbox http://192.192.216.94/Default.aspx 100 clients 10

Apache
 ● JMeter

Microsoft Visual Studio
Team System Web Test
 ● Visual Studio 2010 Ultimate
 ● Fiddler2
 ● neXpert (Fiddler add-on)
操作網頁 (Internet Explorer)




側錄操作過程 (Fiddler)




建立測試專案 (Visual Studio)
負載測試的技巧
● 必須先製作單一操作下不會發生錯誤的網頁測試案例

● 先由合理的小數量開始進行

● 將會造成錯誤的項目剔除(某些不存在檔案造成的404 error)

● 以測試動態網頁(.aspx, .ashx)為主,靜態資料(.jpg, .gif, .css)必
  須剔除

● 觀察負載測試期間伺服器的處理器、記憶體、磁碟狀況

● 錯誤率的目標為 0%

● 改善的目標為每秒平均回應數量
Visual Studio Web Test Step By Step 1/3

安裝軟體

1. Visual Studio Ultimate 2010 (Service Pack 1)
2. Fiddler2 (.NET Framework required)
3. neXpert (Fiddler add-on)
Visual Studio Web Test Step By Step 2/3

Fiddler操作步驟

1. 先關閉IE瀏覽器
2. 打開Fiddler
3. 打開IE瀏覽器進行網頁操作
4. 一邊操作一邊觀察Fiddler側錄的項目
5. 將不必要的項目剔除
6. 完成
7. File > Export Sessions > All Sessions > 選 Visual Studio
   WebTest
8. 儲存 test1.webtest
Visual Studio Web Test Step By Step 3/3

Visual Studio操作步驟

1. 檔案 > 新增專案 > 測試專案 > 測試文件 > 選測試專案 > 確定
2. 方案總管 > 在專案名稱按右鍵 > 加入 > 現有項目 > 選擇
   test1.webtest
3. 打開test1.webtest > 執行測試
4. 方案總管 > 在專案名稱按右鍵 > 加入 > 負載測試 > (下一
   步...) > 將test1加到測試混合 > (下一步...完成...)
5. 進行測試(負載測試) > 觀察關鍵指標、回應時間變化
JMeter Step By Step 1/2

工作台(右鍵) > 新增 > 非測試元素 > HTTP代理伺服器

測試計畫(右鍵) > 新增 > Threads (Users) > 執行緒群組

測試計畫(右鍵) > 新增 > 設定元素 > HTTP要求預設值 (填寫)

HTTP代理伺服器 > 開始

瀏覽器 > 設定代理伺服器 > (進行網頁操作,產生側錄資料)

HTTP代理伺服器 > 停止 (執行緒群組中產生記錄) > 彙整報告
JMeter Step By Step 2/2

測試計畫(右鍵) > 新增 > 接聽 > 彙整報告

執行 > 開始
網站系統實作的記錄


應用程式記錄

時間                      事件                       備註                                
200105151328        使用者登入           帳號名稱=00001
200105151402        選課確認               帳號名稱=00001, 課程代號=
200105151402        資料庫寫入錯誤   SQL ERROR ....
記錄




     伺服器狀態報表
       (cacti)
啟用SNMP (Windows)

開啟控制台 → 新增移除程式 → 新增移除Windows元件 →
Management and Monitoring Tools → Simple Network
Management Protocol
平衡負載的實作方式

Más contenido relacionado

Destacado

Asp net (1)
Asp net  (1)Asp net  (1)
Asp net (1)Kyle Lin
 
2014 設計思考工作營成果冊
2014 設計思考工作營成果冊2014 設計思考工作營成果冊
2014 設計思考工作營成果冊Ian Jang
 
TQC+物件導向程式語言Java認證班(和春資工)
TQC+物件導向程式語言Java認證班(和春資工)TQC+物件導向程式語言Java認證班(和春資工)
TQC+物件導向程式語言Java認證班(和春資工)Kyle Lin
 
Wiki 簡介與操作說明
Wiki 簡介與操作說明Wiki 簡介與操作說明
Wiki 簡介與操作說明Kyle Lin
 
FarmLogs 農場管理軟體預覽
FarmLogs 農場管理軟體預覽FarmLogs 農場管理軟體預覽
FarmLogs 農場管理軟體預覽Kyle Lin
 
行動應用開發實務 - Gradle 介紹
行動應用開發實務 - Gradle 介紹行動應用開發實務 - Gradle 介紹
行動應用開發實務 - Gradle 介紹Kyle Lin
 
TQC+ Java 認證研習
TQC+ Java 認證研習TQC+ Java 認證研習
TQC+ Java 認證研習Kyle Lin
 

Destacado (7)

Asp net (1)
Asp net  (1)Asp net  (1)
Asp net (1)
 
2014 設計思考工作營成果冊
2014 設計思考工作營成果冊2014 設計思考工作營成果冊
2014 設計思考工作營成果冊
 
TQC+物件導向程式語言Java認證班(和春資工)
TQC+物件導向程式語言Java認證班(和春資工)TQC+物件導向程式語言Java認證班(和春資工)
TQC+物件導向程式語言Java認證班(和春資工)
 
Wiki 簡介與操作說明
Wiki 簡介與操作說明Wiki 簡介與操作說明
Wiki 簡介與操作說明
 
FarmLogs 農場管理軟體預覽
FarmLogs 農場管理軟體預覽FarmLogs 農場管理軟體預覽
FarmLogs 農場管理軟體預覽
 
行動應用開發實務 - Gradle 介紹
行動應用開發實務 - Gradle 介紹行動應用開發實務 - Gradle 介紹
行動應用開發實務 - Gradle 介紹
 
TQC+ Java 認證研習
TQC+ Java 認證研習TQC+ Java 認證研習
TQC+ Java 認證研習
 

Similar a Asp net

张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐zhangsuoyong
 
WEB 安全基础
WEB 安全基础WEB 安全基础
WEB 安全基础xki
 
Phpunit入门 r2
Phpunit入门 r2Phpunit入门 r2
Phpunit入门 r2Baohua Cai
 
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發AgileCommunity
 
Java单元测试
Java单元测试Java单元测试
Java单元测试darlingshan
 
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdfbj_qa
 
同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告Kerry Zhu
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具taobao.com
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践longhao
 
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)Max Lai
 
PHPUnit slide formal
PHPUnit slide formalPHPUnit slide formal
PHPUnit slide formaljameslabs
 
在雲端上啜飲爪哇
在雲端上啜飲爪哇在雲端上啜飲爪哇
在雲端上啜飲爪哇建興 王
 
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013Hazem Saleh
 
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5lovingprince58
 
Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1netdbncku
 
前端工程师的软件库
前端工程师的软件库前端工程师的软件库
前端工程师的软件库putaoshu
 
TDD 介紹
TDD 介紹TDD 介紹
TDD 介紹williewu
 
Web testing automation
Web testing automationWeb testing automation
Web testing automationkuozui
 

Similar a Asp net (20)

张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
WEB 安全基础
WEB 安全基础WEB 安全基础
WEB 安全基础
 
Phpunit入门 r2
Phpunit入门 r2Phpunit入门 r2
Phpunit入门 r2
 
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發
 
Java单元测试
Java单元测试Java单元测试
Java单元测试
 
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
 
同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践
 
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
 
Unit test
Unit testUnit test
Unit test
 
PHPUnit slide formal
PHPUnit slide formalPHPUnit slide formal
PHPUnit slide formal
 
在雲端上啜飲爪哇
在雲端上啜飲爪哇在雲端上啜飲爪哇
在雲端上啜飲爪哇
 
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
 
manual
manualmanual
manual
 
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5
 
Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1
 
前端工程师的软件库
前端工程师的软件库前端工程师的软件库
前端工程师的软件库
 
TDD 介紹
TDD 介紹TDD 介紹
TDD 介紹
 
Web testing automation
Web testing automationWeb testing automation
Web testing automation
 

Más de Kyle Lin

物件導向系統分析與設計(建國)
物件導向系統分析與設計(建國)物件導向系統分析與設計(建國)
物件導向系統分析與設計(建國)Kyle Lin
 
淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)Kyle Lin
 
Android 智慧型手機程式設計
Android 智慧型手機程式設計Android 智慧型手機程式設計
Android 智慧型手機程式設計Kyle Lin
 
淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合Kyle Lin
 
2013 TQC+ Java 認證研習簡報
2013 TQC+ Java 認證研習簡報2013 TQC+ Java 認證研習簡報
2013 TQC+ Java 認證研習簡報Kyle Lin
 
Tqc+ 物件導向程式語言(java)認證研習會
Tqc+ 物件導向程式語言(java)認證研習會Tqc+ 物件導向程式語言(java)認證研習會
Tqc+ 物件導向程式語言(java)認證研習會Kyle Lin
 
ContPub 雲端電子書自助出版平台
ContPub 雲端電子書自助出版平台ContPub 雲端電子書自助出版平台
ContPub 雲端電子書自助出版平台Kyle Lin
 
TQC+團報系統學生版(雲科資管)
TQC+團報系統學生版(雲科資管)TQC+團報系統學生版(雲科資管)
TQC+團報系統學生版(雲科資管)Kyle Lin
 
20101220架構討論
20101220架構討論20101220架構討論
20101220架構討論Kyle Lin
 
iisnode Test Drive
iisnode Test Driveiisnode Test Drive
iisnode Test DriveKyle Lin
 
開放源碼電子書與EPUB幕後排版
開放源碼電子書與EPUB幕後排版開放源碼電子書與EPUB幕後排版
開放源碼電子書與EPUB幕後排版Kyle Lin
 
TQC+ Java 全國教師研習會 PLWeb 介紹
TQC+ Java 全國教師研習會 PLWeb 介紹TQC+ Java 全國教師研習會 PLWeb 介紹
TQC+ Java 全國教師研習會 PLWeb 介紹Kyle Lin
 
Modern Browser as a Programming Editor
Modern Browser as a Programming EditorModern Browser as a Programming Editor
Modern Browser as a Programming EditorKyle Lin
 

Más de Kyle Lin (13)

物件導向系統分析與設計(建國)
物件導向系統分析與設計(建國)物件導向系統分析與設計(建國)
物件導向系統分析與設計(建國)
 
淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)
 
Android 智慧型手機程式設計
Android 智慧型手機程式設計Android 智慧型手機程式設計
Android 智慧型手機程式設計
 
淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合
 
2013 TQC+ Java 認證研習簡報
2013 TQC+ Java 認證研習簡報2013 TQC+ Java 認證研習簡報
2013 TQC+ Java 認證研習簡報
 
Tqc+ 物件導向程式語言(java)認證研習會
Tqc+ 物件導向程式語言(java)認證研習會Tqc+ 物件導向程式語言(java)認證研習會
Tqc+ 物件導向程式語言(java)認證研習會
 
ContPub 雲端電子書自助出版平台
ContPub 雲端電子書自助出版平台ContPub 雲端電子書自助出版平台
ContPub 雲端電子書自助出版平台
 
TQC+團報系統學生版(雲科資管)
TQC+團報系統學生版(雲科資管)TQC+團報系統學生版(雲科資管)
TQC+團報系統學生版(雲科資管)
 
20101220架構討論
20101220架構討論20101220架構討論
20101220架構討論
 
iisnode Test Drive
iisnode Test Driveiisnode Test Drive
iisnode Test Drive
 
開放源碼電子書與EPUB幕後排版
開放源碼電子書與EPUB幕後排版開放源碼電子書與EPUB幕後排版
開放源碼電子書與EPUB幕後排版
 
TQC+ Java 全國教師研習會 PLWeb 介紹
TQC+ Java 全國教師研習會 PLWeb 介紹TQC+ Java 全國教師研習會 PLWeb 介紹
TQC+ Java 全國教師研習會 PLWeb 介紹
 
Modern Browser as a Programming Editor
Modern Browser as a Programming EditorModern Browser as a Programming Editor
Modern Browser as a Programming Editor
 

Asp net

  • 5. HTTP Request/Response GET /path/file.html HTTP/1.0 From: someuser@jmarshall.com User-Agent: HTTPTool/1.0 [blank line here] HTTP/1.0 200 OK Date: Fri, 31 De 1999 23:59:59 GMT Content-Type: text/html Content-Length: 1354 <html> <body> 7 METHOD for HTTP Request GET、POST、HEAD、OPTIONS、TRACE、PUT、DELETE
  • 6. 透過HTTP Proxy進行側錄 GET /index.asp HTTP/1.0 HTTP/1.0 200 OK GET /login.asp HTTP/1.0 HTTP/1.0 200 OK
  • 7. Web Test Automation Web Test (網頁測試) 將一個操作情境錄製,變成可以自 動化操作的測試案例。 用於檢驗網站是否可以正常回應 某一項操作。 Load Test (負載測試)  重複不斷進行一個錄製好的測試 案例,直到完成設定的測試量。 檢視網站是否在大量的操作同時 進行下,仍維持正常回應。
  • 8. 網頁測試工具 Linux ● ab ab -n 1000 -c 100 http://192.192.216.94/Default.aspx ● wbox wbox http://192.192.216.94/Default.aspx 100 clients 10 Apache ● JMeter Microsoft Visual Studio Team System Web Test ● Visual Studio 2010 Ultimate ● Fiddler2 ● neXpert (Fiddler add-on)
  • 9. 操作網頁 (Internet Explorer) 側錄操作過程 (Fiddler) 建立測試專案 (Visual Studio)
  • 10. 負載測試的技巧 ● 必須先製作單一操作下不會發生錯誤的網頁測試案例 ● 先由合理的小數量開始進行 ● 將會造成錯誤的項目剔除(某些不存在檔案造成的404 error) ● 以測試動態網頁(.aspx, .ashx)為主,靜態資料(.jpg, .gif, .css)必 須剔除 ● 觀察負載測試期間伺服器的處理器、記憶體、磁碟狀況 ● 錯誤率的目標為 0% ● 改善的目標為每秒平均回應數量
  • 11. Visual Studio Web Test Step By Step 1/3 安裝軟體 1. Visual Studio Ultimate 2010 (Service Pack 1) 2. Fiddler2 (.NET Framework required) 3. neXpert (Fiddler add-on)
  • 12. Visual Studio Web Test Step By Step 2/3 Fiddler操作步驟 1. 先關閉IE瀏覽器 2. 打開Fiddler 3. 打開IE瀏覽器進行網頁操作 4. 一邊操作一邊觀察Fiddler側錄的項目 5. 將不必要的項目剔除 6. 完成 7. File > Export Sessions > All Sessions > 選 Visual Studio WebTest 8. 儲存 test1.webtest
  • 13. Visual Studio Web Test Step By Step 3/3 Visual Studio操作步驟 1. 檔案 > 新增專案 > 測試專案 > 測試文件 > 選測試專案 > 確定 2. 方案總管 > 在專案名稱按右鍵 > 加入 > 現有項目 > 選擇 test1.webtest 3. 打開test1.webtest > 執行測試 4. 方案總管 > 在專案名稱按右鍵 > 加入 > 負載測試 > (下一 步...) > 將test1加到測試混合 > (下一步...完成...) 5. 進行測試(負載測試) > 觀察關鍵指標、回應時間變化
  • 14. JMeter Step By Step 1/2 工作台(右鍵) > 新增 > 非測試元素 > HTTP代理伺服器 測試計畫(右鍵) > 新增 > Threads (Users) > 執行緒群組 測試計畫(右鍵) > 新增 > 設定元素 > HTTP要求預設值 (填寫) HTTP代理伺服器 > 開始 瀏覽器 > 設定代理伺服器 > (進行網頁操作,產生側錄資料) HTTP代理伺服器 > 停止 (執行緒群組中產生記錄) > 彙整報告
  • 15. JMeter Step By Step 2/2 測試計畫(右鍵) > 新增 > 接聽 > 彙整報告 執行 > 開始
  • 16. 網站系統實作的記錄 應用程式記錄 時間                    事件                       備註                                 200105151328 使用者登入           帳號名稱=00001 200105151402 選課確認               帳號名稱=00001, 課程代號= 200105151402 資料庫寫入錯誤   SQL ERROR ....
  • 17. 記錄 伺服器狀態報表 (cacti)
  • 18. 啟用SNMP (Windows) 開啟控制台 → 新增移除程式 → 新增移除Windows元件 → Management and Monitoring Tools → Simple Network Management Protocol