最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年05月11日 09:14:49   作者:wanglai  
這篇文章主要介紹了基于python locust庫實(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 關(guān)鍵字static詳解及實(shí)例代碼

    Java 關(guān)鍵字static詳解及實(shí)例代碼

    這篇文章主要介紹了Java 關(guān)鍵字static詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java如何構(gòu)造DSL方法重構(gòu)

    Java如何構(gòu)造DSL方法重構(gòu)

    這篇文章主要介紹了Java如何構(gòu)造DSL方法重構(gòu),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考價(jià)值
    2022-07-07
  • 在Java中實(shí)現(xiàn)二叉搜索樹的全過程記錄

    在Java中實(shí)現(xiàn)二叉搜索樹的全過程記錄

    二叉樹包含了根節(jié)點(diǎn),孩子節(jié)點(diǎn),葉節(jié)點(diǎn),每一個(gè)二叉樹只有一個(gè)根節(jié)點(diǎn),每一個(gè)結(jié)點(diǎn)最多只有兩個(gè)節(jié)點(diǎn),左子樹的鍵值小于根的鍵值,右子樹的鍵值大于根的鍵值,下面這篇文章主要給大家介紹了關(guān)于如何在Java中實(shí)現(xiàn)二叉搜索樹的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 如何使用 IntelliJ IDEA 編寫 Spark 應(yīng)用程序(Scala + Maven)

    如何使用 IntelliJ IDEA 編寫 Spark 應(yīng)用程序(Sc

    本教程展示了如何在IntelliJIDEA中使用Maven編寫和運(yùn)行一個(gè)簡(jiǎn)單的Spark應(yīng)用程序(例如WordCount程序),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • SpringBoot請(qǐng)求響應(yīng)方式示例詳解

    SpringBoot請(qǐng)求響應(yīng)方式示例詳解

    這篇文章主要介紹了SpringBoot請(qǐng)求響應(yīng)的相關(guān)操作,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Springcloud服務(wù)注冊(cè)consul客戶端過程解析

    Springcloud服務(wù)注冊(cè)consul客戶端過程解析

    這篇文章主要介紹了Springcloud服務(wù)注冊(cè)consul客戶端過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 如何基于JavaFX開發(fā)桌面程序

    如何基于JavaFX開發(fā)桌面程序

    這篇文章主要介紹了如何基于JavaFX開發(fā)桌面程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Springboot項(xiàng)目刪除項(xiàng)目同步target文件問題解決方案

    Springboot項(xiàng)目刪除項(xiàng)目同步target文件問題解決方案

    這篇文章主要介紹了Springboot項(xiàng)目刪除項(xiàng)目同步target文件問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • mybatis?plus框架@TableField注解不生效問題及解決方案

    mybatis?plus框架@TableField注解不生效問題及解決方案

    最近遇到一個(gè)mybatis plus的問題,@TableField注解不生效,導(dǎo)致查出來的字段反序列化后為空,今天通過本文給大家介紹下mybatis?plus框架的@TableField注解不生效問題總結(jié),需要的朋友可以參考下
    2022-03-03
  • Java IO流操作(PipeInputStream、SequenceInputStream、BufferedInputStream)

    Java IO流操作(PipeInputStream、SequenceInputStream、Buffered

    管道流主要用于線程間通信,分為管道輸入流(PipeInputStream)和管道輸出流(PipeOutputStream),本文介紹了如何通過管道流進(jìn)行數(shù)據(jù)發(fā)送和接收,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10

最新評(píng)論

喀什市| 安泽县| 廊坊市| 家居| 泸定县| 景洪市| 景谷| 黄龙县| 丹巴县| 竹北市| 安多县| 呈贡县| 北宁市| 桐城市| 安国市| 东台市| 漾濞| 龙江县| 大姚县| 奇台县| 莱芜市| 英吉沙县| 田阳县| 乐亭县| 上蔡县| 共和县| 十堰市| 垦利县| 泸定县| 华宁县| 沙坪坝区| 瓦房店市| 奉贤区| 山东省| 正镶白旗| 阳山县| 宿州市| 蕲春县| 盐边县| 鹤峰县| 封丘县|