Locust(俗称 蝗虫), 一个轻量级的开源压测工具,用Python编写。使用 Python 代码定义用户行为,也可以仿真百万个用户;

Locust 非常简单易用,是分布式,用户负载测试工具。Locust 主要为网站或者其他系统进行负载测试,能测试出一个系统可以并发处理多少用户。

Locust 是完全基于时间的,因此单个机器支持几千个并发用户。相比其他许多事件驱动的应用,Locust 不使用回调,而是使用轻量级的处理方式 gevent。

安装(和一切python第三方包安装方式一致)

使用纯 Python 代码编写用户测试场景;不需要 UIs 或者 XML

分布式&可伸缩 - 支持成千上万的用户

基于 Web 的 UI

可以测试任意系统;虽然 Locust 是面向 Web 的,但是也可以测试其他任意的系统

1、编写vim locustfile.py

from locust import HttpLocust, TaskSet

#登陆操作def login(l):

l.client.post("/phpadmin/index.php", {"pma_username":"hugw", "pma_password":"redhat"})

#登出操作def logout(l):

l.client.post("/phpadmin/logout.php", {"db":"&", "token":"be2cb767a5829a398ef5a4c0dcafe504"})

#请求indexdef index(l):

l.client.get('/phpadmin/index.php')class UserBehavior(TaskSet):

tasks =

#执行登陆和登出

def on_start(self):

login(self) def on_stop(self):

logout(self)

class WebsiteUser(HttpLocust):

task_set = UserBehavior

min_wait = 3000

max_wait = 6000

启动压测程序

如果配置文件名字是locustfile.py,那么直接运行就好

启动成功会监听8089端口,

这里的 http://192.168.1.9 是要压测的网站域名

[root@slave locust]# locust -H http://192.168.1.9

[2018-04-12 19:41:37,086] slave/INFO/locust.main: Starting web monitor at *:8089

[2018-04-12 19:41:37,086] slave/INFO/locust.main: Starting Locust 0.8.1

配置压测集群(可选)

启动压测主程序,跟上面一样,后面加上参数 --master

启动成功会监听8089端口,

这里的 http://192.168.1.9 是要压测的网站域名

[root@slave locust]# locust -H http://192.168.1.9 --master

[2018-04-12 22:20:12,889] slave/INFO/locust.main: Starting web monitor at *:8089

[2018-04-12 22:20:12,891] slave/INFO/locust.main: Starting Locust 0.8.1

[2018-04-12 22:20:47,669] slave/INFO/locust.runners: Client

'k8s_cf9d5e7c4238f74363180e5b3dcb0ae4' reported as ready. Currently 1 clients ready to swarm.

[2018-04-12 22:21:02,066] slave/INFO/locust.runners: Sending hatch jobs to 1 ready clients

[2018-04-12 22:21:12,069] slave/INFO/locust.runners: Resetting stats

启动slave

先把 locustfile.py 分发到slave机器上,安装locust,然后启动

[root@k8s locust]# locust -H http://192.168.1.9 --slave --master-host=master_IP

[2018-04-12 02:21:48,045] k8s/INFO/locust.main: Starting Locust 0.8.1

[2018-04-12 02:22:02,487] k8s/INFO/locust.runners: Hatching and swarming 20 clients at the rate 2 clients/s...

[2018-04-12 02:22:12,509] k8s/INFO/locust.runners: All locusts hatched: WebsiteUser: 20

[2018-04-12 02:22:12,509] k8s/INFO/locust.runners: Resetting stats

然后登陆master压测就行了

2、开始压测

填写你要模拟的用户数量,这里填500用户,以每秒50数量增加,点击start 开始

查看压测请求情况

查看图表

