Locust 压力测试工具学习(一)
最近公司上了一套手机办公系统,上线用户必须要出一份压力测试的报告。传统情况下一般都会用 LoadRunner 来处理,但考虑自己正在学习 Python 运维;所以打算使用基于 Python 的产品来处理。
根据自己在网上搜索的情况,最终选定了 Locust 来进行压力测试工作。
官方文档
模块安装
安装 locustio 模块包
[root@centos7 ~]# pip install locustio
安装过程中遇到如下提醒信息:
DEPRECATION: Uninstalling a distutils installed project (requests) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
安装 ZeroMQ 模块包
If you intend to run Locust distributed across multiple processes/machines, we recommend you to also install pyzmq
[root@centos7 ~]# pip install pyzmq
模块调试
测试代码
Main.py 文件
from locust import HttpLocust, TaskSet, taskclass UserBehavior(TaskSet):def login(self):response = self.client.post("/portal/Login/enter.jsp", {"j_username": "admin", "j_password": "power11"})print response.status_code@task(1)def index(self):self.client.get("/portal/stPortal/default.jsp")@task(2)def profile(self):self.client.get("/portal/stPortal/default.jsp?DashboardID=0003&DashboardType=0")def on_start(self):self.login()class WebsiteUser(HttpLocust):task_set = UserBehaviormin_wait = 5000max_wait = 9000
启动程序
[root@centos7 ~]# locust -f Main.py --host=http://10.45.1.14
or
[root@centos7 ~]# locust -f Main.py --host=http://10.45.1.14 --no-web -c 3000 -r 20 --print-stats
测试结果及说明
分布式部署
分别在准备用于压测的多台服务器上面(建议测试时使用 windows 环境,正式工作时使用 linux 环境)安装 locust 模块;且将测试脚本上传至所有服务器上面
master
[root@centos7 LoadTesting]# locust -f LoadTestingApp.py --master
[2017-03-02 12:18:36,210] centos7/INFO/locust.main: Starting web monitor at *:8089
[2017-03-02 12:18:36,211] centos7/INFO/locust.main: Starting Locust 0.8a2
[2017-03-02 12:18:36,391] centos7/INFO/locust.runners: Client u'salt.node2_a15146db68a3ed9fe11096957f995f75' reported as ready. Currently 1 clients ready to swarm.
[2017-03-02 12:19:09,554] centos7/INFO/locust.runners: Client u'centos7_6df7ba727ddcbc3813682d4033778e52' reported as ready. Currently 2 clients ready to swarm.
slave
如果采用一机多进程模式,则不需要指定 master
地址
[root@centos7 LoadTesting]# locust -f LoadTestingApp.py --slave
[2017-03-02 12:19:09,550] centos7/INFO/locust.main: Starting Locust 0.8a2
如果采用多机分布式模式,则需要通过 --master-ip
参数指定 master
地址
[root@salt LoadTesting]# locust -f LoadTestingApp.py --slave --master-host=192.168.137.101
[2017-03-02 12:18:10,180] salt.node2/INFO/locust.main: Starting Locust 0.8a2
界面效果
推荐学习链接
- http://debugtalk.com/
Locust 压力测试工具学习(一)相关推荐
- 【总结】个人推荐的接口测试工具和接口性能/压力测试工具
一般接口有2种测试,现在很多是模糊了这个,但是如果细分.一般还要写<接口测试用例>和<接口性能测试用例>.同样,也分接口测试报告和接口性能测试报告. 接口的本质及其工作原理 接 ...
- 5款软件压力测试工具分享
一.什么是软件压力测试? 软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分.软件压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的 ...
- 开源的压力测试工具 PyLot
为什么80%的码农都做不了架构师?>>> 一.什么是Pylot: Pylot(www.pylot.org)是一款开源的用以测试 Web Service性能和扩展性的工具,它运行 ...
- ab测试工具 linux,超实用压力测试工具-ab工具
写在前面 在学习ab工具之前,我们需了解几个关于压力测试的概念吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内 ...
- [收藏]超实用压力测试工具-ab工具
本文转载自:https://www.jianshu.com/p/43d04d8baaf7 写在前面 在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second ...
- 压力测试工具-ab工具
写在前面 在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间 ...
- Linux压力测试工具—Siege命令
1.简介 Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重 ...
- 压力测试工具ab介绍
超实用压力测试工具-ab工具 了解几个关于压力测试的概念: 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处 ...
- html5 并发测试工具,超实用压力测试工具-ab工具
吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数.某个并发用户数下单位时间内能处理的最大请求数,称 ...
最新文章
- KITTI数据集上MaskRCNN检测效果示例
- python GIL :全局解释器
- 路径处理库pathlib使用详解
- 【嵌入式】C语言高级编程-内建函数(11)
- 安卓 页面跳转_挑战安卓和iOS!华为:鸿蒙覆盖1亿台设备,明年出鸿蒙手机
- coreseek mysql_centos+php+coreseek+sphinx+mysql之一coreseek安装篇
- win10重置进度条不动了_你好,我win10系统重置的进度条卡住了。一直在卡在17%近9个小时了。这要...
- win10引导安卓x86_手把手教你在电脑上安装安卓x86版+win10的双系统(只能在能用微软电脑系统的平板上安装)...
- 富爸爸穷爸爸的所有书籍
- 《Erlang/OTP并发编程实战》第八章 分布式 Erlang/OTP 简介
- Android Studio运行项目
- 反编译获取小程序源码
- 电子设计教程48:流水灯电路-完整电路设计
- 计算机的基本配件图片,计算机硬件的重要部件
- 《精通以太坊》预言机
- 海藻酸盐壳聚糖水凝胶微球载体/PLGA/nHA支架复合rhBMP-2壳聚糖纳米微球水凝胶的制备
- SVG互动排版公众号图文 『两次物体移动与展开长图』 模板代码
- android wifi精灵,全能WiFi精灵
- git版本回退(git reset、git revert、git stash)
- 2021-4-8学习笔记
热门文章
- asp.net大学生学科竞赛报名及管理系统
- kali 2.0修改gnome登陆界面背景图片
- 日系原画教程基础-张聪-专题视频课程
- 详解JavaScript中选取元素的所有方法
- 树莓派4b: 初级使用(Ubuntu21.10,Windows11写入SSD,远程连接,软路由搭建,webmin安装,自建Dockerhub,远程管理, 百度云盘,阿里云盘同步等)
- cs61a笔记-2020fall
- Mysql莫名其妙的错误,语法没错却报语法错误
- php使用redis在windows下配置方法
- ThinkPHP导入Excel文件到数据库的简单实现
- IDEA中java文件出现小黄色的J