1. 程式人生 > 實用技巧 >Locust效能測試:上手初體驗

Locust效能測試:上手初體驗

目錄

廢話

今天整理之前的有道雲筆記,這也是之前弄的~~~

學習資料

官網:https://www.locust.io/
部落格園老張:https://www.cnblogs.com/imyalost/p/9758189.html
blibli某機構:https://www.bilibili.com/video/BV16441157rv?from=search&seid=16493161016333916333

正文

基於python的開源效能測試框架

安裝: pip install locust

Web頁面啟動

快速上手1:此處用到的專案是woniusales,指定了被測主機地址

from locust import task, between, HttpUser


# 繼承HttpUser,蝗蟲將為它模擬的每個使用者建立一個此類的例項
class TestIndex(HttpUser):
    # 等待時間 最小1秒(s) 最大5s
    wait_time = between(1, 5)

    # 使用@task來宣告任務,只有使用了@task註解的方法才會被蝗蟲併發執行
    @task
    def get_index(self):
        # 請求介面
        self.client.get("/woniusales")
        print("訪問首頁")

    # 每個模擬使用者在啟動前都會呼叫改方法
    def on_start(self):
        self.client.get("/")
        print("在每個使用者執行前呼叫")

# 執行指令碼:locust -f TestIndex.py --host=htpp://192.168.0.136:8080 ; --host= 需要監控的伺服器的ip地址


def start_locust(monitored_machine):
    """
    執行 locust 啟動命令,執行完成後,使用瀏覽器訪問:127.0.0.1:8089 進入使用者數設定頁面
    :param monitored_machine: 被測專案的主機地址
    :return: 無
    """
    import os
    os.system("locust -f {file_path} --host={host}".format(file_path=__file__, host=monitored_machine))


if __name__ == '__main__':
    start_locust("http://192.168.0.136:8080")
# 啟動指令碼後:瀏覽器訪問 127.0.0.1:8089

快速上手2: 未指定被測主機地址

from locust import task, between, HttpUser


# 繼承HttpUser,蝗蟲將為它模擬的每個使用者建立一個此類的例項
class TestIndex(HttpUser):
    # 等待時間 最小1秒(s) 最大5s
    wait_time = between(1, 5)

    # 使用@task來宣告任務,只有使用了@task註解的方法才會被蝗蟲併發執行
    @task
    def get_index(self):
        # 請求介面
        self.client.get("/woniusales")
        print("訪問首頁")

    # 每個模擬使用者在啟動前都會呼叫改方法
    def on_start(self):
        self.client.get("/")
        print("在每個使用者執行前呼叫")

# 執行指令碼:locust -f TestIndex.py --host=htpp://192.168.0.136:8080 ; --host= 需要監控的伺服器的ip地址


def start_locust():
    """
    執行 locust 啟動命令,執行完成後,使用瀏覽器訪問:127.0.0.1:8089 進入使用者數設定頁面
    :return: 無
    """
    import os
    os.system("locust -f {file_path}".format(file_path=__file__))


if __name__ == '__main__':
    start_locust()

Locust面板解析

面板功能

New test:點選該按鈕可對模擬的總虛擬使用者數和每秒啟動的虛擬使用者數進行編輯;
Statistics:類似於jmeter中Listen的聚合報告;
Charts:測試結果變化趨勢的曲線展示圖,分別為每秒完成的請求數(RPS)、響應時間、不同時間的虛擬使用者數;
Failures:失敗請求的展示介面;
Exceptions:異常請求的展示介面;
Download Data:測試資料下載模組, 提供三種類型的CSV格式的下載,分別是:Statistics、responsetime、exceptions;

Statistics報告解釋:

Type:請求型別,即介面的請求方法;
Name:請求路徑;
requests:當前已完成的請求數量;
fails:當前失敗的數量;
Median:響應時間的中間值,即50%的響應時間在這個數值範圍內,單位為毫秒;
Average:平均響應時間,單位為毫秒;
Min:最小響應時間,單位為毫秒;
Max:最大響應時間,單位為毫秒;
Content Size:所有請求的資料量,單位為位元組;
reqs/sec:每秒鐘處理請求的數量,即QPS