一、locust是什么?

一个支持分布式架构的测试工具,能够很轻松的编写测试脚本,完成网站的并发性能测试。

官方网站(Locust - A modern load testing framework),里面有详细的使用介绍。

二、部署

(一)环境要求:Python 3.6以上,支持Win、Mac、Linux

(二)安装步骤(Win环境):

1.官网下载Pyhton的最新版本,完成安装。

2.使用  pip3 install locust  安装。如果在命令行提示无此命令,请检查Python的环境变量设置。将 Python/ 和 Python/Scripts/ 添加到 Path 变量下,或者直接到Python的Scrips/目录下开个命令行窗口运行。

C:\> pip3 install locustpip3 install locust

3.在命令行输入  locust -V检查版本,出来版本说明安装成功。

C:\>locust -V
locust 2.2.1

参数输入错误的情况下会提示找不到 locustfile ,也是已经安装好了。

C:\>locust
Could not find any locustfile! Ensure file ends in '.py' and see --help for available options.

三、测试

(一)测试脚本编写

locust的测试脚本,以官方的HelloWorld为例。可以参考Writing a locustfile — Locust 2.2.1 documentation。

import time
from locust import HttpUser, task, betweenfrom locust import events
from locust.runners import MasterRunner, WorkerRunnerclass QuickstartUser(HttpUser):wait_time = between(1, 5)@taskdef hello_world(self):self.client.get("/hello")self.client.get("/world")@task(3)def view_items(self):for item_id in range(10):self.client.get(f"/item?id={item_id}", name="/item")time.sleep(1)def on_start(self):self.client.post("/login", json={"username":"foo", "password":"bar"})

QuickstartUser类定义了网站的访问行为。

                @task:定义网站的访问操作,后面的 () 内可以设置权重占比。

例如网站有80%的比例是GET方式访问,20%的比例是POST,就可以分别写成@task(80)和@task(20)。

                self.client.get(""):HTTP的请求方式,支持GET、POST、PUT等等。(“”)里写网页的路径,需要注意的是,如果这里加了“/”,在写HOST时结尾就不要加“/”,否则会导致目录错误,影响测试结果。

                分布式测试

from locust import events
from locust.runners import MasterRunner, WorkerRunner

在做分布式测试时需要增加上述两行内容。

(二)运行测试脚本

1.单机运行

locust -f 指定测试脚本。

C:\> locust -f .\helloworld.py
[2021-09-07 09:47:16,734] DESKTOP-9R9O2EC/INFO/locust.main: Starting web interface at http://0.0.0.0:8089 (accepting connections from all network interfaces)
[2021-09-07 09:47:16,851] DESKTOP-9R9O2EC/INFO/locust.main: Starting Locust 2.2.1

出现上述字段说明locust已经正常运行,在浏览器输入http://localhost:8089打开UI界面。

不知道是什么原因,只有localhost能打开,其他的无论是具体ip还是127.0.0.1都不行。

指定最大用户量1000,用户每秒增长100个,测试域名要带协议,注意结尾有没有反斜杠"/"。点击开始以后开始按照测试脚本进行压测。

测试结果也可以展示RPS,提供数据图,并能够到处测试报表。

2.分布式测试

分为master和worker角色,可以在多台worker上分布式测试,结果汇总到master上。注意测试脚本需要一致。

master角色:

C:\> locust -f .\helloworld.py --master

worker角色:

 C:\> locust -f .\helloworld.py --worker --master-host=x.x.x.x

x.x.x.x为master的ip地址,默认端口是5557,可以通过--master-port=xx指定其他端口。

