1. 程式人生 > >壓力測試工具tsung

壓力測試工具tsung

壓力測試工具tsung
安裝erlang環境
#首先下載資源,想下載不同的版本只需要修改版本號即可,最新為19.3
wget http://erlang.org/download/otp_src_18.3.tar.gz

#在下載目錄中對.tar.gz進行解壓
tar -xzvf otp_src_17.3.tar.gz

#安裝依賴包(安裝必須用到的)
yum install -y gcc gcc-c++ unixODBC-devel openssl-devel ncurses-devel

#進入到解壓好的目錄中,比如在erlang中解壓要進到erlang/otp_src_17.3中設定安裝位置
./configure --prefix=/opt/apps/erlang/otp_src_17.3 --without-javac

#安裝
make && make install

新增環境變數

vi /etc/base_profile

#加到原有變數之後使用:隔開,{erlang/bin} 是你的安裝路徑,如:/opt/apps/erlang/otp_src_17.3/bin
PATH= P A T H :

e r l a n g / b i n
e x p o r t P A T H = / o p t / e r l a n g / o t p s r c 1 7.3 / b i n : PATH:{erlang/bin} export PATH=/opt/erlang/otp_src_17.3/bin: PATH
:wq

#使之生效
source /etc/base_profile

#或者使用軟連線方式
ln -s /home/erlang/otp_src_17.3/bin/erl /usr/bin/erl

測試erlang
[[email protected] ~]# erl
1> A=12.
12
2> A.
12
3>
完成erlang安裝

安裝Tsung:

  1. wget http://tsung.erlang-projects.org/dist/tsung-1.6.0.tar.gz
  2. tar -zxvf tsung-1.6.0.tar.gz
  3. cd tsung-1.6.0/
  4. ./configure
    5.make && make install

說明安裝成功。
注意:tsung是一個erlang開發的測試軟體,如果遇到任何問題,請檢查你的erlang是否正常運作。關於erlang的安裝,請參照上面文件
安裝perl Template,用於生成報告模版:
1.sudo yum install perl-modules
2.wget http://cpan.org/modules/by-module/Template/Template-Toolkit-2.26.tar.gz
3.cd Template-Toolkit-2.26/
4.perl Makefile.PL
5.make
6.make test
7.sudo make install

安裝gnuplot :
yum install gnuplot

進行實際的測試工作:
1.mkdir .tsung
2.chmod 777 .tsung
3.ls /usr/share/doc/tsung/examples/ 結果是:

從這裡面選擇我們需要的模板,我這裡選擇http_simple.xml
4.cp /usr/share/doc/tsung/examples/http_simple.xml ./.tsung/tsung.xml
5.cd .tsung/
6.tsung start
7.進入Log目錄下可以看到生成的報表資訊
tsung.xml解釋
只是簡單地指定了執行 Tsung 的主機。你可以指定 Tsung 使用的 IP 和 CPU 的最大數。你可以使用 maxusers 設定節點能夠模擬的使用者數量上限。每一個使用者都會執行我們之後定義的操作。

指定了你要測試的 HTTP 伺服器。我們可以使用這個選項去測試一個 IP 叢集,或者一個單一的伺服器。

定義了我們的模擬使用者將會在什麼時候“到達”我們的網站。以及它們達到的有多快。

在持續了 10 分鐘的第一個階段裡,以每秒 8 個使用者的速率到達了 15,000 個使用者。

這裡還有兩個 arrivalphases,它們的使用者都以同樣的方式達到。

這些 arrivalphases 一起組成了一個 ,它控制了我們可以每秒產生多少個請求。

這部分定義了一旦這些使用者達到了你的網站,它們將會執行什麼動作。

probability 允許你定義使用者可能會做的隨機事件。有時他們可能點選這裡,有時他們可能點選那裡。所有的Probability 加起來一定要等於 100% 。

在上面的配置裡,使用者只做一件事,所以它的 probability 等於 100% 。

這就是使用者在 100% 的時間裡做的事情。它們迴圈遍歷 10,000,000 次並且 一個網頁:/test.txt 。

這個迴圈結構允許我們使用少量的使用者連線去獲取比較大的每秒請求數量。

開始測試
tsung -f http_simple.xml start # 指定xml檔案並開始。如果不指定,則預設使用 ~/.tsung/tsung.xml
這個命令會打印出測試的日誌目錄,直到測試結束。

結果
tsung 測試結束後,測試結果 Log 儲存在目錄 ~/.tsung/log/ 下。

當啟動一個新的測試時,會在這個目錄下面建立一個新的子目錄,用以儲存測試的資料。

Log 格式為當前日期和時間的組合,例如:~/.tsung/log/20160217-0940。

預設情況下,控制節點會啟動一個嵌入的網站伺服器,偵聽8091埠(可以用 -n 選項禁用)。

測試過程也可以用tail命令檢視實時記錄:

tail -f ~/.tsung/log/20140430-1126/tsung.log
測試結束之後,再用tsung_stats.pl生成報表。

yum install gnuplot # tsung_stats.pl 需要用到的 gnuplot
mkdir http_simple # 建立用以儲存報表的目錄
cd http_simple # 進入目錄
/usr/local/lib/tsung/bin/tsung_stats.pl --stats ~/.tsung/log/20160305-0933/tsung.log # 生成報表

問題解決
[[email protected] 20141118-0931]# tsung_stats
creating subdirectory data
creating subdirectory gnuplot_scripts
creating subdirectory images
warn, last interval (8) not equal to the first, use the first one (10)
No data for Bosh
No data for Match
No data for Event
Can’t locate Template.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/bin/tsung_stats line 570.
安裝下列軟體包
[[email protected]]# yum –y install perl-Template-Toolkit