天天看點

九款Web伺服器性能壓力測試工具

一、http_load

程式非常小,解壓後也不到100K

http_load以并行複用的方式運作,用以測試web伺服器的吞吐量與負載。

但是它不同于大多數壓力測試工具,它可以以一個單一的程序運作,一般不會把客戶機搞死。

還可以測試HTTPS類的網站請求。

下載下傳位址:http_load-12mar2006.tar.gz

安裝很簡單

#tar zxvf http_load-12mar2006.tar.gz

#cd http_load-12mar2006

#make && make install

基本用法:

http_load -p 并發通路程序數 -s 通路時間 需要通路的URL檔案

參數其實可以自由組合,參數之間的選擇并沒有什麼限制。

比如你寫成http_load -parallel 5 -seconds 300 urllist.txt也是可以的。

我們把參數給大家簡單說明一下。

-parallel 簡寫-p :含義是并發的使用者程序數。

-fetches 簡寫-f :含義是總計的通路次數

-rate 簡寫-p :含義是每秒的通路頻率

-seconds 簡寫-s :含義是總計的通路時間

準備URL檔案:urllist.txt,檔案格式是每行一個URL,URL最好超過50-100個測試效果比較好。

檔案格式如下:

http://www.qixing318.com/

http://www.qixing318.com/blog/

http://www.qixing318.com/signin/

http://www.qixing318.com/signup/

http://www.qixing318.com/article/a-quick-look-at-the-redis-source-code.html

http://www.qixing318.com/article/how-the-browser-end-encryption.html

http://www.qixing318.com/article/jquery-form-validation-plug-in-validate.js-the-basic-usage.html

http://www.qixing318.com/article/use-flash-plugin-swfupload-head-is-upload-the-screenshot-in-two-ways.html

http://www.qixing318.com/article/should-make-your-site-using-html5.html

http://www.qixing318.com/article/simple-to-understand-linux-memory-allocation-mechanism.html

http://www.qixing318.com/article/organize-the-sphinx-api-based-on-php.html

http://www.qixing318.com/article/jquery-1-9-removed-browser-method-alternatives.html

http://www.qixing318.com/article/the-installation-of-fedora-under-chinese-search-sphinx-configuration.html

http://www.qixing318.com/article/schema-org-tag-was-used-to-optimize-web-pages.html

http://www.qixing318.com/article/jquery-reference-manual-tutorials-and-tools.html

http://www.qixing318.com/article/falling-in-love-with-bike-30-reasons.html

http://www.qixing318.com/article/online-test-tools-browserstack-cross-browser-compatibility.html

http://www.qixing318.com/article/talk-about-javascript-image-preloading-technology.html

http://www.qixing318.com/article/brokeback-mountain.html

http://www.qixing318.com/article/sql-index-caused-performance-issues.html

http://www.qixing318.com/article/use-python-scapy-reporter.html

http://www.qixing318.com/article/a-python-web-attack-script.html

例如:

http_load -p 30 -s 60 urllist.txt

參數了解了,我們來看運作一條指令來看看它的傳回結果如下:

結果分析:

1、294 fetches, 30 max parallel, 3.83835e+06 bytes, in 60.0026 seconds

說明在上面的測試中運作了294個請求,最大的并發程序數是30,總計傳輸的資料是3.83835e+06bytes,運作的時間是60.0026秒

2、13055.6 mean bytes/connection

說明每一連接配接平均傳輸的資料量3.83835e+06/294=13055.6

3、4.89979 fetches/sec, 63969.7 bytes/sec

說明每秒的響應請求為4.89979,每秒傳遞的資料為63969.7 bytes/sec

4、msecs/connect: 312.009 mean, 1319.57 max, 209.994 min

說明每連接配接的平均響應時間是312.009 msecs,最大的響應時間1319.57 msecs,最小的響應時間209.994 msecs

5、msecs/first-response: 1191.01 mean, 10212.4 max, 220.78 min

6、HTTP response codes:

code 200 – 127

code 502 – 166

說明打開響應頁面的類型

如果403的類型過多,那可能要注意是否系統遇到了瓶頸。

特殊說明:

測試結果中主要的名額是 fetches/sec、msecs/connect 這個選項,即伺服器每秒能夠響應的查詢次數。

用這個名額來衡量性能。似乎比 apache的ab準确率要高一些,也更有說服力一些。

Qpt-每秒響應使用者數和response time,每連接配接響應使用者時間。

測試的結果主要也是看這兩個值。

當然僅有這兩個名額并不能完成對性能的分析,我們還需要對伺服器的cpu、men進行分析,才能得出結論。

二、webbench

webbench是Linux下的一個網站壓力測試工具,最多可以模拟3萬個并發連接配接去測試網站的負載能力。

下載下傳位址可以到google搜,我這裡給出一個

下載下傳位址:http://soft.vpser.net/test/webbench/webbench-1.5.tar.gz

這個程式更小,解壓後不到50K,呵呵

安裝非常簡單

#tar zxvf webbench-1.5.tar.gz

#cd webbench-1.5

#make && make install

會在目前目錄生成webbench可執行檔案,直接可以使用了

用法:webbench -c 并發數 -t 運作測試時間 URL

例如:

#webbench -c 1000 -t 130 http://www.qixing318.com

三、apache bench(主要是用來測試apache的)

ab是apache自帶的一款功能強大的測試工具。

安裝了apache一般就自帶了。

用法可以檢視它的說明