基于python的压测工具_Python Locust性能测试简介及框架实践相关推荐

  1. python locust 能压测数据库_python locust 性能测试:HOOKS钩子方法

    为locust中不同类型的事件,提供的钩子方法: from locust import TaskSet, task, events, Locust from locust.clients import ...

  2. 基于python的压测工具_基于Python和SIPp的自动化压力测试系统设计和实现

    信斌 王桂花 摘要:首先,分析了现有测试系统的不足,之后,介绍了软件组成和运行环境说明,最后,设计了基于Python和SIPp的自动化压力测试系统,并给出了相关代码.新的测试系统克服了现有测试系统的不 ...

  3. MeterSphere在开源压测工具JMeter上的分布式优化和实践

    Apache JMeter是一款100%纯Java的开源软件,旨在加载测试功能行为和测量性能.它可以用来测试静态和动态资源的性能,例如静态文件.Java Servlet.CGI Scripts.Jav ...

  4. 压测工具之Locust

    前言   说起压测,我就用过Jmeter,而且仅是简单使用,好用性能强大,最近接触了一个python提供的压测框架Locust,翻译为蝗虫,蝗虫过之,寸草不生,哈哈哈,我感觉很贴切. 首先,我们分析一 ...

  5. 不看我真的会很伤心【压测工具:提升系统性能的利器】,查看TPS,计算TPS,计算压测指标、压测名词解释、教大家如何压测

    目录 前言 一.压测是什么? 二.为什么要压测? 三. 压测名词解释 1.压测类型解释 2.压测名词解释 3.机器性能指标解释 4.访问指标解释 四.如何计算压测指标 五.常见的压测工具 1.JMet ...

  6. jdk自带压测工具_压测工具JMeter的使用

    最近接了压测的需求,顺带熟悉下压测工具的使用.这里推荐JMeter,安装快捷.请求方便,省了一大堆麻烦的事情.Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做 ...

  7. jmeter constant timer 如何添加_阿里巴巴在开源压测工具 JMeter 上的实践和优化

    Apache JMeter 是 Apache 旗下的开源压测工具,创建于 1999 年初,迄今已有超过 20 年历史.JMeter 功能丰富,社区(用户群体)庞大,是主流开源压测工具之一. 性能测试通 ...

  8. locust压测工具:启动概述

    locust压测工具启动概述 本文环境python3.5.2 locust版本0.9.0 locust概述 locust是一个简单易用.分布式的用户压测工具,并确定系统可以处理多少并发用户.在测试的时 ...

  9. locust压测工具【学习】

    locust压测工具[学习] 1.安装:pip3 install locust 检验版本:locust -V 2.使用脚本: from locust import task, HttpUser, co ...

最新文章

  1. 美国国家科学院发布《材料研究前沿:十年调查》
  2. 适配器在JavaScript中的体现
  3. 指针数组,数组指针,指针函数,函数指针,二级指针详解
  4. 文章章节序号编排常识
  5. 【网络设计_RegNet】Designing Network Design Spaces_2020
  6. Python程序从给定的N个数字中找到最大倍数
  7. GIL对多线程的影响
  8. java怎么自增2_从头认识java-2.3 自增自减与关系操作符
  9. 有趣的算法(一):如何让有情人终成眷属
  10. fastdfs 配置文件详解
  11. 清华计算机科学与技术专业收分,2016年清华大学计算机科学与技术专业最低分是多少?...
  12. svn服务器搭建和使用_使用Gitea搭建自己的Git服务器
  13. 没有密码怎么撤销工作表保护
  14. 2020网赚模式不再亮眼,中小开发者如何在红海竞争中活下去?
  15. Consumer is not subscribed to any topics or assigned any partitions
  16. 最好的远程桌面破解软件frdpb_v2
  17. 毕业论文发表在什么期刊
  18. B2B2C多商户商城源码/分销商城/多用户商城系统/商家入驻商城系统
  19. Python入门学习哪个视频好?
  20. 工作的思考七:重视邮件

热门文章

  1. 设置VSCode隐藏菜单栏快捷键Alt+T(头部)、隐藏状态栏快捷键Alt+B(底部),为单屏开发者腾出更多编码空间
  2. Photoshop创造氛围照片合成视频教程含素材
  3. Blender+Substance Painter全流程制作真实的机器人学习教程
  4. NB-IOT: Anchor Carrier 锚点载波
  5. Linux 下获取本机所有网卡 以及 网卡对应ip 列表
  6. 一文带你看透 GDB 的 实现原理 -- ptrace真香
  7. 第四章 python的turtle库的运用
  8. MySQL闪退问题的解决
  9. Python CRC32 文件校验
  10. python-opencv 定位识别读表