基于python的压测工具_Python Locust性能测试简介及框架实践
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性能测试简介及框架实践相关推荐
- python locust 能压测数据库_python locust 性能测试:HOOKS钩子方法
为locust中不同类型的事件,提供的钩子方法: from locust import TaskSet, task, events, Locust from locust.clients import ...
- 基于python的压测工具_基于Python和SIPp的自动化压力测试系统设计和实现
信斌 王桂花 摘要:首先,分析了现有测试系统的不足,之后,介绍了软件组成和运行环境说明,最后,设计了基于Python和SIPp的自动化压力测试系统,并给出了相关代码.新的测试系统克服了现有测试系统的不 ...
- MeterSphere在开源压测工具JMeter上的分布式优化和实践
Apache JMeter是一款100%纯Java的开源软件,旨在加载测试功能行为和测量性能.它可以用来测试静态和动态资源的性能,例如静态文件.Java Servlet.CGI Scripts.Jav ...
- 压测工具之Locust
前言 说起压测,我就用过Jmeter,而且仅是简单使用,好用性能强大,最近接触了一个python提供的压测框架Locust,翻译为蝗虫,蝗虫过之,寸草不生,哈哈哈,我感觉很贴切. 首先,我们分析一 ...
- 不看我真的会很伤心【压测工具:提升系统性能的利器】,查看TPS,计算TPS,计算压测指标、压测名词解释、教大家如何压测
目录 前言 一.压测是什么? 二.为什么要压测? 三. 压测名词解释 1.压测类型解释 2.压测名词解释 3.机器性能指标解释 4.访问指标解释 四.如何计算压测指标 五.常见的压测工具 1.JMet ...
- jdk自带压测工具_压测工具JMeter的使用
最近接了压测的需求,顺带熟悉下压测工具的使用.这里推荐JMeter,安装快捷.请求方便,省了一大堆麻烦的事情.Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做 ...
- jmeter constant timer 如何添加_阿里巴巴在开源压测工具 JMeter 上的实践和优化
Apache JMeter 是 Apache 旗下的开源压测工具,创建于 1999 年初,迄今已有超过 20 年历史.JMeter 功能丰富,社区(用户群体)庞大,是主流开源压测工具之一. 性能测试通 ...
- locust压测工具:启动概述
locust压测工具启动概述 本文环境python3.5.2 locust版本0.9.0 locust概述 locust是一个简单易用.分布式的用户压测工具,并确定系统可以处理多少并发用户.在测试的时 ...
- locust压测工具【学习】
locust压测工具[学习] 1.安装:pip3 install locust 检验版本:locust -V 2.使用脚本: from locust import task, HttpUser, co ...
最新文章
- 美国国家科学院发布《材料研究前沿:十年调查》
- 适配器在JavaScript中的体现
- 指针数组,数组指针,指针函数,函数指针,二级指针详解
- 文章章节序号编排常识
- 【网络设计_RegNet】Designing Network Design Spaces_2020
- Python程序从给定的N个数字中找到最大倍数
- GIL对多线程的影响
- java怎么自增2_从头认识java-2.3 自增自减与关系操作符
- 有趣的算法(一):如何让有情人终成眷属
- fastdfs 配置文件详解
- 清华计算机科学与技术专业收分,2016年清华大学计算机科学与技术专业最低分是多少?...
- svn服务器搭建和使用_使用Gitea搭建自己的Git服务器
- 没有密码怎么撤销工作表保护
- 2020网赚模式不再亮眼,中小开发者如何在红海竞争中活下去?
- Consumer is not subscribed to any topics or assigned any partitions
- 最好的远程桌面破解软件frdpb_v2
- 毕业论文发表在什么期刊
- B2B2C多商户商城源码/分销商城/多用户商城系统/商家入驻商城系统
- Python入门学习哪个视频好?
- 工作的思考七:重视邮件
热门文章
- 设置VSCode隐藏菜单栏快捷键Alt+T(头部)、隐藏状态栏快捷键Alt+B(底部),为单屏开发者腾出更多编码空间
- Photoshop创造氛围照片合成视频教程含素材
- Blender+Substance Painter全流程制作真实的机器人学习教程
- NB-IOT: Anchor Carrier 锚点载波
- Linux 下获取本机所有网卡 以及 网卡对应ip 列表
- 一文带你看透 GDB 的 实现原理 -- ptrace真香
- 第四章 python的turtle库的运用
- MySQL闪退问题的解决
- Python CRC32 文件校验
- python-opencv 定位识别读表