#./ab

參數衆多,一般我們用到的是-n 和-c

例如:

#webbench -c 1000 -t 130 http://www.qixing318.com/index.php

這個表示同時處理1000個請求并運作130次index.php檔案。

四、Siege

一款開源的壓力測試工具,可以根據配置對一個WEB站點進行多使用者的并發通路,記錄每個使用者所有請求過程的相應時間,并在一定數量的并發通路下重複進行。

Siege官方:http://www.joedog.org/

Siege下載下傳:http://www.joedog.org/pub/siege/siege-latest.tar.gz

Siege解壓并安裝:

# tar -zxvf siege-latest.tar.gz

# cd siege-latest/

#./configure

#make

#make install

Siege使用:

#siege -c 100 -r 10 -f site.url

-c是并發量,-r是重複次數。

url檔案就是一個文本,每行都是一個url,它會從裡面随機通路的。

site.url内容:

http://www.qixing318.com/

http://www.zendsns.com/

http://www.qixing.info/

測試結果:

結果說明:

Transactions: 550 hits //完成550次處理

Availability: 55.00 % //55.00 % 成功率

Elapsed time: 31.32 secs //總共用時

Data transferred: 1.15 MB //共資料傳輸1.15 MB

Response time: 3.04 secs //顯示網絡連接配接的速度

Transaction rate: 17.56 trans/sec //均每秒完成 17.56 次處理:表示伺服器後

Throughput: 0.04 MB/sec //平均每秒傳送資料

Concurrency: 53.44 //實際最高并發數

Successful transactions: 433 //成功處理次數

Failed transactions: 450 //失敗處理次數

Longest transaction: 15.50 //每次傳輸所花最長時間

Shortest transaction: 0.42 //每次傳輸所花最短時間

五、LoadRunner

老牌壓力測試工具,LoadRunner是一種預測系統行為和性能的負載測試工具,通過模拟實際使用者的操作行為進行實時性能監測,來幫助測試人員更快的查找和發現問題。LoadRunner适用于各種體系架構,能支援廣泛的協定和技術,為測試提供特殊的解決方案。企業通過LoadRunner能最大限度地縮短測試時間,優化性能并加速應用系統的釋出周期。

LoadRunner提供了3大主要功能子產品:

* VirtualUser Generator(用于錄制性能測試腳本),

LoadRunner Analysis(用于分析性能測試結果)既可以作為獨立的工具完成各自的功能,又可以作為LoadRunner的一部分彼此銜接,與其他子產品共同完成軟體性能的整體測試。

詳見:《性能測試入門——LoadRunner使用初探》(http://www.admin5.com/article/20161114/695706.shtml)

LoadRunner官網:https://saas.hpe.com/zh-cn/software/loadrunner

六、JMeter

JMeter作為一款廣為流傳的開源分布式壓測産品,能自動生成圖形報告。最初被設計用于Web應用測試,如今JMeter可以用于測試靜态和動态資源,例如靜态檔案、Java 小服務程式、CGI 腳本、Java 對象、資料庫、FTP伺服器等等,還能對伺服器、網絡或對象模拟巨大的負載,通過不同壓力類别測試它們的強度和分析整體性能。另外,JMeter能夠對應用程式做功能測試和回歸測試,通過建立帶有斷言的腳本來驗證你的程式傳回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正規表達式建立斷言。

JMeter的特點包括對HTTP、FTP伺服器、資料庫進行壓力測試和性能測試;完全的可移植性;完全 Swing和輕量元件支援包;完全多線程;緩存和離線分析/回放測試結果;可連結的取樣器;具有提供動态輸入到測試的功能;支援腳本程式設計的取樣器等。在設計階段,JMeter能夠充當HTTP PROXY(代理)來記錄浏覽器的HTTP請求,也可以記錄Apache等WebServer的log檔案來重制HTTP流量,并在測試運作時以此為依據設定重複次數和并發度(線程數)來進行壓測。

參考文章:《雲智慧壓測實戰分享之JMeter工具使用初探》(https://segmentfault.com/a/1190000007922515)

官網連結:http://jmeter.apache.org

七、Tsung

Tsung is an open-source multi-protocol distributed load testing tool

It can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, MQTT and Jabber/XMPP servers. Tsung is a free software released under the GPLv2 license.

Tsung是一個開源的支援多協定的分布式壓力測試工具

目前支援HTTP分布式壓力測試、WebDAV分布式壓力測試、SOAP分布式壓力測試、PostgreSQL分布式壓力測試、MySQL分布式壓力測試、LDAP分布式壓力測試、MQTT分布式壓力測試、Jabber/XMPP servers分布式壓力測試

八、locust.io

An open source load testing tool.

Define user behaviour with Python code, and swarm your system with millions of simultaneous users.

http://locust.io/

python編寫,用python腳本定義壓測規則,分布式,有WEB UI界面,推薦使用

九、阿裡雲PTS

阿裡雲性能測試(Performance Testing)是一個SaaS性能測試平台,具有強大的分布式壓測能力,可模拟海量使用者真實的業務場景,讓應用性能問題無所遁形。PTS平台特色包括提供壓測機,無需安裝軟體;腳本場景監控簡單化,省時、省力;分布式并發壓測,施壓能力無上限;快速大規模叢集擴容、支援幾十萬使用者及百萬級TPS性能壓測;80%以上使用者基本不需要花費額外的成本。

————————————————

九款Web伺服器性能壓力測試工具