1. 程式人生 > >Locust 介面效能測試

Locust 介面效能測試

記錄一下介面效能測試的學習

先熟悉一下概念:

Locust是使用Python開發的支援分散式的一款開源壓力測試工具,Locust在測試時,會產生大量的使用者對系統進行訪問,每個使用者的行為是通過Python程式碼控制的,並且整個測試過程可以在Web的UI介面實時觀察測試資料。 

Locust在單臺機器上能夠支援幾千併發使用者訪問,Locust內部採用了協程gevent,通過採用分散式的方式,理論上Locust工具能夠模擬無數的使用者。

1.安裝locust:直接$ pip install locustio 即可

安裝的過程中會安裝其他一些依賴的庫,不要慌張,安裝結束如上圖,檢視是否安裝可以用 locust -h 來驗證,當現實各種命令就是安裝成功了!

2.安裝完成後開始來寫一個性能測試指令碼

解釋一下:baiduy_page()方法表示一個使用者行為,使用@task修飾該方法是一個事務,client.get()用於指定請求路徑,因為是百度首頁所以用‘/’指定為根路徑

websiteuser類用於設定效能測試

task_set :定義一個使用者行為類

min_wait :執行事務之間使用者等待時間的下界(ms)

max_wait: 使用者等待時間的上界

下面來啟動效能測試:

-f :指定效能測試指令碼檔案

--host :指定被測試應用的url地址,注意,訪問百度使用的是https協議

然後通過該瀏覽器訪問 http://127.0.0.1:8089   locust預設使用8089埠

如圖所示:

啊啊啊啊,報錯啊,沒解決呢,愁死了!預設是8089埠,我改成別的埠還是不行!下班吧!回家思考一下!

3.昨天下班沒解決的問題今早搞定啦,不知什麼原因,地址輸入localhost:8089埠就可以了,有時候就是這麼簡單:如下圖:

number of user to simulate:設定模擬的使用者數

hatch rate :每秒產生的虛擬使用者數

輸入使用者數100,每秒產生10

下面作解釋一下:

type: 請求型別

name: 請求路徑,這裡是百度首頁,https://www.baidu.com

requests: 當前請求的數量

fails:當前請求失敗的數量

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

average: 平均值,單位ms 所有請求的平均響應時間

min: 請求伺服器最小響應時間 ms

content size : 單個請求的大小,單位位元組

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

總結:由於這是百度首頁的測試,效能需求不明,伺服器配置未知,沒有分析的必要!

下面拿自己公司的後臺管理系統作一個簡單的效能測試:

這是指令碼內容

所有的操作都要先登入,所以先寫一個on_start方法定義了每個使用者開始做的第一件事

@task方法裝飾的是一個事務

下面啟動執行:

此時開啟localhost:8089 檢視:

這就是我司的後臺的測試結果:

進入charts檢視折線圖:

然後我又把使用者數設定為1000,每秒啟動20,但是,但是,,此時,我司的後臺管理系統就掛掉了,我了割草啊,嚇死我了。嚇得我趕緊關掉locust,尼瑪,嚇了我一身冷汗!哎

由此可以看出我司的後臺管理系統還是比較渣渣的哈!

php寫的,不過這件事只有我自己知道,哈哈哈!好了,這次的練習就到此為止吧!有機會再繼續學習locust!

講解到這裡小夥伴應該都會用了;locust做簡單的效能測試了啊,有不明白的可以qq問我,970185127,一起學習!

最後附上一個大牛寫的關於locust的東西,值得深入學習,有機會仔細閱讀!

以下部分為2018年8月9日更新!

由於我司下期專案要新增一個直播的模組,直播嘛想想就只到要做壓力測試啦,所以今天把locust有稍微研究了下(半天時間),因為手上有專案不能耽誤太久時間!

今天我要做的就是課程的詳情頁。就是模擬多人併發請求這個課程的詳情頁,也就相當於同時多個人進入這個課程.

當一切準備就緒時開始執行locust -f locustfile2.py --host=xxx 後一直給我報錯,說找不到一個叫common的模組。我一想不對呀,怎麼會找不到呢,因為我在locust檔案中匯入我的公共模組都是正常的啊,為什麼執行報錯呢?百思不得解!

所以我特地根據這個改了一下我的專案結構(真夠奇葩的)

把locust檔案和要匯入用到的檔案圈放在根目錄,然後執行命令

居然這就成功了,我也是醉了,對於這塊我覺得可能是locust對於檔案層級目錄還是有要求的!還需要好好研究!

還有一種方法就是這種結構:

下次嘗試吧!!

相關推薦

Locust 介面效能測試

記錄一下介面效能測試的學習 先熟悉一下概念: Locust是使用Python開發的支援分散式的一款開源壓力測試工具,Locust在測試時,會產生大量的使用者對系統進行訪問,每個使用者的行為是通過Python程式碼控制的,並且整個測試過程可以在Web的UI介面實時觀察測試資

python locust介面效能測試HTTPS網站報錯:Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certi

問題描述: 測試HTTPS SSL 協議的網站介面,用Python Locust模組,不論POST還是GET都提示錯誤: SSLError Max retries exceeded with url: /action.php?m=upload  (Caused by SSL

JMeter深入進階效能測試體系,介面效能測試,各領域企業實戰

jmeter是apache公司基於java開發的一款開源壓力測試工具,體積小,功能全,使用方便,是一個比較輕量級的測試工具,使用起來非常簡單。因為jmeter是java開發的,所以執行的時候必須先要安裝jdk才可以。jmeter是免安裝的,拿到安裝包之後直接解壓就可以使用,同時它在linux/windows/

使用Jmeter應該如何進行http介面效能測試

在進行網頁或應用程式後臺介面開發時,一般要及時測試開發的介面能否正確接收和返回資料,對於單次測試,Postman外掛是個不錯的Http請求模擬工具。  但是Postman只能模擬單客戶端的單次請求,而對於模擬多使用者併發等效能測試,就必須藉助其他的工具了,這裡推薦功能強大的JMe

jmeter介面效能測試(2)----效能測試全過程

依然使用上一篇文章的介面 在上一篇文章我們已經添加了http請求、斷言、檢視結果樹。在開始之前我們在新增聚合報告(執行緒組》新增》監聽器》聚合報告)。 除錯好介面後開始執行效能測試 1.設定執行緒組:根據實際需要設定 1. 執行緒數:虛擬使用者數。一個虛擬使用者佔用一個程序或執

jmeter介面效能測試(1)----簡單的介面測試入門

首先來看一下介面的資訊:host:http://api.jhled888.comuri: /cgi-bin/get.json 介面請求方式: GET 入參:appid: jhyjlhxa03q4f2qlmfappsecret:eb28066907b14310a9401c0586c840

jmeter介面效能測試(5)----自動生成測試報告

今天學習了在jmeter中自動生成HTML格式的文件 儲存好指令碼後,通過cmd.exe進入到jmeter的bin目錄下: 輸入以下命令:jmeter -n -t xxx.jmx(指令碼的路徑) -l result.jtl -e -o /tmp/Result(報告的路徑) 執

jmeter介面效能測試(4)----提取json中的資料並應用到斷言中

介面資訊如下: 執行介面後在檢視結果樹種檢視響應資料,檢視方式選擇:JSON Path Tester 我們要在json中提取如下的資料: 檢視json體的路徑關係,在JSON path Expression中輸入路徑,關注是否能得到想要的數值。如:我們想要獲取上圖中的n

jmeter介面效能測試(3)----引數化

1.新增使用者自定義變數 給http請求新增使用者自定義變數:執行緒組》配置元件》使用者自定義變數 定義一個名稱為s的變數 在http請求中呼叫該引數 2.CSV Data Set Config 執行緒組》配置元件》CSV Data Set Config

soapui介面效能測試(三)---- 驗證效能

背景:如何表現效能? 在SoapUI中,斷言效能和底層功能(通過步驟狀態斷言)的可能性很多。找到正確的組合並不容易,因為LoadTest結果非常依賴於外部因素(特別是在高負載時); 網路,磁碟活動,資料庫備份等。因此,我們建議您為LoadTest建立一個“safety

soapui介面效能測試(一)---- 建立並執行一個性能測試

1. soapui使用效能測試 SoapUI中的LoadTest用於在您所需的持續時間內使用多執行緒(與“虛擬使用者”相同)時重複執行現有的功能TestCase來斷言您的目標服務。LoadTests在導航器中顯示為此TestCase的子項; (這裡可以看到“Test

python的介面效能測試例項

import requests import datetime import time import threadingclass test_login002(): times = [] error = [] def login(self):

介面效能測試方案

一、 效能測試術語解釋  1. 響應時間  響應時間即從應用系統發出請求開始,到客戶端接收到最後一個位元組資料為止所消耗的時間。響應時間按軟體的特點再可以細分,如對於一個 C/S 軟體的響應時間可以細分為網路傳輸時間、應用伺服器處理時間、資料庫伺服器處理時間。另外客戶端自身也存在著解析時間、介面繪製呈現

soapui介面效能測試(四)---- 輸出報告和統計

好的,您已經運行了LoadTest,現在需要建立一些報告或匯出收集的資料以進行更詳細的分析。有幾個選項可供您使用,我們將按順序檢視: 匯出統計表的資料(僅限開源)。從統計圖匯出資料。在測試執行時連續匯出資料。建立可列印報告或將基礎報告資料匯出到XML或CSV檔案(Load

Locust介面壓力測試

簡介:    Locust是一個可擴充套件的,分散式的,開源的,用Python編寫的壓力測試工具。 Locust完全是事件驅動的,因此在單臺機器上能夠支援上萬併發使用者訪問。與其它許多基於事件的應用相比,Locust並不使用回撥,而是使用gevent,而gevent是基於

(原創)如何高效的進行WebService介面效能測試

關於介面測試的理解,主要有兩類,一類是模組與模組間的呼叫,此類介面測試應該歸屬於單元測試的範疇,主要測試模組與模組之間聯動呼叫與返回。此類測試大多關注於流程性與正確性,通過設定不同的輸入,得到相應的返回與對應輸入資料的預期輸出目標比較是否一致,來確認介面的正確性和流程性

loadrunner介面效能測試分享

最近做了一次java指令碼的lr效能測試 不過後來直接用eclipse進行了一次模擬,感覺也不錯 先說lr 選擇JavaVuser 之後 會生成指令碼如下: */ import

LoadRunner介面效能測試示例

===================【根據返回響應中的某段程式碼的次數判斷執行是否成功】=================== Action() { //首先呼叫web_reg_find()這個註冊函式,我們介面的正常返回結果都是<Code>0</

淺談HTTP介面效能測試指令碼的編寫

作為測試界的老司機,最近接到一項任務需要寫新的效能測試程式碼。由於之前的測試程式碼風格和自己習慣的編碼風格差別實在太大,因此放棄了模仿原來的測試程式碼繼續新增測試用例的想法,自己從頭開始寫了一些測

利用Jmeter完成簡單的介面效能測試

一.效能測試指標 在用jmeter做效能測試之前,首先要回顧下效能測試的關鍵指標 1.系統吞吐量 throughput 單位時間內系統的請求數目 在沒有達到效能瓶頸時吞吐量和虛擬使用者間存在一定的聯絡  F=VU * R /T ——VU:虛擬使用者數,R:每個使用者發出的請