文章目录

  • 前言
  • 快速安装
  • 主要命令
  • 快速上手
  • 总结

前言

Locust is an easy-to-use, distributed, user load testing tool. It is intended for load-testing web sites (or other systems) and figuring out how many concurrent users a system can handle.

Locust是一个易于使用,分布式,用户负载测试工具。它用于负载测试web站点(或其他系统)并计算一个系统可以处理多少并发用户。

The idea is that during a test, a swarm of locusts will attack your website. The behavior of each locust (or test user if you will) is defined by you and the swarming process is monitored from a web UI in real-time. This will help you battle test and identify bottlenecks in your code before letting real users in.

在测试中,一群蝗虫会攻击你的网站。每个蝗虫(或者测试用户)的行为由您定义,集群过程由web UI实时监控。这将帮助您在让真正的用户进入之前进行测试并识别代码中的瓶颈。

Locust is completely event-based, and therefore it’s possible to support thousands of concurrent users on a single machine. In contrast to many other event-based apps it doesn’t use callbacks. Instead it uses light-weight processes, through gevent. Each locust swarming your site is actually running inside its own process (or greenlet, to be correct). This allows you to write very expressive scenarios in Python without complicating your code with callbacks.

Locust完全是基于事件的,因此在一台机器上支持数千个并发用户是可能的。与许多其他基于事件的应用程序不同,它不使用回调。相反,它通过gevent使用轻量级进程。每个聚集在你的站点上的蝗虫实际上是在它自己的进程中运行的(或者说是greenlet)。这允许您用Python编写非常有表现力的场景,而不用回调使代码复杂化。

帮助文档:https://docs.locust.io/en/stable/what-is-locust.html

快速安装

pip install locustio

主要命令

locust --helpUsage: locust [options] [LocustClass [LocustClass2 ... ]]Options:-h, --help            show this help message and exit-H HOST, --host=HOST  Host to load test in the following format:http://10.21.32.33--web-host=WEB_HOST   Host to bind the web interface to. Defaults to '' (allinterfaces)-P PORT, --port=PORT, --web-port=PORTPort on which to run web host-f LOCUSTFILE, --locustfile=LOCUSTFILEPython module file to import, e.g. '../other.py'.Default: locustfile--csv=CSVFILEBASE, --csv-base-name=CSVFILEBASEStore current request stats to files in CSV format.--master              Set locust to run in distributed mode with thisprocess as master--slave               Set locust to run in distributed mode with thisprocess as slave--master-host=MASTER_HOSTHost or IP address of locust master for distributedload testing. Only used when running with --slave.Defaults to 127.0.0.1.--master-port=MASTER_PORTThe port to connect to that is used by the locustmaster for distributed load testing. Only used whenrunning with --slave. Defaults to 5557. Note thatslaves will also connect to the master node on thisport + 1.--master-bind-host=MASTER_BIND_HOSTInterfaces (hostname, ip) that locust master shouldbind to. Only used when running with --master.Defaults to * (all available interfaces).--master-bind-port=MASTER_BIND_PORTPort that locust master should bind to. Only used whenrunning with --master. Defaults to 5557. Note thatLocust will also use this port + 1, so by default themaster node will bind to 5557 and 5558.--expect-slaves=EXPECT_SLAVESHow many slaves master should expect to connect beforestarting the test (only when --no-web used).--no-web              Disable the web interface, and instead start runningthe test immediately. Requires -c and -r to bespecified.-c NUM_CLIENTS, --clients=NUM_CLIENTSNumber of concurrent Locust users. Only used togetherwith --no-web-r HATCH_RATE, --hatch-rate=HATCH_RATEThe rate per second in which clients are spawned. Onlyused together with --no-web-t RUN_TIME, --run-time=RUN_TIMEStop after the specified amount of time, e.g. (300s,20m, 3h, 1h30m, etc.). Only used together with --no-web-L LOGLEVEL, --loglevel=LOGLEVELChoose between DEBUG/INFO/WARNING/ERROR/CRITICAL.Default is INFO.--logfile=LOGFILE     Path to log file. If not set, log will go tostdout/stderr--print-stats         Print stats in the console--only-summary        Only print the summary stats--no-reset-stats      [DEPRECATED] Do not reset statistics once hatching hasbeen completed. This is now the default behavior. See--reset-stats to disable--reset-stats         Reset statistics once hatching has been completed.Should be set on both master and slaves when runningin distributed mode-l, --list            Show list of possible locust classes and exit--show-task-ratio     print table of the locust classes' task executionratio--show-task-ratio-jsonprint json data of the locust classes' task executionratio-V, --version         show program's version number and exit

