Locust性能测试

本文详细介绍了 Locust,一个基于Python的开源性能测试工具,强调其易于使用和分布式特性。通过实例展示了如何编写 Locust 脚本,包括任务集 TaskSet、首页接口、用户类 HttpLocust、登录接口的实现,以及参数化和分布式压测的步骤,帮助读者掌握 Locust 的性能测试应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python、Locust性能测试

Locust是什么?

Locust翻译成中文就是蝗虫的意思,就像蝗虫一样对系统发起成千上万的请求。以测试系统能否在高并发下正常运行 ,它是一款python的第三方开源的性能测试库,。完全基于poython开发,并采用了基于事件的处理机制。具有明显的特点

Locust特点

简单易学,可以快速开发性能测试脚本

开源免费

分布式执行,在多台机器上对系统发起持续请求

基于事件驱动 与其他常用工具不同的是 Locust采用的是协程的方式 可以达到更高数量级的并发

不支持监控 需要配合其它监控工具

Locust安装

Locust是python的第三方库 所以可以用pip下载

>>>pip install Locust

安装完成后 可以先压测一个接口 感受 一下

Locust性能测试脚本

这个脚本大致分为两个模块

  • ​ 任务集 需要继承TaskSet(就是把压测的接口,按照业务顺序编写)
  • ​ 用户类继承HttpLocust(配置用户请求相当于jmeter的线程组配置)

任务集TaskSet类

首页接口

首先 编写第一个继承自TaskSet类 先压测一个首页的接口

导入所需模块 由于headers每个接口都会用所以先定义成全局变量

TestIndex继承自TaskSet类 这个类里的方法就是要压测的接口了

getinex首页请求方法 client和requests的用法一样

​ 三个参数分别是: 请求接口的路径 headers name参数是说明一下这个是什么接口

@task采用可选的weight参数,该参数可用于指定任务的执行率 如果一个任务是2 另一个4 那么4的执行量是2的两倍

#导入locust相关模块
from locust import HttpLocust,TaskSet,task

#定义一个任务类 继承TaskSet
headers = {
   
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36"
}
class TestIndex(TaskSet):
    @task(2)
    def getindex(self):
         #client是Taskset类的方法 其实就相当于requests请求
         # @task加一个注解 声明是一个任务
        res= self.client.post("/index/info",headers=headers,name="打开首页")

然后TaskSet就算写完了 接下来就是用户类

用户类HttpLocust

  • ​ host:是请求url的域名

  • ​ Task_set:指向当前的用户类要执行那个任务

  • ​ between 指定等待时间 参数 :

  • ​ min_wait :最小等待时间

  • ​ max_wait:最大等待时间

class WebSite(HttpLocust):
    """该类 用于配置用户请求"""
    host = "http://127.0.0.1:5000"
    task_set = TestIndex
    wait_time = between(1,2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值