Pylot——跨平台的網站壓力測試工具


這兩天因為報名了一個實習生,考慮到面試時候可能問到網站並發,就准備自己做一下壓力測試。

因為我是新手,所以在找工具這個階段就用了比較長時間。最后發現Pylot對於新手來說是一個不錯的選擇,簡單易用好配置,考慮到Pylot沒有中文版,官方的介紹也是英文,所以我准備把過程寫下來,方便同樣是新手的人。

0、Pylot介紹:

  一個簡單易用,跨平台的開源網站壓力測試工具,可以從命令行運行也可以開啟圖形界面運行,可以設置cookie,可以將測試結果制作成圖表方便查看。

1、為什么要用Pylot

  就兩點:簡單易用,跨平台。

  我用Pylot之前也搜了很多,因為我用的是OS X,所以大部分Windows專屬的工具就pass掉了。我也去Stackoverflow搜過,發現大家強烈推薦的是JMeter,什么是JMeter呢,百度百科說“是Apache組織開發的基於Java的壓力測試工具”。於是我就興沖沖地點開官方文檔准備學習,然后發現。。。光文檔就不是一兩天能看完的。。。我只是想簡單粗糙地測一下我的網站能承受住多少並發而已!

  於是呢,再往下翻,就看到Pylot了。

2、Pylot配置

  好了,我知道你已經迫不及待地打開Pylot的官網了,那我也就不廢話了,咱們直接進入主題,從實際應用中看看Pylot到底是怎么個簡單法。

  如果不考慮網速問題,Pylot的配置大概要5分鍾吧(什么?5分鍾你都嫌多?你知道我用6k/s的速度爬完所有依賴包的痛苦嗎!)。

  Pylot依賴wxPython、NumPy和Matplotlib三個包,並且需要Python環境,所以我們一共需要下載5個東西。

  第一步:下載Pylot自身

  大家點擊這個Pylot下載按鈕按鈕就會跳轉到下載頁面,然后點最上面那個pylot_1.26.zip就可以下載了。

  這里插一句題外話吧,大家可以看到,Pylot的最新版本就是07/06/2009,確實很舊。。。這也是我一開始不想用它的原因,感覺有點不爽。不過實際使用中發現可以滿足我的需求,再加上真的很簡單(你學習JMeter的時間就夠我測N個網站了)所以推薦給和我有一樣需求的朋友。

  第二步:下載及配置Python:

  Python:Pylot需要python2.5以上的版本,打開以后選擇對應你的系統的版本,下載好之后雙擊安裝。

  第三步:下載三個依賴包

  推薦使用

 easy_install wxpython numpy matplotlib

 

  或者

 pip install wxpython numpy matplotlib

   這兩種方式來進行安裝,簡單快捷上檔次!

如果你是第一次使用Python的話,強烈建議安裝easy_install和pip,他們相當於Linux下的apt-get或者yum,非常好用。具體安裝教程我就不寫了,大家需要的可以百度一下。

  如果你不願意使用這兩種方式安裝,也可以分別下載三個安裝包進行安裝。

  wxPython :打開以后選擇對應你的系統以及python版本的安裝包進行下載,下載完雙擊安裝。

  NumPy:打開以后點擊numpy下載按鈕按鈕進行下載,下載完參照INSTALL.txt文件進行安裝。

  Matplotlib:打開以后點擊matplotlib下載按鈕按鈕進行下載,下載完參照INSTALL文件進行安裝。

  

  安裝好上述文件之后,我們就可以開始使用Pylot了。你沒看錯,Pylot本身不需要安裝。

3、Pylot使用

  我們先從一個實例入手,然后詳細講一下Pylot的各種參數。

  首先需要配置一下testcases.xml這個文件。這個文件包含了需要測試的目標url以及具體的測試內容。

  大家打開testcases.xml之后可以看到兩個<case>......</case>,因為我們只是要一個簡單的實例,所以我們把第二個<case>....</case>刪掉,然后把第一個<case>....</case>里面的<url></url>改成你需要測試的url。我的就是<url>http://www.langman1dian.com</url>。改好之后整個文章內容是這樣的

<testcases>
    <!-- SAMPLE TEST CASE -->
    <case>
        <url>http://www.langman1dian.com</url>
    </case>
    -->
</testcases>

 

  好了,保存關閉。

  然后我們就可以開始測試了。

  什么?你說太快了?沒錯,就是這么快!

  在命令行輸入

python pylot -a 50

  然后回車,你就可以看到測試開始了。

  這里的 -a 參數就是設置用戶數,也就是你想要模擬同時訪問的人數。

4、參數詳細說明

  Pylot有很多參數,我詳細介紹一下:

  

-a, --agents=NUM_AGENTS
設置同時訪問用戶數量
-d, --duration=DURATION
設置總測試時間(秒)
-r, --rampup=RAMPUP
設置提升量(秒),我也沒太搞懂這個是什么意思
-i, --interval=INTERVAL 
設置訪問間隔(毫秒)
-x, --xmlfile=TEST_CASE_XML
設置要使用的xml文件,默認testcase.xml
-o, --output_dir=PATH
設置輸出文件路徑
-n, --name=TESTNAME
設置測試名稱
-l, --log_msgs
設置是否需要日志信息
-b, --blocking 
設置是否開啟鎖定模式,如果開啟會鎖定輸出直到測試結束
-g, --gui 
設置是否使用圖形界面
-p, --port=PORT
設置xml-rpc監聽的端口

  常用的就是 -a -d -i -g,其他的不太常用,有幾個我也搞不太清楚是什么意思。。。大家如果有知道的可以告訴我一下。

  大家也看到了,使用-g選項的話就可以開啟圖形界面,圖形界面我就不詳細介紹了,雖然有幾個英文單詞吧,但是大家應該一眼就能看明白怎么用了,還是挺方便的。

  如果你不想每次都手動設置參數,可以修改core文件夾里的config.py文件,這個文件是Pylot默認加載的配置。

  好了,基本的介紹就到這里吧,對我來說知道這些已經足夠用了,大家如果想看更深入的,比如設置cookie以及遠程啟動測試腳本等等進階部分的話可以查看:Pylot官方教程

5、查看測試結果

  Pylot可以將測試結果轉化成表格以及圖的方式展示出來,測試完成后會在results文件夾中生成以當前日期命名的文件夾,打開之后可以看到一個html文件,這個就是測試結果了。

  我們來看一個Pylot官方提供的例子吧:測試結果

  pylot測試結果

  這是第一部分。

  最上面分別是結果的生成時間、測試的開始時間和測試的結束時間。

  Workingload Model里分別是測試總時間、用戶數以及提升(不太懂什么意思)和間隔時間。

  Results Summary里是測試結果統計,可以看到總請求數(requests)、總錯誤數(errors)和總接受數據量(data received)。

  最下面是訪問時間統計以及流量統計。

  avg是平均訪問時間,stdev是標准差,min是最小值,max是最大值。50th %表示 排在50%位置(也就是中間位置)的訪問時間,其他以此類推。

  第二部分

  這是第二部分。

  第一張圖表示的是測試時間與響應時間的關系,可以看到隨着測試時間增大,響應時間也在增大。

  第二張圖表示的是測試時間和每秒請求數量的關系,可以看到隨着測試時間增大,每秒請求數也在增大。

  第三部分我就不截圖了,就是具體的每個用戶的信息。

6、總結

  好了,Pylot的基本介紹就到這里了,第一次寫技術文章,如果有不合適的地方歡迎大家提建議。自己技術有限,如果有什么錯誤或者遺漏的地方也歡迎大家指正!

  謝謝。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM