溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python locust庫如何實現(xiàn)性能測試

發(fā)布時間:2020-07-28 10:12:56 來源:億速云 閱讀:431 作者:小豬 欄目:編程語言

這篇文章主要為大家展示了python locust庫如何實現(xiàn)性能測試,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

Locust(俗稱 蝗蟲), 一個輕量級的開源壓測工具,用Python編寫。

安裝

pip3 install locust

Python編寫性能測試腳本

import json

from locust import HttpLocust, TaskSet, task

"""
創(chuàng)建后臺管理站點壓測類,需要繼承TaskSet
可以添加多個測試任務
"""


class AdminLoadTest(TaskSet):

  # 用戶執(zhí)行task前調用
  def on_start(self):
    pass

  # 用戶執(zhí)行task后調用
  def on_stop(self):
    pass

  @task(1)
  def download(self):
    header = {"Content-Type": "application/json"}
    data = {
      "staff_id": 94
    }
    data = json.dumps(data)
    self.client.post('/get_know_list', data=data, headers=header)

  @task(2)
  def body(self):
    header = {"Content-Type": "application/json"}
    data = {
      "staff_id": 94
    }
    data = json.dumps(data)
    self.client.post('/get_answer_list', data=data, headers=header)


class RunLoadTests(HttpLocust):
  """
  創(chuàng)建運行壓測類
  """
  task_set = AdminLoadTest
  min_wait = 1000
  max_wait = 50000
  weight = 1
if __name__ == "__main__":
  import os

  os.system("locust -f test_download.py --host=http://127.0.0.1:5000")

AdminLoadTest類繼承TaskSet類,用以描述用戶行為:

使用@task裝飾的方法為一個事務,方法的參數(shù)用于指定該行為的執(zhí)行權重,參數(shù)越大每次被用戶執(zhí)行的概率越高,默認為1(事務blogs()被執(zhí)行的概率是bky_index()的2倍);

  • on_start():每個locust用戶執(zhí)行測試事務之前執(zhí)行一次,用于做初始化的工作,如登錄;
  • on_stop(): 每次執(zhí)行完測試事務之后執(zhí)行一次。
  • RunLoadTests類用于設置性能測試屬性:
  • task_set:指向定義的一個用戶行為類;
  • min_wait:模擬用戶在執(zhí)行每個任務之間等待的最小時間,單位為毫秒;
  • max_wait:模擬用戶在執(zhí)行每個任務之間等待的最大時間,單位為毫秒(min_wait和max_wait默認值為1000,因此,如果沒有聲明min_wait和max_wait,則locust將在每個任務之間始終等待1秒。);
  • weight:一個文件中有多個locust用戶類時,指定用戶類的權重(默認新增locust用戶時會隨機選擇一個用戶類);

啟動

終端進入代碼目錄,輸入 locust -f start.py --host=http://localhost:5000

使用os.system在代碼里面寫入啟動命令

各個參數(shù)的含義

  • -f : 指定要運行的測試腳本文件
  • --host : 要加載主機的URL前綴,不指定時,讀取WebsiteUser類中定義的host;
  • --master : 單臺機器不能模擬更多用戶時,分布式模式,通過--master指定主進程;打開Locust的web界面

使用上面的命令行啟動Locust之后,應該打開瀏覽器并將其指向http://localhost:8089/(如果您在本地運行Locust)。

Number of total users to simulate : 設置模擬用戶數(shù);Hatch rate(users spawned/second) : 每秒產生(啟動)的虛擬用戶數(shù);

python locust庫如何實現(xiàn)性能測試

設置好模擬用戶后,點擊Start swarming開始測試,測試結果如下:

python locust庫如何實現(xiàn)性能測試

  • Type   :請求的類型,如GET/POST;
  • Name :請求的路徑;
  • request :已發(fā)出請求數(shù)量;
  • fails :請求失敗的數(shù)量;
  • Median :響應時間的中間值(單位:毫秒);
  • Average :平均響應時間(單位:毫秒);
  • Min :請求的最小響應時間(單位:毫秒);
  • Max :請求的最大響應時間(單位:毫秒);
  • Content Size:單個請求的大?。▎挝唬鹤止?jié));
  • reqs/sec:每秒鐘請求的個數(shù);

以上就是關于python locust庫如何實現(xiàn)性能測試的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI