亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

高并發測試工具Tsung使用方法

發布時間:2021-09-13 09:27:34 來源:億速云 閱讀:349 作者:柒染 欄目:大數據

高并發測試工具Tsung使用方法,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

tsungerlang開發的一款開源的多協議分布式負載并發測試工具

可用作HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP 和 Jabber/XMPP的服務器壓力測試。

tsung可分布在多個客戶機,并能夠模擬成千上萬的虛擬用戶數并發。

1 下載安裝

Tsung 已經在Linux、FreeBSD和Solaris上通過測試,

其他系統,只要支持Erlang語言的平臺上,也是可以工作的(Linux、Solaris、*BSD、Win32 和 Mac OS X)。

Mac OS X通過 Homebrew 即可安裝 tsung,命令:

brew install tsung

Ubuntu 安裝也很簡單,命令:

apt-get install tsung

其他系統需要先下載源碼包再安裝,源碼包下載地址:

  • http://tsung.erlang-projects.org/dist/

tsung 1.6.0為例,下載安裝命令:

wget http://tsung.erlang-projects.org/dist/tsung-1.6.0.tar.gz  # 以1.6.0版本為例
tar -zxf tsung-1.6.0.tar.gz   # 解壓
cd tsung-1.6.0                # 進入目錄
./configure                   # 配置,生成 Makefile 文件
make                          # 編譯
make install                  # 安裝

configure 的時候,如果沒有安裝 tsung 依賴的 Erlang 語言庫,會提示下面的錯誤:

