locust小白学习笔记

Locust是一款基于协程的负载测试工具,适用于模拟大规模并发用户。本文介绍了Locust的基本原理、优势,如支持分布式执行和高并发。通过HttpLocust和TaskSet定义用户行为,演示了任务权重执行和顺序执行的实现方式。还讲解了参数化数据传递,并提供了测试结果分析和no web模式下的命令行运行方法。
摘要由CSDN通过智能技术生成

locust原理和优势

原理是协程并发

• 代码定义用户行为

• 支持分布式执行测试代码,能够模拟百万级别的用户量

• 使用协程执行请求,在单机上支持更高的并发量

快速上手样例

from locust import HttpLocust,TaskSet,task
import os
import queue
#测试任务类
class ImportTest(TaskSet): #编写用户行为,即操作什么
    @task
    def get_blog(self):
        header = {"token":"加在header的token","cookie":"加在header的cookie"}
        body = {
            "domain_name": "facebook.com",
            "ua": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
        }#body存放需要传递的参数
        req = self.client.post("/fbcc/user/single-import-user", headers=header, verify=False, data = body)
        #补上接口的地址,将header,数据等传入接口
        #self.client.get()这是get方法
        if req.status_code == 200:#接口的状态码
            print("success")
        else:
            print("fails")
#测试配置
class websitUser(HttpLocust): #定义用户,相当于一个线程组
    task_set = ImportTest
    min_wait = 3000
    max_wait = 6000

if __name__=="__main__":
    import os
    os.system("locust -f TestImport.py --host=https://api.one") #执行操作,这里填接口地址

HttpLocust

HttpLocust有client属性,用于建立与保持Http会话,封装了requests库,用法基本一致,指向的TaskSet可以直接使用client属性发起HTTP

HttpLocust类属性
task_set 指向一个TaskSet,定义每个用户的行为
weight 实例被挑选执行的权重,数值越大,执行频率越高(可定义多个子类,然后分权重)
min_wait 用户执行最短等待时间
max_wait 用户执行最长等待时间
stop_timeout 设置Locust多少秒后超时,None就是不超时
host web服务的测试,就是URL前缀的默认值,其他服务默认None

TaskSet

TaskSet用于定于用户的任务,然后HttpLocust的task_set就指向这些任务集合,然后根据权重来执行任务。

TaskSet类属性
@task() 任务装饰器,里面的数值越大,运行次数越多
on_start() 在所有task方法前执行
on_stop() 在所有task方法结束前执行
client locust继承了httplocust,可以直接使用client属性发起http请求

用户按任务权重执行

from locust import task,TaskSet,HttpLocust
import os
 
class MyTaskSet(TaskSet):
 
    def login(self):
        self.header = {"token":"加在header的token","cookie":"加在header的cookie"}
        path = "urlpath"
        da = {"userAccount": "suner001", "pwd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值