欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于python locust庫(kù)實(shí)現(xiàn)性能測(cè)試

 更新時(shí)間:2020年05月11日 09:14:49   作者:wanglai  
這篇文章主要介紹了基于python locust庫(kù)實(shí)現(xiàn)性能測(cè)試,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

安裝

pip3 install locust

Python編寫性能測(cè)試腳本

import json

from locust import HttpLocust, TaskSet, task

"""
創(chuàng)建后臺(tái)管理站點(diǎn)壓測(cè)類,需要繼承TaskSet
可以添加多個(gè)測(cè)試任務(wù)
"""


class AdminLoadTest(TaskSet):

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

  # 用戶執(zhí)行task后調(diào)用
  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)建運(yùn)行壓測(cè)類
  """
  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裝飾的方法為一個(gè)事務(wù),方法的參數(shù)用于指定該行為的執(zhí)行權(quán)重,參數(shù)越大每次被用戶執(zhí)行的概率越高,默認(rèn)為1(事務(wù)blogs()被執(zhí)行的概率是bky_index()的2倍);

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

啟動(dòng)

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

使用os.system在代碼里面寫入啟動(dòng)命令

各個(gè)參數(shù)的含義

  • -f : 指定要運(yùn)行的測(cè)試腳本文件
  • --host : 要加載主機(jī)的URL前綴,不指定時(shí),讀取WebsiteUser類中定義的host;
  • --master : 單臺(tái)機(jī)器不能模擬更多用戶時(shí),分布式模式,通過--master指定主進(jìn)程;打開Locust的web界面

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

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

設(shè)置好模擬用戶后,點(diǎn)擊Start swarming開始測(cè)試,測(cè)試結(jié)果如下:

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java?stream?distinct()如何按一個(gè)或多個(gè)指定對(duì)象字段進(jìn)行去重

    java?stream?distinct()如何按一個(gè)或多個(gè)指定對(duì)象字段進(jìn)行去重

    這篇文章主要介紹了java?stream?distinct()如何按一個(gè)或多個(gè)指定對(duì)象字段進(jìn)行去重問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Mybatis和其他主流框架的整合使用過程詳解

    Mybatis和其他主流框架的整合使用過程詳解

    MyBatis最初是Apache的一個(gè)開源項(xiàng)目iBatis,?2010年6月這個(gè)項(xiàng)目由Apache?Software?Foundation遷移到了Google?Code,這篇文章主要介紹了Mybatis和其他主流框架的整合使用,需要的朋友可以參考下
    2023-11-11
  • 測(cè)量Java對(duì)象所占內(nèi)存大小方式

    測(cè)量Java對(duì)象所占內(nèi)存大小方式

    這篇文章主要介紹了測(cè)量Java對(duì)象所占內(nèi)存大小方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Spring配置動(dòng)態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫分離的方法

    Spring配置動(dòng)態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫分離的方法

    這篇文章主要介紹了利用Spring配置動(dòng)態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫分離的方法,文中通過示例代碼介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,藕需要的朋友可以一起學(xué)習(xí)學(xué)習(xí)。
    2017-01-01
  • Java中集合LinkedList的原理與使用方法

    Java中集合LinkedList的原理與使用方法

    這篇文章主要給大家介紹了關(guān)于Java中集合LinkedList的原理與使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Java反射機(jī)制用法總結(jié)

    Java反射機(jī)制用法總結(jié)

    反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法和屬性;這種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能稱為java語(yǔ)言的反射機(jī)制。下面我們來一起學(xué)習(xí)一下吧
    2019-05-05
  • SpringBoot Jpa企業(yè)開發(fā)示例詳細(xì)講解

    SpringBoot Jpa企業(yè)開發(fā)示例詳細(xì)講解

    這篇文章主要介紹了SpringBoot Jpa企業(yè)開發(fā)示例,Jpa可以通過實(shí)體類生成數(shù)據(jù)庫(kù)的表,同時(shí)自帶很多增刪改查方法,大部分sql語(yǔ)句不需要我們自己寫,配置完成后直接調(diào)用方法即可,很方便
    2022-11-11
  • java實(shí)現(xiàn)Redisson看門狗機(jī)制

    java實(shí)現(xiàn)Redisson看門狗機(jī)制

    redission看門狗機(jī)制是解決分布式鎖的續(xù)約問題,本文就來詳細(xì)的介紹一下java實(shí)現(xiàn)Redisson看門狗機(jī)制,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-09-09
  • Eclipse安裝配置方法圖文教程

    Eclipse安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Eclipse安裝配置方法圖文教程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java如何根據(jù)實(shí)體指定字段值對(duì)其List進(jìn)行排序詳解

    Java如何根據(jù)實(shí)體指定字段值對(duì)其List進(jìn)行排序詳解

    在Java項(xiàng)目中可能會(huì)遇到給出一些條件,將List元素按照給定條件進(jìn)行排序的情況,這篇文章主要給大家介紹了關(guān)于Java如何根據(jù)實(shí)體指定字段值對(duì)其List進(jìn)行排序的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07

最新評(píng)論