首页 > 其他分享 >压测工具 Locust

压测工具 Locust

时间:2022-08-20 20:35:57浏览次数:85  
标签:task 请求 压测 Locust locust 毫秒 UI 工具

一、认识Locust

定义

Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在自己的进程内运行)。

特点

①、不需要编写笨重的UI或者臃肿的XML代码,基于协程而不是回调,脚本编写简单易读;
②、有一个基于we简洁的HTML+JS的UI用户界面,可以实时显示相关的测试结果;
③、支持分布式测试,用户界面基于网络,因此具有跨平台且易于扩展的特点;
④、所有繁琐的I / O和协同程序都被委托给gevent,替代其他工具的局限性;

安装

pip install locustio

Locust有六个依赖的python模块,一并安装好。

  1. gevent:在Python中实现协程的第三方库。协程又叫微线程Corouine。使用gevent可以获取极高的并发能力;
  2. flask:Python的一个web开发框架,和django相当;
  3. requests:支持http/https访问的库;
  4. msgpack-python:一种快速、紧凑的二进制序列化格式,使用与类似json的数据;
  5. six:提供了一些简单的工具封装Python2和Python3 之间的差异;
  6. pyzmq:安装这个第三方库,可以把Locust运行在多个进程或多个机器(分布式)
    检测安装是否成功
(demo) root@ubuntu1804:/opt/other# locust --version
locust 2.5.0

二、使用

简单使用

编写测试脚本 locust_test.py

from locust import HttpUser, TaskSet, task

class UserBehavior(HttpUser):
    @task(1)
    def baidu_index(self):
        self.client.get("/")

WebsiteUser()类用于设置生成负载的基本属性:
属性 说明
task_set 指向定义了用户行为的类
min_wait 模拟负载的任务之间执行时的最小等待时间,单位为毫秒
max_wait 模拟负载的任务之间执行时的最大等待时间,单位为毫秒

UserBehavior()类用户设置测试具体方法:
UserBehavior继承HttpUser,拥有request等方法。
@task装饰该方法表示为用户行为,括号里面参数表示该行为的执行权重:数值越大,执行频率越高,不设置默认是1;
baidu_index 是具体的测试方法,可以设置GET、POST请求,可以设置请求携带信息,可以设置请求的结果处理。

(demo) root@ubuntu1804:/opt/other# locust -f locust_test.py
/root/.virtualenvs/demo/lib/python3.8/site-packages/locust/util/deprecation.py:14: DeprecationWarning: Usage of User.task_set is deprecated since version 1.0. Set the tasks attribute instead (tasks = [UserBehavior])
  warnings.warn(
[2021-11-29 11:36:29,324] ubuntu1804/INFO/locust.main: Starting web interface at http://0.0.0.0:8089 (accepting connections from all network interfaces)
[2021-11-29 11:36:29,356] ubuntu1804/INFO/locust.main: Starting Locust 2.5.0

UI界面

打开网页:http://localhost:8089,进入UI界面。

UI界面的菜单
● Statistics:类似于jmeter中Listen的聚合报告;
● Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟用户数;
● Failures:失败请求的展示界面;
● Exceptions:异常请求的展示界面;
● Download Data:测试数据下载模块, 提供三种类型的CSV格式的下载,分别是:Statistics、responsetime、exceptions;

统计信息:

Type:请求类型,即接口的请求方法;
Name:请求路径;
requests:当前已完成的请求数量;
fails:当前失败的数量;
Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒;
Average:平均响应时间,单位为毫秒;
Min:最小响应时间,单位为毫秒;
Max:最大响应时间,单位为毫秒;
Content Size:所有请求的数据量,单位为字节;
reqs/sec:每秒钟处理请求的数量,即QPS;

QPS图信息

官方文档:
https://docs.locust.io/en/stable/what-is-locust.html

三、进阶使用

控制RPS
wait_time 是请求的间隔时间
用户数 是开启的协程数
RPS = 间隔 x 用户数,要求的RPS可以根据这个公式调整。

class UserBehavior(HttpUser):
    wait_time = constant_throughput(0.5)

    @task(1)
    def get_ticket_user(self):
        url = "https://apiv3.shanbay.com/tickethub/ticket/user?code=2021-06-cet"
        cookies = {"auth_token": random.choice(token_list)}
        self.client.get(url, cookies=cookies)

标签:task,请求,压测,Locust,locust,毫秒,UI,工具
From: https://www.cnblogs.com/goldsunshine/p/16607745.html

相关文章

  • 压测工具 wrk
    wrk是一款针对Http协议的基准测试工具,它能够在单机多核CPU的条件下,使用系统自带的高性能I/O机制,如epoll,kqueue等,通过多线程和事件模式,对目标机器产生大量的负载。......
  • 压测工具对比
    压测术语负载对被测系统不断施加某种特征的压力,直到性能指标超过预期或某项资源使用达到饱和,以验证系统的处理极限,为系统性能调优提供依据;RPS每秒发送请求数/吞吐率RP......
  • 项目压测数据
    压测流程首先启动locust压测脚本然后启动bus查分模拟脚本收集数据压测结束,清理数据采集的数据为:请求相关数据,如响应时间,请求总数据量资源相关,请求时pod的数量......
  • FontLab(字体制作工具)mac/win
    FontLab8是一款专业的集成字体编辑器,可帮助您从头到尾创建字体,从简单的设计到复杂的项目,并为类型设计带来魔力。在FontLab中,所有功能均启用了颜色。绘制多色轮廓,引入颜......
  • 不常见但很有用的chrome调试工具使用方法
     https://www.cnblogs.com/xiaohuochai/p/6344886.html前面的话  对于chrome调试工具,常用的是elements标签、console标签、sources标签和network标签。但实际上,还......
  • MYSQL 工具之mysqladmin
    MYSQL工具之mysqladminmysqladmin是一个MySQL服务器命令行工具,它由DatabaseAdministrators执行一些基本的命令诸如更改root密码、监控mysql进程、重新加载权限、检......
  • php断点调试工具------NetBeans+Xdebug调试php方法(测试成功)
    @原文url:http://www.cnblogs.com/dcb3688/p/4608015.html@netbeans官方调试php代码说明:https://netbeans.org/kb/docs/php/debugging_zh_CN.html个人认为,对有有经验......
  • 【数据库】E-R图相关知识、绘制方法及工具推荐
    一、知识1、介绍E-R图也称实体-联系图(EntityRelationshipDiagram),提供了表示实体、属性和联系的方法,用来描述现实世界的概念模型。2、组成(1)实体(Entity)-矩形标识(2)属......
  • 关于压测服务器差点崩溃
    昨天试着将最近写的秒杀项目部署到服务器上做压力测试。在商品详情做压测一点问题没遇上,因为还没做优化所以当时吞吐量300我觉得还ok然后下单操作的压测就突然一下子请求......
  • PDF转图片的工具
    生活中经常用到PDF转换成图片使用比如发票的PDF文档和工作中的PDF文档,今天刚好有空借着空闲的时间做个PDF转换图片的工具分享给大家,操作简单,转换速度快免费。软件下载地......