快速上手

第一步,编写一盒简单的脚本。

# -*- coding: utf-8 -*-
# @Time    : 2019/12/31 20:24
# @Author  : 7DGroup
# @File    : SevenLoust.py
# coding:utf-8from locust import HttpLocust, TaskSet, task# HttpLocust 这个类的作用是用来发送http请求的
# TaskSet   这个类是定义用户行为的,相当于loadrunnerhttp协议的脚本,jmeter里面的http请求一样,要去干嘛的
# task   这个task是一个装饰器,它用来把一个函数,装饰成一个任务,也可以指定他们的先后执行顺序class SevenLoust(TaskSet):# 自己定义的类,继承TaskSet,也就是这个类是实现咱们要去请求什么的'''打开7DGroup'''@task(1)  # @task#用task装饰器把这个函数装饰成一个咱们要执行的性能任务def open_7dtest(self):  # 这个函数里面定义的是咱们要具体做的操作# 定义requests的请求头header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"}r = self.client.get("/", headers=header, verify=False)  # 请求这个url里面的哪个路径,print(r.status_code)assert r.status_code == 200class websitUser(HttpLocust):# 这个类继承了HttpLocust,代表每个并发里面的每个用户task_set = SevenLoust  # 这个是每个用户都去干什么,指定了 SevenLoust 这个类,min_wait = 3000  # 单位毫秒max_wait = 6000  # 单位毫秒if __name__ == "__main__":import os# -f是指定一个python文件 后面跟上咱们刚才写的python文件# --host是你要访问哪个网站,后面跟网站的urlos.system("locust -f sevenLoust.py --host=http://www.7dtest.com/7DGroup/")

点击启动

打开浏览器显示:

参数说明:

  • Number of users to simulate 设置虚拟用户总数
  • Hatch rate (users spawned/second) 每秒启动虚拟用户数

第二步,点击 Start swarming开始运行性能测试。

主要参数说明:

  • Type:请求类型;
  • Name:请求路径;
  • requests:当前请求的数量;
  • fails:当前请求失败的数量;
  • Median:中间值,单位毫秒,一般服务器响应时间低于该值,而另一半高于该值;
  • Average:所有请求的平均响应时间,毫秒;
  • Min:请求的最小的服务器响应时间,毫秒;
  • Max:请求的最大服务器响应时间,毫秒;
  • Content Size:单个请求的大小,单位字节;
  • reqs/sec:每秒钟请求的个数。

第三步,查看报告显示。

吞吐量/每秒响应事务数(rps)实时统计

平均响应时间/平均事务数实时统计

虚拟用户数运行

第四步,停止点击按钮结束测试

总结

以上是简单上手示例,只要会点 Python 基础,就可以快速入门。

