緣由:之前一直使用jmeter進行性能測試,但是jmeter有個瓶頸(如果並發數加大,會將客戶機的硬件資源耗死,當然這種現象可以使用分布式部署執行);后面聽說tsung支撐百萬並發(事實上后續發現這種百萬也是使用的分布式執行),所以本篇就針對tsung進行描述下。
【1】tsung是什么
tsung 官方使用手冊:http://tsung.erlang-projects.org/user_manual/
tsung是一個開源、多協議、分布式的壓力測試工具。它可以用來測試HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和Jabber/XMPP的服務器,並且支持擴展協議。
【2】tsung的特性
tsung的主要特性
-
高性能:Tsung每台物理計算機可以模擬大量並發用戶:它可以在單個CPU上模擬數千個用戶
-
分布式:負載可以分布在客戶端計算機的群集上
-
使用插件系統的多協議:當前支持HTTP(標准Web流量和SOAP),WebDAV,Jabber / XMPP和PostgreSQL。LDAP和MySQL插件首先包含在1.3.0版本中
-
SSL支持
-
使用基礎OS IP別名,可以在一台計算機上使用多個IP地址
-
使用遠程服務器或SNMP上的Erlang代理進行OS監視(CPU,內存和網絡流量)
-
XML配置系統:用XML編寫復雜的用戶場景。可以使用Tsung記錄器(僅HTTP和PostgreSQL)通過簡單的瀏覽器編寫場景。
-
動態方案:可以在負載下從服務器獲取動態數據(無需編寫任何代碼),然后將其重新插入后續請求中。當字符串(或regexp)與服務器響應匹配時,還可以循環,重新啟動或停止會話。
-
混合行為:在同一基准測試期間,可以使用多個會話來模擬不同類型的用戶。您可以定義基准測試方案中各種行為的比例。
-
隨機過程:為了產生現實的流量,可以使用概率分布(當前為指數)將用戶的思考時間和到達率隨機化
【3】tsung的安裝
tsung目前只支持Linux系統;tsung是erlang寫的,繪制圖表時使用的gnuplot,需要使用perl相關庫,所以也要安裝perl, gnuplot。
-
安裝依賴
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum installflexerlang systemd-devel autoconf automake lksctp-tools-devel m4 ncurses-develzlib-devel unixODBC-devel emacs emacs-el wxGTK3-devel
-
安裝perl及gnuplot
yum -y install perl
yum -y install gnuplot
-
編譯安裝
./configure
make &&make install
【4】tsung的執行
-
執行案例
tsung -f /usr/share/doc/tsung/examples/http_simple.xml start
-
報告
進入生成的log目錄執行命令:
/usr/lib/tsung/bin/tsung_stats.pl
-
結果
【5】后記
具體的使用請參考官網,tsung無界面模式,在Linux上使用xml配置場景或者接口進行執行測試並且開發語言是比較偏的erlang,相對於要入門的新手來說還是比較難的;一般的測試性能執行個人認為使用jmeter還是足夠的,對於場景的編寫jmeter也是可以勝任的,當然還有另外一種協程類的性能執行工具 locust也是支持百萬並發的。工具只是輔助,重要的還是測試策略的規划,可以實現目標即可。