locust

python做性能测试首选库,内部使用requests库,可以基本将接口自动化的代码搬过来,稍微修改即可。 内部使用协程的模式,单机并发远超jmeter。

第一步,安装:

pip install locust

第二步,使用:

创建一个locustfile.py文件(可以使用其他名字,其他名字启动需要加-f 加文件名称运行)。

from locust import HttpUser,task


class TestLocust(HttpUser):
    host = "https://blog.csdn.net"
    wait_time = 10
    #constant_throughput(10) 控制单用户的tps为10
    weight = 1
    @task
    def login(self):
        res = self.client.get("/nav/cloud-native?spm=1001.2100.3001.4477",verify=False)

如果不习惯使用命令行启动的话可以在main方法中写好调用:

if __name__ == "__main__":
    import os
    os.system("locust -f locustUtils.py --host=https://blog.csdn.net")#这样写可以直接运行文件,也可以命令调用文件

当存在多个task的时候,也可以这么写:

from locust import HttpUser,TaskSet,task,tag,constant


class TestLocust(TaskSet):

    @tag("smoke")#用例筛选 ,使用命令行   --tag smoker
    @task
    def login(self):
        data={
            "username":"qwe",
            "pswd":"123456",
        }
        res = self.client.post(url="/Login",data=data)
        try:
            print(res.json())
        except Exception as e:
            print(f"{e},{res}")

    @task
    def homepage(self):
        print("home")


class LoginUser(HttpUser):
    tasks = [TestLocust]
    host = "https://xxxx"#替换成你想测试的url
    wait_time = constant(2) #间隔两秒请求一次

self.clent相当于是requests模块的请求方式。

task注解,是表示运行是该方法运行权重,默认为1,数字越大执行次数占比越多。

host:项目的url

wait_time :等待时间,默认为0

weight:多个类同时运行时,设置类的运行权重,方便模拟真实场景

tag:筛选用例,使用 --tag smoke,此时仅会执行smoke标签对应的方法

运行的话:直接输入locust (模块命非locustfile的话,输入locust -f 文件名称即可),然后打开浏览器输入loacalhost:8089

在填写合适的用户总数和每秒的启动的虚拟用户数,start即可

运行后的页面,会显示各项数据,有点类似jmeter的聚合报告。

  补充:在做压测的时候,可以使用mimesis或者faker等做数据模拟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值