婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python locust工具使用詳解

Python locust工具使用詳解

熱門標簽:400電話 申請 條件 電銷機器人 金倫通信 鄭州智能外呼系統中心 云南地圖標注 南京crm外呼系統排名 crm電銷機器人 汕頭電商外呼系統供應商 北京外呼電銷機器人招商 賓館能在百度地圖標注嗎

今年負責部門的人員培養工作,最近在部門內部分享和講解了locust這個工具,今天再博客園記錄下培訓細節。相信你看完博客,一定可以上手locust這個性能測試框架了。

一、簡介

1、優勢

locust是python語言開發的一款的開源的的性能測試框架,他比jmeter更加的輕量級,主要是通過協程(gevent)的方式去實現并發,通過協程的方式可以大幅提高單機的并發能力,同時避免系統級的資源調度。locust具有開源性、分布式、支持高并發,支持webUI的操作方式。

2、劣勢

locust的圖表功能較弱,只展示了很少的數據

locust不支持監控服務端的狀態,需要借助第三方工具,或者自己寫代碼去實現

二、安裝

locust的安裝非常簡單,直接通過pip的方式就可以安裝

	
pip install locust

三、locust的庫和方法介紹

1、from locust import task

通過task可以把某個函數指定為任務,直接@task裝飾對應的函數即可,在@tast(n)中可以有一個參數n,意思是這個任務的占比是多少

2、from locust import TaskSet

需要定義一個類,繼承TaskSet這個類,這個是是一個任務集的概念,這個類中可以包括多個task

3、from locust import HttpUser

需要定義一個類,這個類要繼承HttpUser,通過這個定義的類我們可以執行具體的任務集

看了上面的介紹,可能大家有點云里霧里的,下面我們由淺入深看代碼

四、實戰代碼V1.0(入門代碼)

1、代碼如下

from locust import HttpLocust
from locust import HttpUser
from locust import task
from locust import TaskSet
#指定一個任務集
class My_task_set(TaskSet):
 
 
    #這是某個任務,30是比例,比如這里是30/50
    @task(30)
    def getindex1(self):
        # client就是個requests對象
        # catch_response,告訴locust如何判斷請求失敗還是成功
        res  = self.client.get("/bainianminguo/p/10952586.html")
 
    @task(20)
    def getindex2(self):
        # client就是個requests對象
        res = self.client.get("/bainianminguo/p/7253930.html")
 
 
class WebSite(HttpUser):
    # 指定要執行哪個任務集
    tasks = [My_task_set,]
    # 請求和請求之間最小的間隔時間
    min_wait = 1000
    # 請求和請求之間最大的間隔時間
    max_waif = 2000

2、進入代碼的目錄,執行如下命令

3、打開瀏覽器,輸入http://localhost:8089/

4、參數講解

Number of total users to simulate 模擬的總的用戶數

Spawn rate 每秒鐘新增的用戶數

五、實戰代碼V1.1(入門代碼)

1、任務集類中的on_start方法

class My_task_set(TaskSet):
 
    #添加初始化方法
    def on_start(self):
        print("類似類中的構造方法,每個用戶在任務開始前,只執行一次,在這里可以定義一個對象的屬性,這樣其它測試集就可以使用這個屬性")

這個方法類似pytest框架中的前置條件或者說是面向對象中的構造方法

2、任務集類中的on_start方法

def on_stop(self):
    print("類似類中的后置方法,每個用戶在任務開始后,只執行一次,在這里可以定義一個對象的屬性,這樣其它測試集就可以使用這個屬性")

六、實戰代碼V1.2(入門代碼)

1、如何判斷請求是失敗還是成功

2、然后再響應的消息中指定判斷邏輯即可,success即為成功,failure即為失敗

七、實戰代碼V1.3(全量代碼)

from locust import HttpLocust
from locust import HttpUser
from locust import task
from locust import TaskSet
 
# locust中的client會自動幫我們處理cookies。類似request.session(),所以如果我們登陸的時候,只需要在on_start中登陸一次就可以了
 
