【Locust性能测试】基本用法

目录

一、Locust优势

二、Locust脚本编写基本步骤

三、多任务业务场景权重分配

四、Locust集合点的设置

五、Locust分布式部署

六、图表参数分析


一、Locust优势

  在模拟有效并发方面,Locust的优势在于其摒弃了进程和线程,完全基于事件驱动,使用gevent提供的非阻塞IO和coroutine来实现网络层的并发请求,因此即使是单台压力机也能产生数千并发请求数;再加上对分布式运行的支持,理论上来说,Locust能在使用较少压力机的前提下支持极高并发数的测试。

  但是locust监控指标太少,后续还得通过Jmeter配合进行定位和调优。

二、Locust脚本编写基本步骤

1、导入类库: from locust import HttpUser, task, TaskSet

2、定义一个测试类UserBehavior,继承TaskSet,用装饰器@task指定测试任务方法。通过client属性来使用Python requests库的所有方法,包括GET/POST/HEAD/PUT/DELETE/PATCH等,调用方式也与requests完全一致。

3、定义一个客户端类WebSiteUser,继承HttpUser,其中还有几个属性要注意一下:

  1. host:被测系统的host,当在终端中启动locust时没有指定--host参数时可以指定

  2. tasks(1.0以下是task_set): tasks = [测试类名] ,指向一个TaskSet类的列表,TaskSet类定义了用户的任务信息,该属性为必填;

  3. min_wait/max_wait: 每个用户执行两个任务间隔时间的上下限(毫秒),具体数值在上下限中随机取值,若不指定则默认间隔时间固定为1秒;

4、通过命令行运行脚本:locust -f xxx.py

5、再通过网站访问http://localhost:8089/,设置并发数

6、想要停止运行,需要在命令端,按ctrl+c,网站端点击stop就能停止了。

举例:单任务

# 对登录功能进行单点性能测试(多组测试数据)
# 发送首页请求,通过locust进行性能测试
from locust import HttpUser, task, TaskSet


# 定义测试类:用户行为
class UserBehavior(TaskSet):
    # 指定测试任务
    @task
    def test_login(self):
        # 定义登录的测试数据
        for i in range(1, 101):
            username = "jerry" + str(i)
            logindata = {"login_info": username,
                         "password": "111111"}
            # 发送首页请求给服务器 post
            self.client.post("/index.php?controller=simple&action=login", data=logindata)


class WebSiteUse
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BetterFate!

爱你哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值