性能工具之 Locust 简单入门相关推荐

  1. 性能工具之 Gatling 快速入门

    文章目录 一.介绍 二. 下载 三.目录结构 四.脚本 五.快速执行 六.总结 一.介绍 Gatling 是一款基于 Scala 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分 ...

  2. 性能工具之locust工具get与post请求

    最近在学习 locust 性能工具,发现locust性能工具脚本需要python基础才能写脚本,但是对于性能测试人员来说 python 是基本功夫. 在 locust 中get脚本怎么写,为了方便直接 ...

  3. influxdb 客户端工具_性能工具之Jmeter小白入门系列之六

    Jmeter + Grafana + InfluxDB 性能平台搭建 环境:Linux环境 centos 6 重启防火墙:service iptables rstart 查看状态:service ip ...

  4. 性能工具之 JMeter 快速入门

    文章目录 一.前言 二.下载安装 三.目录介绍 四.快速使用 五.创建线程组 六.编写 http 请求 七.添加查看结果树 八.点击运行 九.显示结果 十.Summary RePort 展示 十一.参 ...

  5. 性能工具之 Gatling 开发环境搭建

    文章目录 一.前言 二.安装插件 三.新建工程 四.运行结果 五.总结 一.前言 编写 Gatling 脚本需要搭建脚本开发环境,下面演示使用 IDEA 开发环境搭建脚本开发环境. 二.安装插件 打开 ...

  6. 性能工具之 Goreplay 安装及入门使用

    性能工具之 Goreplay 安装及入门使用 1.Goreplay 介绍 Goreplay 是用 Golang 写的一个 HTTP 实时流量复制工具.功能更强大,支持流量的放大.缩小,频率限制,还支持 ...

  7. 性能工具之Taurus使用(入门篇)

    文章目录 一.前言 二.运行现有 JMeter 脚本 三.使用 YAML 创建 JMeter 脚本 四.小结 一.前言 在上篇文章中,我们详细介绍了 Taurus 的常规和 docker 安装,这篇我 ...

  8. java etl工具_一文带你入门ETL工具-datax的简单使用

    什么是ETL? ETL负责将分布的.异构数据源中的数据如关系数据.平面数据文件等抽取到临时中间层后进行清洗.转换.集成,最后加载到数据仓库或数据集市中,成为联机分析处理.数据挖掘的基础. ETL是数据 ...

  9. 【Locust】新版本locust使用入门到分布式,附带脚本模板,复制即用。

    介绍 Locust 是一种易于使用.可编写脚本且可扩展的性能测试工具.使用的'协程'方式,能够单机提供相对较大并发,并且存在可视化图形界面.也有无图形界面.分布式等多种运行方式.以下内容针对最新版本的 ...

最新文章

  1. Attention的本质:从Encoder-Decoder(Seq2Seq)理解
  2. 计算机系统中处理的图片可分为,第五章图像处理.doc
  3. vue修改Element的el-table样式
  4. 852 -山脉阵列中的峰值指数
  5. 文字处理技术:WORD也在不断变化中
  6. 正北坐标系和车辆坐标系下的heading转换
  7. [Android] 该文件包与具有同一名称的现有文件包存在冲突
  8. GlobalSign即将停止签发SHA1代码签名证书
  9. 解决VS编译中文报错 error C2001:常量中有换行符
  10. Python实现输出电话号码对应的字母组合
  11. SSO单点退出的方案
  12. 售价低10%-15% 专业家电网购“挑战”传统连锁(转载中国新闻网)
  13. virtualbox安装ubuntu14.04不能使用3d加速的问题
  14. 【大麦网抢票】演唱会门票还能这样抢?看这里!我用Python实现了大麦网原价秒杀门票功能
  15. dedecms织梦数值自动增加标签
  16. TI C2000系列 280049芯片SPI初始化需要注意的问题
  17. 国家生物信息中心开发DNA甲基化芯片数据标准化方法—GMQN
  18. ffmpeg解析视频并播放
  19. 内存超频会损坏内存吗 内存超频开不了机如何解决
  20. 智能车的转弯部分_周末,这群清华学子自己造智能车游“清华园”

热门文章

  1. 一文读懂机器学习,大数据/自然语言处理/算法全有了
  2. 对话框的动画弹出和动画消隐
  3. ChatGPT还在2G冲浪?新模型「youChat」:我已能够解说2022世界杯
  4. ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS
  5. 2022交易猫系统+带聊天/安心购/已验号模板+APP双端跳转
  6. OpenCV图像处理——把图像指定颜色变成透明
  7. 机器学习:PR曲线及F1 score
  8. 最大化最小值和最小化最大值
  9. excel用VBA插入列号
  10. 华为云开天aPaaS服务全球落地,聚力并蓄不断创新,共建生态网络