Tsung,壓力測(cè)試的好工具。
安裝過程:
1.獲取tsung 的源碼。http://tsung.erlang-projects.org/
2.安裝依賴 erlang(從源碼編譯 erlang 寫的程序) gnuplot perl5(如果想看 report 中的圖形,就要裝這個(gè))
apt-get install erlang erlang-src gnuplot perl5 我用的是Ubuntu 8 OS.
3.編譯安裝
./configure
make
sudo make install
安裝完成之后的 tsung 運(yùn)行腳本在 /usr/bin/tsung ,在系統(tǒng) path 之中,可以直接運(yùn)行。
設(shè)置
從 /usr/share/doc/tsung/examples 中挑一兩個(gè)例子拷貝到 ~/.tsung/tsung.xml 作為配置文件。我只需要 http 測(cè)試,所以:
cp /usr/share/doc/tsung/examples/http_simple.xml ~/.tsung/tsung.xml
tsung 采用了巧妙的 proxy 方式來“錄制”測(cè)試腳本。具體來說,就是建立一個(gè)本機(jī)的 http proxy 默認(rèn)使用 8090 端口,在配好 firefox 使用 localhost 8090 作為代理之后(推薦 foxyproxy 插件),所有“流經(jīng)”這個(gè) proxy 的 http 動(dòng)作都會(huì)被記錄下來,測(cè)試時(shí)可以“回放”這些步驟來產(chǎn)生請(qǐng)求。
tsung rocorder
tsung stop_recorder
“錄制”完了,會(huì)得到一個(gè) ~/.tsung/tsung_recorderXXXXXXXXXX.xml 文件,這就是測(cè)試時(shí)回回放的腳本。
將這個(gè)腳本加到 tsung.xml 之中
就像這樣
<!DOCTYPEtsungSYSTEM"/usr/share/tsung/tsung-1.0.dtd"?[
?<!ENTITYmysession1SYSTEM"/home/yourname/.tsung/tsung_recorderXXXXXXXXXX.xml">
]>
...
<sessions>
??&mysession1;
</sessions>
對(duì)配置稍作調(diào)整
<monitoring>
?? ?<monitorhost="localhost"type="erlang"></monitor>
??</monitoring>
??<!-- 需要配置到 localhost 無須密碼的 ssh 登錄(ssh via rsa_key),開啟了這個(gè)配置可以,獲得目標(biāo)機(jī)器的 cpu 和 ram 消耗情況 -->
??<load>
???<arrivalphasephase="1"duration="1"unit="minute">
?? ??<usersinterarrival="2"unit="second"></users>
???</arrivalphase>
??</load>
??<!-- 第1階段1分鐘(你可以自己多搞幾個(gè)階段),其中每2秒新建一個(gè)用戶,每個(gè)用戶都會(huì)完整執(zhí)行 session 的測(cè)試腳本,最高并發(fā)約為 30 個(gè),個(gè)人認(rèn)為這個(gè)“逐漸加壓”的方法比 ab xxxx 的“突然加壓”要慢一些,但更科學(xué)一點(diǎn) -->
運(yùn)行
準(zhǔn)備好了,加壓運(yùn)行。
運(yùn)行完,在 ~/.tsung/log 目錄會(huì)生成一個(gè)以時(shí)間命名的目錄,進(jìn)入這個(gè)目錄
cd ~/.tsung/log/xxxxx
/usr/lib/tsung/bin/tsung_stats.pl (有時(shí)可能是 /usr/local/lib/tsung/bin/tsung_stats.pl)
生成 html 的壓力測(cè)試報(bào)告
除了 http 以外 tsung 還可以壓很多東西,比如:jabber, postgreSQL 還可以寫插件來給任何你想要測(cè)試的東西加壓.