# 如果在locust中,如果url是不需要統計,則我們不要用clent去訪問api,應該用request去訪問,這樣就locust就不會統計request庫發起的請請求
#指定一個任務集
class My_task_set(TaskSet):
 
    #添加初始化方法
    def on_start(self):
        print("類似類中的構造方法,每個用戶在任務開始前,只執行一次,在這里可以定義一個對象的屬性,這樣其它測試集就可以使用這個屬性")
 
    def on_stop(self):
        print("類似類中的后置方法,每個用戶在任務開始后,只執行一次,在這里可以定義一個對象的屬性,這樣其它測試集就可以使用這個屬性")
 
    #這是某個任務,30是比例,比如這里是30/50
    @task(30)
    def getindex1(self):
        # client就是個requests對象
        # catch_response,告訴locust如何判斷請求失敗還是成功
        res  = self.client.get("/bainianminguo/p/10952586.html",catch_response=True)
        if res.code == 200:
            res.success()
        else:
            res.failure("ff")
        print(res)
    @task(20)
    def getindex2(self):
        # client就是個requests對象
        res = self.client.get("/bainianminguo/p/7253930.html")
        print(res)
 
class WebSite(HttpUser):
    # 指定要執行哪個任務集
    # task_set = My_task_set
 
    tasks = [My_task_set,]
    # 請求和請求之間最小的間隔時間
    min_wait = 1000
    # 請求和請求之間最大的間隔時間
    max_waif = 2000
 
 
# Number of total users to simulate   模擬的用戶數
# Spawn rate                          每秒鐘產生的用戶數

八、常見問題

1、cookies

locust中的client會自動幫我們處理cookies。類似request.session(),所以如果我們登陸的時候,只需要在on_start中登陸一次就可以了

2、多統計api的問題

如果在locust中,如果url是不需要統計,則我們不要用clent去訪問api,應該用request去訪問,這樣就locust就不會統計request庫發起的請請求

九、分布式調用的問題

一旦單臺機器不夠模擬足夠多的用戶時,Locust支持運行在多臺機器中進行壓力測試。
 
為了實現這個,你應該在 master 模式中使用--master標記來啟用一個 Locust 實例。這個實例將會運行你啟動測試的 Locust 交互網站并查看實時統計數據。br>master 節點的機器自身不會模擬任何用戶。相反,你必須使用 --slave 標記啟動一臺到多臺 Locustslave 機器節點,與標記 --master-host 一起使用(指出master機器的IP/hostname)。
 
常用的做法是在一臺獨立的機器中運行master,在slave機器中每個處理器內核運行一個slave實例。
 
注意:master 和每一臺 slave 機器,在運行分布式測試時都必須要有 locust 的測試文件。
在 master 模式下啟動 Locust:
 
locust -f my_loucstfile.py --master
 
在每個 slave 中執行(192.168.0.14 替換為你 msater 的IP):
 
locust -f my_locustfile.py --slave --master-host=192.168.0.14

以上就是Python locust工具使用詳解的詳細內容,更多關于Python locust工具的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • python性能測試工具locust的使用
  • Python性能測試工具Locust安裝及使用
  • 基于python locust庫實現性能測試
  • Python 3.6 性能測試框架Locust安裝及使用方法(詳解)

標簽:浙江 文山 懷化 西寧 昆明 石家莊 錫林郭勒盟 梅州

巨人網絡通訊聲明:本文標題《Python locust工具使用詳解》,本文關鍵詞  Python,locust,工具,使用,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python locust工具使用詳解》相關的同類信息!
  • 本頁收集關于Python locust工具使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 安乡县| 巴里| 永新县| 万州区| 襄樊市| 萨迦县| 郓城县| 杭州市| 喀喇沁旗| 中方县| 深水埗区| 彰武县| 高雄县| 阿城市| 六枝特区| 上犹县| 扎兰屯市| 鹤峰县| 甘肃省| 宝鸡市| 洛阳市| 龙口市| 拉孜县| 九龙城区| 白玉县| 西畴县| 和顺县| 阿巴嘎旗| 赤城县| 夏河县| 来凤县| 朝阳区| 会东县| 平陆县| 腾冲县| 运城市| 苍南县| 商河县| 荔波县| 天台县| 湖北省|