locust测试工具相关推荐

  1. 开源网络负载测试工具-基准测试

    译者注:在上一篇<开源网络负载测试工具测评>文章中,我以我微薄的翻译功底向大家展现了Ragnar Lönn先生对当前主流开源负载测试工具的一些看法.Ragnar Lönn先生主要以测试工具 ...

  2. mysql的ab测试工具_轻量级性能测试工具ab / wrk / locust 分析 对比

    很早前,介绍过4款压力测试工具 今天再推荐下两款更强大的. 1. ab 是目前最常见的压力测试工具.其典型用法如下: shell> ab -k -n 1000 -c 10 -t 100 http ...

  3. 2020测试工具索引

    初次发布文章时,共收集435个工具! 这些测试工具均为博主人肉爬虫出来的,数据来源于: 百度.Google 各大博客.门户网站.论坛 个人测试经验 在整理过程中,我会尽量去官网找到官方对该工具的描述, ...

  4. 10大主流压力测试工具

    市面上流行的压力/负载/性能测试工具多是来自国外,近年来国内的性能测试工具也如雨后春笋崛起.同时由于开发的目的和侧重点不同,其功能也有很大差异,下面就为您简单介绍10款目前最常见的测试产品. 1.ky ...

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

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

  6. python接口压测1000并发_测试工具:黑羽压测

    前言 很多朋友对性能测试有种深深的误解:认为 只要学会 使用一款 性能测试工具,点点界面,配配数据,就能做好性能测试了. 不是这样的!! 性能测试 通常 要真正做好 很不容易. 它需要测试人员: 有产 ...

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

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

  8. 测试工具汇总-升级版

    **接口测试 发包工具** postman接口请求模拟:用例管理:环境管理:客户端curl接口请求模拟:终端fiddlerWindows端抓包客户端CharlesMac端抓包客户端wireshark抓 ...

  9. 一款丧心病狂的API测试工具:Apifox!

    你好,我是测试开发工程师--凡哥.欢迎和我交流测试领域相关问题(测试入门.技术.python交流都可以) 我们平时在做接口测试的时候,对于一些常用的接口测试工具的使用应该都非常熟悉了: 接口文档:Sw ...

最新文章

  1. iis7.5 php 404.17,win2008 r2中IIS7.5及以上设置404错误页面的正确方法
  2. 翻转棋游戏c语言讲解,有没有人懂黑白棋(翻转棋)的核心算法
  3. gitee 从 拉取新分支到本地_Hexo博客详细教程(一)| 建立本地站点
  4. 80端口请求太多超时 php_apmserver 80端口老是被占用问题解决
  5. java 聚合模式_java 聚合和组合的区别?
  6. TCP/IP面试常考题目
  7. Struts2学习第4天--拦截器
  8. Linux ubuntu centos 文件目录是什么意思
  9. 050、动手实验:使用 jstat 摸清线上系统的JVM运行状况
  10. 20款最好的jQuery文件上传插件
  11. 基于Zpl实现斑马打印机打印条码
  12. 看计划排产软件在纺织业的应用
  13. 博士申请 | 卡耐基梅隆大学陈贝迪老师课题组招收机器学习方向博士生
  14. 数据挖掘与数据分析项目链家租房数据(三)进一步探索与归纳
  15. 在线XML转YAML工具
  16. 猫咪视频_猫视频如何进入您的手机
  17. Linux驱动——LED驱动的编写与实验
  18. dell屏幕亮度调节不了_Win10屏幕亮度调不了怎么办-百度经验
  19. 水墨风格化matlab,调色进阶篇:如何调出浓水墨风格?
  20. JavaSE基础——常用类1

热门文章

  1. 关于绿色高山茶叶的营销方案
  2. kvm与openvz等不同的虚拟化技术有什么区别
  3. MultiSim电路仿真之受控源的使用
  4. latex 字体大小
  5. video标签设置不显示播放条
  6. UEFI无法进入WIN10的系统?BIOS找不到ssd硬盘?reboot and select proper boot device的另一种解决思路
  7. 小白系列之通俗易懂的Hadoop
  8. 强制卸载软件测试工资,软件安装卸载测试
  9. 取名居:牛宝宝起名必读!
  10. 关于计算机这个行业,中级技工证书有什么意义吗?