最近公司上了一套手机办公系统,上线用户必须要出一份压力测试的报告。传统情况下一般都会用 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 压力测试工具学习(一)相关推荐

  1. 【总结】个人推荐的接口测试工具和接口性能/压力测试工具

    一般接口有2种测试,现在很多是模糊了这个,但是如果细分.一般还要写<接口测试用例>和<接口性能测试用例>.同样,也分接口测试报告和接口性能测试报告. 接口的本质及其工作原理 接 ...

  2. 5款软件压力测试工具分享

    一.什么是软件压力测试? 软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分.软件压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的 ...

  3. 开源的压力测试工具 PyLot

    为什么80%的码农都做不了架构师?>>>    一.什么是Pylot: Pylot(www.pylot.org)是一款开源的用以测试 Web Service性能和扩展性的工具,它运行 ...

  4. ab测试工具 linux,超实用压力测试工具-ab工具

    写在前面 在学习ab工具之前,我们需了解几个关于压力测试的概念吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内 ...

  5. [收藏]超实用压力测试工具-ab工具

    本文转载自:https://www.jianshu.com/p/43d04d8baaf7 写在前面 在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second ...

  6. 压力测试工具-ab工具

    写在前面 在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间 ...

  7. Linux压力测试工具—Siege命令

    1.简介 Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重 ...

  8. 压力测试工具ab介绍

    超实用压力测试工具-ab工具 了解几个关于压力测试的概念: 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处 ...

  9. html5 并发测试工具,超实用压力测试工具-ab工具

    吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数.某个并发用户数下单位时间内能处理的最大请求数,称 ...

最新文章

  1. KITTI数据集上MaskRCNN检测效果示例
  2. python GIL :全局解释器
  3. 路径处理库pathlib使用详解
  4. 【嵌入式】C语言高级编程-内建函数(11)
  5. 安卓 页面跳转_挑战安卓和iOS!华为:鸿蒙覆盖1亿台设备,明年出鸿蒙手机
  6. coreseek mysql_centos+php+coreseek+sphinx+mysql之一coreseek安装篇
  7. win10重置进度条不动了_你好,我win10系统重置的进度条卡住了。一直在卡在17%近9个小时了。这要...
  8. win10引导安卓x86_手把手教你在电脑上安装安卓x86版+win10的双系统(只能在能用微软电脑系统的平板上安装)...
  9. 富爸爸穷爸爸的所有书籍
  10. 《Erlang/OTP并发编程实战》第八章 分布式 Erlang/OTP 简介
  11. Android Studio运行项目
  12. 反编译获取小程序源码
  13. 电子设计教程48:流水灯电路-完整电路设计
  14. 计算机的基本配件图片,计算机硬件的重要部件
  15. 《精通以太坊》预言机
  16. 海藻酸盐壳聚糖水凝胶微球载体/PLGA/nHA支架复合rhBMP-2壳聚糖纳米微球水凝胶的制备
  17. SVG互动排版公众号图文 『两次物体移动与展开长图』 模板代码
  18. android wifi精灵,全能WiFi精灵
  19. git版本回退(git reset、git revert、git stash)
  20. 2021-4-8学习笔记

热门文章

  1. asp.net大学生学科竞赛报名及管理系统
  2. kali 2.0修改gnome登陆界面背景图片
  3. 日系原画教程基础-张聪-专题视频课程
  4. 详解JavaScript中选取元素的所有方法
  5. 树莓派4b: 初级使用(Ubuntu21.10,Windows11写入SSD,远程连接,软路由搭建,webmin安装,自建Dockerhub,远程管理, 百度云盘,阿里云盘同步等)
  6. cs61a笔记-2020fall
  7. Mysql莫名其妙的错误,语法没错却报语法错误
  8. php使用redis在windows下配置方法
  9. ThinkPHP导入Excel文件到数据库的简单实现
  10. IDEA中java文件出现小黄色的J