天天看點

使用Tsung測試Openfire伺服器

在上一篇轉載來的部落格(戳我打開)裡講完了Tsung的安裝以及基本的測試,接下來我們這篇就開始測試我們的Openfire伺服器了。

這裡貼出Openfire的測試腳本:需要自行儲存為.xml檔案

<?xml version="1.0" ?>
<!DOCTYPE tsung SYSTEM "/usr/local/tsung/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" dumptraffic="false" version="1.0">
    <clients>
        <client host="localhost" use_controller_vm="true" maxusers="30000" />
    </clients>
    <servers>
        <server host='你的Openfire伺服器ip或者主機名(主機名需要修改hosts檔案)' port='5222' type='tcp' />
    </servers>
    <load>
        <arrivalphase phase="1" duration="15" unit="minute">
            <users maxnumber="20000" interarrival="0.0025" unit="second"></users>
        </arrivalphase>
    </load>

    <options>
        <option type="ts_jabber" name="global_number" value="5"></option>
        <option type="ts_jabber" name="userid_max" value="20000"></option>
        <option type="ts_jabber" name="domain" value="erlang-projects.org"></option>
        <option type="ts_jabber" name="username" value="tsung"></option>
        <option type="ts_jabber" name="passwd" value="tsung"></option>
    </options>

    <sessions>
        <session probability="100" name="jabber-example" type="ts_jabber">

            <!-- 連接配接Openfire伺服器 -->
            <request>
                <jabber type="connect" ack="no_ack"></jabber>
            </request>
            <thinktime value="2"></thinktime>

            <!-- 注冊Openfire賬戶 -->
            <request>
                <match do="abort" when="match">error</match>
                <jabber type="register" ack="local" id="new"></jabber>
            </request>
            
            <!-- 進行Openfire登入認證 -->
            <transaction name="authenticate">
                <request>
                    <jabber type="auth_get" ack="local"></jabber>
                </request>
                <request>
                    <jabber type="auth_set_plain" ack="local"></jabber>
                </request>
            </transaction>

            <!-- 登入後保持線上狀态300秒 -->
            <request>
                <jabber type="presence:initial" ack="no_ack" />
            </request>
            <thinktime value="300"></thinktime>

            <!-- 關閉 -->
            <request>
                <jabber type="close" ack="no_ack"></jabber>
            </request>

        </session>
    </sessions>

</tsung>
           

這裡簡單說一下需要注意的問題:

===================================華麗麗的分割線====================================

1. <!DOCTYPE tsung SYSTEM "/usr/local/tsung/share/tsung/tsung-1.0.dtd">

這裡的這個.dtd檔案需要指定到你自己的tsung目錄下的dtd檔案,需要檢查一下,我的這個路徑未必适合你

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

這裡需要設定一下最大的使用者數,否則可能注冊了1000個就不會再往下繼續注冊新使用者了

3. <server host='你的Openfire伺服器ip或者主機名(主機名需要修改hosts檔案)' port='5222' type='tcp' />

這裡設定的是要測試的伺服器的ip位址、端口号以及連接配接類型,有些同學在安裝Openfire伺服器的時候沒有指定主機名,那應該會使用預設的本機位址,需要注意一下。

4. <load>

        <arrivalphase phase="1" duration="15" unit="minute">

            <users maxnumber="20000" interarrival="0.0025" unit="second"></users>

        </arrivalphase>

    </load>

這裡進行的設定是,測試時間,以及最大的數目

5.     <options>

        <option type="ts_jabber" name="global_number" value="5"></option>

        <option type="ts_jabber" name="userid_max" value="20000"></option>

        <option type="ts_jabber" name="domain" value="erlang-projects.org"></option>

        <option type="ts_jabber" name="username" value="tsung_test_"></option>

        <option type="ts_jabber" name="passwd" value="tsung_test_"></option>

    </options>

這裡指的是,注冊使用者的一些規則,配合第四條注意事項,最終生成的使用者名是像tsung_test_1 、tsung_test_2 這樣兒的,密碼和使用者名一緻。

==================================華麗麗的分割線===================================

然後呢,儲存之後,我們可以在指令行裡輸入如下指令,進行測試:

tsung -f OpenfireRegisterAndAuthTest.xml start           

然後如果沒有報錯資訊的話,會提示如下的資訊:

使用Tsung測試Openfire伺服器

這個說明Tsung已經開始工作了,然後我們就靜靜的看着它裝逼,啊抱歉不是,是靜靜的等它完成。

完成了之後,我們可以檢視一下是否生成了我們需要的東東

使用Tsung測試Openfire伺服器

OK,生成了我們需要的結果,但是這樣兒的,沒法兒看啊,對了,還記得我們在上一篇安裝教程裡使用的那個perl的腳本嘛?我們來生成一下HTML頁面:

使用Tsung測試Openfire伺服器

這裡我是簡單的測試,而且測試也不是我的專業,是以我隻是把tsung指令加入了path,那麼如果是測試專業的同學們需要注意了,你可能需要把這個腳本的路徑,也加入到path中去,這樣兒後面使用起來就更加友善啦。那麼我們把生成的HTML頁面導出來,或者直接配置好HTTP伺服器,那麼就可以進行分析了。本次測試的結果大概是這麼一個樣子的:

使用Tsung測試Openfire伺服器

然後你就可以好好根據測試生成的報告,進行分析了。

2015年1月17日,EricTang 記