① 如何做壓力測試
一個壓力測試的流程:
1、明確測試目標
2、制定測試計劃
3、實施測試,收集參數
4、分析測試結果
5、給出優化方案
一 、明確測試目標:如果是客戶的需求,那需要向客戶確認,有清楚的性能指標參數,測試時就是保證系統達到該指標並能良好運轉,即壓力測試。如果是自己的系統需要有一個評估,那就需要完整的得到該系統的幾個臨界點,拿到完整的性能曲線,從而來分析部署情況,即為性能測試。不管是哪個,知道了需求,才能制定計劃。
性能測試的目標是發現重大的系統瓶頸。你可以想像一個系統由一系列的瓶頸組成;發現並改善一個瓶頸往往會在其他地方產生一個新的瓶頸。例如,我曾為一運行微軟Windows CE的器件部門工作。我們發現的第一大性能問題體現在某一具體硬體環境下的內存管理中。我們把問題分離出來,改善了內存分配的效率。爾後再次運行我們的測試,又找到了一個新的瓶頸,這次體現在網路吞吐量上(throughput)。解決了這個問題後,我們接著又為下一個瓶頸改善而工作,然後再下一個,直到整個系統都達到了性能目標。要記住的是:關鍵在於要盡早訂立性能目標,否則你可能不知道什麼時候該停止性能測試。
二、制定測試計劃:確定使用什麼工具,著重哪些參數,設置線程數,方法執行次數,執行時間,是否多個介面同時進行測試等等。
三、實施測試,收集參數:選一個施壓工具,來向部署好的服務發起高並發請求,同時關注和收集性能參數。這個是我們花費時間最多的地方。通常該階段需要反復執行,來得到想要的數據。通常來說,我們可以使用JMeter LR AB 自己寫多線程等各種方式,之後介紹一下JMeter。
四、分析測試結果:即根據上一節的參數介紹來進行參數分析。
五、給出優化方案:如果是代碼邏輯耗費cpu,就優化演算法;如果是redis等資料庫耗時,就增加節點,減少讀取,讀寫分離,使用內存等;如果是外在條件限制,則與外部們溝通問題,共同優化等等。
② 如何用Jmeter做壓力測試
在「伺服器名稱或ip」設置127.0.0.1,埠號設置:8080,「方法」設置post,路徑設置網站登錄的地址,如「/exam/operatorAction」。
登錄需傳入用戶、密碼。在「同請求一起發送參數」列表中添加參數。參數值根據web應用設置。如login_user=0001;login_password=1;actFlag=login。
一般網站登錄後,在tomcat中生成了session,之後訪問其他頁面將無需再次登錄,前提是瀏覽器需支持cookie。在jmap中也同樣,如要繼續訪問其他頁面,還需做下面關鍵的設置。
Apache JMeter
是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試,但後來擴展到其他測試領域。 它可以用於測試靜態和動態資源,例如靜態文件、Java小服務程序、CGI 腳本、Java 對象、資料庫、FTP伺服器, 等等。JMeter 可以用於對伺服器、網路或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。
③ php web伺服器。網站上線在即,請問如何測試伺服器壓力呢比如如何知道這個網站到底能同時承受
利用一些軟體吧,可用來進行 Web 壓力測試的工具有很多,比如微軟的 Web Application Stress、linux下的 siege、功能全面的 Web-CT 等等,這些都是非常優秀的 Web 壓力測試工具。
一、 Siege
一款開源的壓力測試工具,可以根據配置對一個WEB站點進行多用戶的並發訪問,記錄每個用戶所有請求過程的相應時間,並在一定數量的並發訪問下重復進行。
官方:http://www.joedog.org/
1. 下載源碼
請自行google例如:
wget http://soft.vpser.net/test/siege/siege-2.67.tar.gz
2. 解壓、編譯和安裝
tar -zxf siege-2.67.tar.gz cd siege-2.67/ /configure make && make install
3. 運行siege
siege -c 200 -r 10 -f test.txt
-c是並發量,-r是重復次數。 url文件就是一個文本,每行都是一個url,它會從裡面隨機訪問的。
test.txt 內容:
http://blog.test.com/wp-content/uploads/2012/07/cluster6.png
http://blog.test.com/wp-content/uploads/2012/07/cluster7-150x150.png
http://blog.test.com/wp-content/uploads/2012/07/cluster7.png
http://blog.test.com/wp-content/uploads/2012/07/cluster8-150x150.png
http://blog.test.com/wp-content/uploads/2012/07/cluster9-150x150.png
4 結果說明
Lifting the server siege… done.
Transactions: 3419263 hits //完成419263次處理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 5999.69 secs //總共用時
Data transferred: 84273.91 MB //共數據傳輸84273.91 MB
Response time: 0.37 secs //相應用時1.65秒:顯示網路連接的速度
Transaction rate: 569.91 trans/sec //均每秒完成 569.91 次處理:表示伺服器後
Throughput: 14.05 MB/sec //平均每秒傳送數據
Concurrency: 213.42 //實際最高並發數
Successful transactions: 2564081 //成功處理次數
Failed transactions: 11 //失敗處理次數
Longest transaction: 29.04 //每次傳輸所花最長時間
Shortest transaction: 0.00 //每次傳輸所花最短時間
二、Webbench
webbench最多可以模擬3萬個並發連接去測試網站的負載能力,安裝使用簡單方便。
1. 下載源碼
請自行google例如:
wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
2. 解壓、編譯和安裝
tar zxvf webbench-1.5.tar.gz cd webbench-1.5 make mkdir /usr/local/man #建立相應目錄否則導致無法正常安裝 make install
3. 運行webbench
webbench -c 100 -t 30 http://192.168.1.235/index.html
-c表示並發數,-t表示時間(秒)
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.1.235/index.html
100 clients, running 30 sec.
Speed=16084 pages/min, 152872 bytes/sec. #運行結果顯示
Requests: 8042 susceed, 0 failed.
三、Web Application Stress Tool
這是由微軟的網站測試人員開發的專門用來進行實際網站壓力測試以一套工具。透過這套功能強大的壓力測試工具,管理人員可以在網站實際上線之前先網站進行如同真實環境下的測試,以找出系統潛在的問題,對系統進行進一步的調整、設置工作。