...
checking for Erlang/OTP root directory... configure: error: in `/root/tsung-1.6.0':
configure: error: test Erlang program execution failed
...

可以用下面的命令先安裝erlang,再 configure

brew install erlang        # OS X Homebrew
port install erlang        # OS X MacPorts
apt-get install erlang     # Ubuntu 和 Debian
yum install erlang         # Fedora
pkg install erlang         # FreeBSD

其他系統需要從源碼安裝 Erlang,稍微復雜一些,可參考:https://github.com/erlang/otp/blob/maint/HOWTO/INSTALL.md 。

2 運行

tsung安裝完成后,會生成兩個命令文件:

  1. tsung

  2. tsung-recorder

默認生成在 /usr/local/bin 目錄下,使用-h參數可以查到它們所有的參數:

tsung -h

在啟動 tsung 之前,我們需要一個 XML 格式的配置文件,tsung會根據該配置文件進行測試。

/usr/share/doc/tsung/examples 目錄下有一些 XML 配置文件范例,

將其中HTTP測試配置文件 http_simple.xml 拷貝到當前目錄,

再執行,命令如下:

cp /usr/local/share/doc/tsung/examples/http_simple.xml ./   # 拷貝范例配置文件
tsung -f http_simple.xml start                              # 指定xml文件并開始。如果不指定,則默認使用 ~/.tsung/tsung.xml

這個命令會打印出測試的日志目錄,直到測試結束。

3 結果

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  # 生成報表

之后,會在 http_simple 目錄下生成3個目錄和1個 log 文件,其中 images 目錄下就是報表圖片,類似如下。

高并發測試工具Tsung使用方法   高并發測試工具Tsung使用方法

以上僅是測試,沒有實際用處,因為沒有配置要測試的網站,所以所得到的結果沒有實際意義。

需要修改 XML 配置文件后再測試,才會得到有意義的結果。

4 配置文件

打開 http_simple.xml ,下面來講幾個關鍵的配置。

4.1 clients

用戶產生的方式:

<clients>
  <client host="localhost" use_controller_vm="true" maxusers="30000"/>
</clients>

tsung運行時可以由很多的虛擬機(VM)組成,client配置指明這個client機器上最多生成的用戶數,

如果use_controller_vmtrue的話,那么當用戶數達到maxusers,tsung會自動生成新的虛擬機。

4.2 servers

<servers>
  <server host="garden.blue.jude.poppen.lab" port="80" type="tcp"></server>
</servers>

server段可以配置被測服務器的相關信息,也可以配置成集群,如下

<servers>
  <server host="server1" port="80" type="tcp" weight="4"></server>
  <server host="server2" port="80" type="tcp" weight="1"></server>
</servers>

tsung會根據weight值來選擇發起請求的server

4.3 monitoring

系統監控服務,配置完后可獲取被測server的CPU、內存、負載、數據庫等相關信息。

可以配置成erlang的監控服務和snmp的監控服務。

<monitoring>
  <monitor host="garden" type="erlang">
    <mysqladmin port="3306" username="root" />
  </monitor>
</monitoring>

4.4 load

<load>
  <arrivalphase phase="1" duration="3" unit="minute">
    <users maxnumber="100" interarrival="0.02" unit="second" ></users>
  </arrivalphase>
</load>

load段可配置訪問的負載,訪問可以配成多個階段,由phase值指定。

duration是測試持續時間,unit是單位。

users段的maxnumber限制了生成的最大用戶數,

interarrival="0.02"表示0.02秒產生一個新用戶,用戶按照session的配置順序執行session中的request

4.5 options

<options>
 <option type="ts_http" name="user_agent">
 <user_agent probability="80">Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent>
 <user_agent probability="20">Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4</user_agent>
 </option>
 </options>

options段可配置一些請求的信息,如agent信息。

4.6 sessions

<sessions>
  <session name="http-example" probability="70" type="ts_http">
    <setdynvars sourcetype="random_number" start="1" end ="100">
      <var name="itemid" />
    </setdynvars>
    <transaction name='getlist'>
      <request subst="true">
        <http url="/comment/getList" method="POST" contents = "item_type=image&amp;item_id=%%_itemid%%"></http>
      </request>
    </transaction>
  </session>
  <session name="http-example" probability="30" type="ts_http">
    <setdynvars sourcetype="random_number" start="1" end="100">
      <var name="itemid" />
    </setdynvars>
    <setdynvars sourcetype="random_number" start="20" end="5000000">
      <var name="content" />
    </setdynvars>
    <transaction name='getlist'>
      <request subst="true">
         <http url="/comment/addComment" method="POST" contents = "item_type=image&amp;item_id=%%_itemid%%&amp;content=%%_content%%"></http>
      </request>
    </transaction>
  </session>
</sessions>

可配置多個子session,進而可測試多個api,

可以設置請求概率,在probability里定義,

要求每個sessionprobability之和是100,類型是http。

sessions里可用for來設定請求次數,如下

<for from="1" to="@loop" incr="1" var="counter">

在里面可以設置請求的具體信息。

在請求參數里可以帶上隨機數。

隨機數和隨機字符串的定義如下:

<setdynvars sourcetype="random_number" start="20" end="5000000">
  <var name="xxx" />
</setdynvars>
<setdynvars sourcetype="random_string" length="10">
  <var name="xxx" />
</setdynvars>

%%_xxx%%的形式來調用。

這里必須注意的是,要使用隨機數,request必須加上subst="true"參數,不然隨機數無法被引用成功。

隨機數也可從文件讀取,如csv

http內部可定義header參數:

<http_header name="Authorization" value="111"/>
<http_header name="Cookie" value="authToken=%%_auth_token%%; Path=/"/>
<!-- content-Type:POST請求參數的格式,如果是json格式可以這樣寫 -->
<http_header name="Content-Type" value="application/json"/>

thinktime可用于定義兩個請求的間隔時間

<thinktime value="1"/>

另外可定義不同的transaction ,這樣子結果里就會顯示不同transaction的具體信息。

看完上述內容,你們掌握高并發測試工具Tsung使用方法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒙阴县| 兴业县| 广河县| 麻栗坡县| 阿克陶县| 额尔古纳市| 五河县| 黄梅县| 兴国县| 易门县| 克东县| 巴楚县| 奉新县| 武宁县| 县级市| 唐海县| 芷江| 盐山县| 宁陵县| 平武县| 庆安县| 南靖县| 长阳| 庆云县| 东台市| 东兴市| 孝昌县| 荥经县| 普宁市| 钟山县| 卓资县| 隆安县| 天门市| 德阳市| 合阳县| 红桥区| 土默特右旗| 出国| 平果县| 若尔盖县| 光泽县|