首页 > 其他分享 >二、locust --locust_demo

二、locust --locust_demo

时间:2024-12-11 10:57:19浏览次数:3  
标签:task -- demo self locust 执行 response

# *_*coding:utf-8 *_*
# @Author : zyb
# HttpUser :保持会话。FastHttpUser:高性能
from locust import TaskSet, task, HttpUser,FastHttpUser, between, constant_throughput, constant_pacing, constant
#argument_parser 这个可以修改执行参数的
from gevent._semaphore import Semaphore
all_locust_spawend = Semaphore()
all_locust_spawend.acquire()
#@seq_task(2)顺序执行,1-->10  1先执行
#依赖调用首要执行的函数执行后调用下面的方法
#self.schedule_task('依赖的task')
#定义任务集类
class proBehavior(TaskSet):
    def on_start(self):
        #添加集合点、登录等场景,只执行一次
        print('pro登录开始')
        # all_locust_spawend.wait(20)
    @task
    def my_task_one(self):
        url = '/pro/'
        #catch_response=True,允许请求标记为失败
        with self.client.get(url=url,name='pro采购信息', verify=False,timeout=10,catch_response=True) as response:
            if response.status_code==200:
                response.success()
            else:
                response.failure("Failed!")

    @task
    def my_task_two(self):
        url = '/users/'
        # catch_response=True,允许请求标记为失败
        with self.client.get(url=url, name='pro获取用户', verify=False, timeout=10, catch_response=True) as response:
            if response.status_code == 200:
                response.success()
            else:
                response.failure("Failed!")
    def on_stop(self):
        print('pro结束后每个用户执行一次')

#定义用户类
class WebsiteUser(FastHttpUser):
    tasks = [proBehavior]
    wait_time = between(1, 5)
    # 恒定吞吐量无论任务执行时间如何,任务将始终每10秒执行一次:
    # wait_time = constant_throughput(0.1)
if __name__ == "__main__":
    import os
    file_path = os.path.abspath(__file__)
    os.system(f"locust -f {file_path} --host=http://127.0.0.1:8000")
    os.system(f"locust -f --host=http://127.0.0.1:8000 --no-web -c 1000 -r 100 --run-time 1h30m --stop-timeout 99")

    #分布式
    #主机: --mastert
    #执行机: --slave --mastert-host=主机ip地址

    #命令行执行参数:
    #   -f xxx.py:执行文件
    #   --host=https://www.xx.com :执行域名
    #   --web-host=0.0.0.0 :web界面的域名
    #   --no-web:不使用web界面
    #   -c:用户数
    #   -r:每秒孵化率(每秒启动数)
    #   --expect-slaves:执行机数量
    #   --run-time:运行时间:(h:小时,m:分钟,s:秒)
    #   --csv=:保存执行结果

 

标签:task,--,demo,self,locust,执行,response
From: https://www.cnblogs.com/Mr-Simple001/p/18598874

相关文章

  • OpenAI:o1模型的安全评估报告
    ......
  • 一、locust --events常用
    #*_*coding:utf-8*_*#@Author:zybfromlocustimportTaskSet,task,FastHttpUser,between,events#定义任务集类@events.request.add_listenerdefon_request(request_type,name,context,response,exception,**kwargs):ifrequest_type=="GET"......
  • 中国ICD行业PLM市场研究报告
    导读:作为电子产业的工业粮食,ICD(集成电路设计)是一个高度专业化的领域,当前已广泛应用于计算机、通信、消费电子、汽车、医疗设备等多个行业。近年来,国家发布多项积极政策,助推行业快速发展来提升自主可控技术及国际市场竞争力,以解决“卡脖子”问题。而“绿色+智能”时代的到来,则......
  • AtCoder Beginner Contest 383
    AtCoderBeginnerContest383//前三题都很水,只能写写这种题骗自己了A-Humidifier1​ 直接模拟#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineinfINT32_MAX#definePIIpair<int,int>#defineendl'\n'inlinevoidsolve(){......
  • GitHub 正式收录 MoonBit 作为一门通用编程语言!核心用户突破三万!
    MoonBit 编程语言正式被Github收录!这对于一个仅有两年发展时间的编程语言来说是一种高度认可,期待未来由MoonBit编写的项目数量快速增长,早日成为首个由国人研发迈进10万➕用户的编程语言。最近用户数已经接近3万(数据统计来源综合VisualStudioMarketplac......
  • 五、locust -- 顺序执行 SequentialTaskSet
    #*_*coding:utf-8*_*#@Author:zybimportqueueq=queue.Queue()foriinrange(100):q.put(i)fromlocustimportFastHttpUser,task,between,SequentialTaskSetclassMySequentialTasks(SequentialTaskSet):@taskdeftask_one(self):......
  • 气动接头厂家前十
    气动元件德国FESTO德国Festo是世界领先的自动化技术供应商,也是世界气动行业第一家通过ISO9001认证的企业。FESTO的品牌质量包含许多方面,主要表现在智能化和易操作的产品设计、使用寿命长的产品、持久的效率优化。Festo公司不仅提供气动元件、组件和预装配的子系统,下设的工程部......
  • 如何通过看板方法提高团队协作?5个实用技巧!
    一、看板方法概述什么是看板方法看板方法源于丰田生产系统,是一种通过可视化方式管理任务和工作流程的强大工具。它将工作流程中的任务、进度、问题等直观地展示出来,帮助团队成员更好地理解和掌控工作。看板方法可以看作是将一个软件开发流程或其他工作流程类比为一段自......
  • springboot和spring对应版本的介绍
    SpringBoot、Spring、JDK版本对应关系:SpringBoot版本对应Spring版本JDK版本SpringBoot特性描述3.2.x6.1.x17,21增强的云本地支持,新的架构优化,支持Java213.1.x6.0.x17,20加入新的架构组件,性能优化增强,支持Java203.0.x6.0.x17+支持Java17,移......
  • 华为服务器填坑
    下载github大概率报错,解决办法是:检查和更改DNS你的系统可能正在使用无效或受限的DNS服务,建议切换到公共DNS:Linux/macOS:编辑/etc/resolv.conf文件,添加以下内容:nameserver8.8.8.8nameserver8.8.4.4测试DNS和主机解析在终端中运行以下命令,检查是否可以解析github......