前言:
locust2.0+教程:001 - 安装和目录结构
locust2.0+教程:002 - 快速使用
locust2.0+教程:003 - headless无界面模式
locust2.0+教程:004 - 等待时间和执行权重
locust2.0+教程:005 - on_start和on_stop
locust2.0+教程:006 - @tag标签装饰器

简介:单台机器不够模拟足够多的用户时,locust支持运行在多台机器中进行压力测试。master 模式中使用–master标记来启用一个 Locust 实例。这个实例将会运行你启动测试的 Locust 交互网站并查看实时统计数据。master 节点的机器自身不会模拟任何用户。必须使用 --worker 标记启动一台到多台 LocustWoker 机器节点,与标记 --master-host 一起使用(指出master机器的IP/hostName)。

常用的做法是在一台独立的机器中运行master,在woker机器中每个处理器内核运行一个woker实例。

注意:master 和 worker 之间必须是同一个局域网,并且locust版本一致,同时需要包含一样的locust 的测试文件。master 和每一台 woker 机器,在运行分布式测试时都必须要有 locust 的测试文件。

例如:

源码locust 的测试文件:

from locust import HttpUser, between, tag, taskclass QuickstartUser(HttpUser):wait_time = between(1, 2)@tag("tag1")@taskdef hello(self):self.client.get("/hello")@tag("tag2")@taskdef new(self):self.client.get("/new")@tag("tag3")@taskdef world(self):self.client.get("/world")if __name__ == '__main__':import osos.system("locust -f my_locust.py --web-host=172.23.32.1")

服务端sanic源码:main.py

from sanic import Sanic
import datetime
from sanic import responseapp = Sanic('myapp')@app.get('/hello')
def hello(request):time = str(datetime.datetime.now())[:-7]return response.json({"hello time": time})@app.get('/new')
def new(request):time = str(datetime.datetime.now())[:-7]return response.json({"new time": time})@app.get('/world')
def world(request):time = str(datetime.datetime.now())[:-7]return response.json({"world time": time})if __name__ == "__main__":app.run(host="10.0.8.9", port=8000, auto_reload=True)

启动master节点:注意这里的ip使用内网ip即可。

locust -f my_locust.py --master --web-host=172.23.32.1

启动worker:

locust -f my_locust.py --worker --master-host=172.23.32.1

启动worker后,每新增一个,web界面都会累加一个worker:

web执行压测脚本的情况:

服务端sanic的响应情况:

再次强调:
1、master 节点的机器自身不会模拟任何用户。
2、master 和 worker 之间必须是同一个局域网。
3、master 和 worker 安装的 locust 版本要一致。
4、同时需要包含一样的locust 的测试文件。

微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!

locust2.0+教程:007 - 分布式压测执行相关推荐

  1. 分布式压测系列之Jmeter4.0第一季

    1)Jmeter4.0介绍 jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,一开始是设计为web测试的软件,由于发展迅猛,现在可以压测许多协议比如:http.https.so ...

  2. 分布式压测系列之Jmeter4.0

    1)Jmeter4.0介绍 jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,一开始是设计为web测试的软件,由于发展迅猛,现在可以压测许多协议比如:http.https.so ...

  3. JMETER性能测试从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)

    1.简介 千呼万唤始出来,这一篇感觉写了好久,总想写的清楚明白简洁,但是还是洋洋洒洒写了好多,希望大家喜欢吧!本来打算将这一篇文章是放在性能测试中讲解和分享的,但是有的童鞋或者小伙伴们私下问的太多了, ...

  4. 【JMeter】Jmeter分布式压测教程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.原理 二.环境搭建 2.1 环境准备 2.2 slave机器配置 2.3 master机器配置 三.脚本及执行 3.1 ...

  5. jmeter 高并发测试报告_Windows下JMeter分布式压测环境搭建

    JMeter是Apache组织开发的开源项目,设计之初用于性能测试,同时它在实现对各种接口的调用方面做得比较成熟,因此,常被用于接口功能测试和性能测试.它能够很好的支持各种常见接口,如HTTP(S). ...

  6. Jeecgboot Feign、分布式压测、分布式任务调度

    分布式压测 需求场景 一些关键接口需要压测到很高的QPS需要设置更多的线程去模拟虚拟用户去请求接口假如需要模拟2万个用户因为jemeter使用java语言开发每创建一个线程jvm默认会为每个线程分配1 ...

  7. java模拟数据库压测_Jeecgboot Feign、分布式压测、分布式任务调度

    分布式压测 需求场景 一些关键接口需要压测到很高的QPS 需要设置更多的线程去模拟虚拟用户去请求接口 假如需要模拟2万个用户 因为jemeter使用java语言开发 每创建一个线程 jvm默认会为每个 ...

  8. 性能测试搭建Jmeter分布式压测与监控

    对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题:如果当前架构快达到性能瓶颈了,是横向扩容性能提升大 ...

  9. 搭建 Apache Jmeter 分布式压测与监控

    1.前言 对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题:如果当前架构快达到性能瓶颈了,是横向扩容 ...

最新文章

  1. 国家、数据、治理:排列组合文字游戏下的思考(附PPT下载)
  2. Java继承_Java面试题总结(一)
  3. ArcEngine判断要素(feature)是否为multipart feature及分解(炸开)代码
  4. LEETCODE- The First Day (C++)
  5. Range回源和视频拖拽播放
  6. python接入excel_使用python将excel数据导入数据库过程详解
  7. 【Docker】Asp.net core在docker容器中的端口问题
  8. KaliLinux-wafw00f简介及防火墙探测
  9. python中冒号报错_python中一些常见的错误_后端开发
  10. linux检测不到readline,在Linux中编译Lua时“找不到-lreadline”错误
  11. layer数据加载中,loading的显示
  12. 机器视觉之镜头景深概念与计算
  13. android7.1.2安装包,APK.1文件安装器下载-APK.1安装:微信APK安装器下载1.7 安卓版-西西软件下载...
  14. 如何在markdown中打出上标、下标和一些特殊符号 from jianshuer 这是朕的江山
  15. 【重构学习】02 何处重构?
  16. linux - glib使用
  17. Xcode自定义代码块
  18. 一篇文章解读人工智能的原理及产业升级机会
  19. clickhouse--Window Functions 窗口函数概念讲解及实际使用示例
  20. tshark命令行的使用

热门文章

  1. arcgis Server 站点创建报错 Server machine is not a local server machine
  2. 第10章 广域网技术概述
  3. 博思大型网络开票设置服务器无响应,博思开票操作步骤和常见问题.doc
  4. bdm导入mysql_linux下导入、导出mysql数据库命令
  5. 2015 android测试机型,2015年最成功的安卓手机是它,你同意吗?
  6. Java的集合框架思维导图
  7. C#游戏《坦克大战》--主程序
  8. 《Python Web开发实战》踩地雷记17/3/25
  9. php怎么判断平年和闰年,教你怎么判断平年和闰年
  10. 【现代机器人学】学习笔记二:刚体运动