這兩天因為報名了一個實習生,考慮到面試時候可能問到網站並發,就准備自己做一下壓力測試。
因為我是新手,所以在找工具這個階段就用了比較長時間。最后發現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_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:打開以后點擊按鈕進行下載,下載完參照INSTALL.txt文件進行安裝。
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有很多參數,我詳細介紹一下:
|
設置同時訪問用戶數量 |
|
設置總測試時間(秒) |
|
設置提升量(秒),我也沒太搞懂這個是什么意思 |
|
設置訪問間隔(毫秒) |
|
設置要使用的xml文件,默認testcase.xml |
|
設置輸出文件路徑 |
|
設置測試名稱 |
|
設置是否需要日志信息 |
|
設置是否開啟鎖定模式,如果開啟會鎖定輸出直到測試結束 |
|
設置是否使用圖形界面 |
|
設置xml-rpc監聽的端口 |
常用的就是 -a -d -i -g,其他的不太常用,有幾個我也搞不太清楚是什么意思。。。大家如果有知道的可以告訴我一下。
大家也看到了,使用-g選項的話就可以開啟圖形界面,圖形界面我就不詳細介紹了,雖然有幾個英文單詞吧,但是大家應該一眼就能看明白怎么用了,還是挺方便的。
如果你不想每次都手動設置參數,可以修改core文件夾里的config.py文件,這個文件是Pylot默認加載的配置。
好了,基本的介紹就到這里吧,對我來說知道這些已經足夠用了,大家如果想看更深入的,比如設置cookie以及遠程啟動測試腳本等等進階部分的話可以查看:Pylot官方教程。
5、查看測試結果
Pylot可以將測試結果轉化成表格以及圖的方式展示出來,測試完成后會在results文件夾中生成以當前日期命名的文件夾,打開之后可以看到一個html文件,這個就是測試結果了。
我們來看一個Pylot官方提供的例子吧:測試結果
這是第一部分。
最上面分別是結果的生成時間、測試的開始時間和測試的結束時間。
Workingload Model里分別是測試總時間、用戶數以及提升(不太懂什么意思)和間隔時間。
Results Summary里是測試結果統計,可以看到總請求數(requests)、總錯誤數(errors)和總接受數據量(data received)。
最下面是訪問時間統計以及流量統計。
avg是平均訪問時間,stdev是標准差,min是最小值,max是最大值。50th %表示 排在50%位置(也就是中間位置)的訪問時間,其他以此類推。
這是第二部分。
第一張圖表示的是測試時間與響應時間的關系,可以看到隨着測試時間增大,響應時間也在增大。
第二張圖表示的是測試時間和每秒請求數量的關系,可以看到隨着測試時間增大,每秒請求數也在增大。
第三部分我就不截圖了,就是具體的每個用戶的信息。
6、總結
好了,Pylot的基本介紹就到這里了,第一次寫技術文章,如果有不合適的地方歡迎大家提建議。自己技術有限,如果有什么錯誤或者遺漏的地方也歡迎大家指正!
謝謝。