當前位置:
首頁 > 最新 > 松勤軟體性能測試

松勤軟體性能測試

前面的微信介紹項目的部署也是為性能測試做鋪墊,只有對已經部署的項目做性能測試才有意義,因為中間價Nginx、uWSGI是影響系統性能的重要一環。

Locust性能測試工具

LoadRunner、JMeter都是非常好用的性能測試工具。

Locust同樣也是性能測試工具,完全基於Python語言,採用Pure Python描述測試腳本,並且HTTP請求完全基於Requests庫,除了HTTP/HTTPS協議外,Locust還可以測試其他協議的系統,只需要採用Python調用對應的庫進行請求描述即可。

LoadRunner、JMeter採用進程、線程的方式,這種方式很難在單機上模擬出較高的並發壓力。

Locust的並發機制摒棄了進程和線程,採用協程(gevent)的機制。協程避免了系統級資源的調度,因此可以大幅度提高單機的並發能力。

安裝Locust

如果是python 2.*版本,則使用pip進行安裝;

如果是python 3版本,則建議從GitHub克隆島本地進行安裝。

Locust安裝目錄下的setup.py文件的要求:

install_requires=["gevent>=1.1.2","flask>=0.10.1","requests>=2.9.1","msgpack-python>=0.4.2","six>=1.10.0","pyzmq==15.2.0"]

gevent:在Python中實現協程的一個第三方庫,協程,又稱微線程(Coroutine),使用gevent可以獲得極高的並發性能;

flask:Python的一個Web開發框架,它與Djanog的地位相當;

requests:做HTTP介面測試的庫;

msgpack-python:一種快速、緊湊的二進位序列化格式,適用於類似JSON的數據;

six:它提供了一些簡單的工具來封裝Python 2和Python 3之間的差異性;

pyzmq:如果你打算把Locust運行在多個進程/機器,建議安裝pyzmq;

試運行一下locust,查看幫助信息:

性能測試案例

對於Web應用來說,它本質上是由一個個的Web頁面構成,一般我們可以通過不同的URL地址來得到不同的頁面。

1. 編寫性能測試腳本

使用Locust編寫一個簡單性能測試行為表述腳本,創建文件:locustfile.py

UserBehavior類繼承TaskSet類,用於描述用戶行為;

baidu_page()方法表示一個用戶行為,訪問百度首頁,使用@task裝飾該方式為一個事務;

client.get()用於指定請求的路徑「/」,因為是百度首頁,所以指定為根路徑。

WebsiteUser類用於設置性能測試:

task_set:指向一個定義的用戶行為類;

min_wait:執行事務之間用戶等待時間的下界,單位:毫秒;

max_wait:執行事務之間用戶等待時間的上界,單位:毫秒;

2. 執行性能測試

首先,啟動性能測試:

其中:

-f:指定性能測試腳本文件;

–host:指定被測試應用的URL地址,注意訪問百度使用的HTTPS協議;

通過瀏覽器訪問:http://127.0.0.1:8089(Locust啟動網路監控器,默認埠號為8089),如圖:

其中:

Number of users to simulate:設置模擬用戶數;

Hatch rate(users spawned/second):每秒產生(啟動)的虛擬用戶數;

單擊「Start swarming」按鈕,開始運行性能測試,各個參數如下:

Type:請求的類型,例如GET/POST;

Name:請求的路徑,這裡為百度首頁,即https://www.baidu.com/;

request:當前請求的數量;

fails:當前請求失敗的數量;

Median:中間值,單位毫秒,一半的伺服器響應時間低於該值,而另一半高於該值;

Average:平均值,單位毫秒,所有請求的平均響應時間;

Min:請求的最小伺服器響應時間,單位毫秒;

Max:請求的最大伺服器響應時間,單位毫秒;

Content Size:單個請求的大小,單位位元組;

reqs/sec:每秒鐘請求的個數。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 松勤軟體學院 的精彩文章:

LoadRunner中錯誤解決辦法(三)
App測試中ios和Android的區別
松勤軟體自動化測試

TAG:松勤軟體學院 |