locust压测工具环境搭建(Linux、Mac)

news2024/11/4 22:12:52

目录

使用anaconda搭建locust环境

1、anaconda安装python环境(推荐)

2、从conda安装locust

使用python虚拟环境搭建locust环境

1、直接安装python环境

2、从python环境安装locust

从依赖文件中安装locust环境

1、从anaconda安装locust

2、从python虚拟环境locust环境

常用命令

后台运行locust命令

命令解析


使用anaconda搭建locust环境

python官网:Welcome to Python.org

locust官网:Locust - A modern load testing framework

anaconda官网:Anaconda | The Operating System for AI

1、anaconda安装python环境(推荐)

使用conda安装python环境,有诸多优势
1、不同环境底层SSL库相互隔离,python环境也相互隔离
2、可以快速在一个环境内,切换不同python版本
3、创建/删除环境速度快

tips:如果需要在公司使用anaconda,需要使用公司商业版授权码激活

1、Linux安装anaconda(在线安装)

从官网下载安装包

更多版本可以参考官网文档:Anaconda官网

我这里下载是最新版2023.08

wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh

默认安装路径/root/anaconda3,如果需要指定路径加,-p 安装路径

正常安装一直回车确认,然后一路回车就行

bash Anaconda3-2023.07-2-Linux-x86_64.sh

然后重新登陆shell

查看版本号,正确返回版本号,说明conda安装成功

conda -V

2、从conda安装python环境

推荐安装python3.7以上版本,例如安装python3..11版本

使用conda安装的环境,都是虚拟环境,每个环境对应包的都是独立的

# 使用conda创建一个名称为locust的环境,并且下载python3.11包
conda create -n locust python=3.11
# 查看创建环境是否成功
conda env list

2、从conda安装locust

# 从conda激活lcoust环境
conda activate locust
# 使用pip下载locust包
pip3 install locust
# 或者可以使用conda下载locust包,先设置conda-forge源,官方源只有locust1.x版本的
conda config --append channels conda-forge
conda install locust
# 查看包是否下载成功,返回版本号说明下载成功
locust -V

使用python虚拟环境搭建locust环境

直接在本地环境安装python环境,需要注意几点

1、如果多人同时使用一台压力机,尽量不改变原来环境变量,加python路径时,先加PATH路径,再加自己安装的python路径,用小版本号区分

2、使用python环境时,请使用虚拟环境,切勿使用本地真实环境

1、直接安装python环境

1、下载源文件

wget https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tar.xz

解压源文件

tar -xvf Python-3.11.2.tar.xz

2、下载依赖包

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel=

3、编译安装

./configure --prefix=/usr/local/python3.11

make && make install

4、安装完成后,查看python版本

python3.11 -verison
5、配置环境变量

编辑/etc/profile文件,在末尾加上

export PATH=$PATH:/usr/local/python3.11/bin

刷新环境变量

source /etc/profile

2、从python环境安装locust

虚拟环境安装locust

# 在当前路径创建名称为locust的虚拟环境
python -m venv locust
# 激活创建的虚拟环境
source locust/bin/activate
# 使用pip安装locust
pip3 install locust
# 查看包是否下载成功,返回版本号说明下载成功
locust -V
从本地真实环境安装locust
# 使用pip安装locust

pip3 install locust

#验证locust版本号

locust -V

从依赖文件中安装locust环境

1、先解压压缩文件,进入文件目录

2、找到conda或者pip依赖文件

3、使用命令安装依赖环境

1、从anaconda安装locust

# conda从yml文件安装依赖环境
conda env create -f locust_environment.yml

# 激活环境
conda activate locust

2、从python虚拟环境locust环境

# 创建虚拟环境
python -m venv locust
# 安装依赖包
pip install -r requirements.txt
# 激活环境
source locust/bin/activate

常用命令

后台运行locust命令

nohup locust -f locustfile.py --host www.baidu.com --headless -u 10 -r 5 --tag test --csv=report/test --logfile=log.log &

命令解析

命令行

环境

配置文件

描述

-f,--locustfile

LOCUST_LOCUSTFILE

locustfile

要导入的 Python 模块,例如“../other_test.py”。一个 .py 文件、多个逗号分隔的 .py 文件或一个包目录。默认为“locustfile”。

-H,--host

LOCUST_HOST

host

主机加载测试格式如下: http: //10.21.32.33

-u,--users

LOCUST_USERS

users

Locust 并发用户的峰值数量。主要与-headless 或-autostart 一起使用。可以在测试期间通过键盘输入 w、W(生成 1、10 个用户)和 s、S(停止 1、10 个用户)进行更改

-r,--spawn-rate

LOCUST_SPAWN_RATE

spawn-rate

产生用户的速率(每秒用户数)。主要与--headless或--autostart一起使用

-t,--run-time

LOCUST_RUN_TIME

run-time

在指定时间后停止,例如(300s、20m、3h、1h30m 等)。仅与 –headless 或 –autostart 一起使用。默认永远运行。

--web-host

LOCUST_WEB_HOST

web-host

将 Web 界面绑定到的主机。默认为“*”(所有接口)

--web-port,-P

LOCUST_WEB_PORT

web-port

运行 Web 主机的端口

--headless

LOCUST_HEADLESS

headless

禁用Web界面,并立即开始测试。使用 -u 和 -t 控制用户数和运行时间

--autostart

LOCUST_AUTOSTART

autostart

立即开始测试(如 –headless,但不禁用 Web UI)

--autoquit

LOCUST_AUTOQUIT

autoquit

运行完成 X 秒后完全退出 Locust。仅与-autostart 一起使用。默认情况下,Locust 会保持运行状态,直到您使用 CTRL+C 将其关闭为止

--web-auth

LOCUST_WEB_AUTH

web-auth

打开 Web 界面的基本身份验证。应按以下格式提供:用户名:密码

--tls-cert

LOCUST_TLS_CERT

tls-cert

用于通过 HTTPS 提供服务的 TLS 证书的可选路径

--tls-key

LOCUST_TLS_KEY

tls-key

用于通过 HTTPS 提供服务的 TLS 私钥的可选路径

--class-picker

LOCUST_USERCLASS_PICKER

class-picker

启用 Web 界面中的选择框以从所有可用的用户类和形状类中进行选择

--master

LOCUST_MODE_MASTER

master

设置locust以分布式模式运行,并以此进程为主

--master-bind-host

LOCUST_MASTER_BIND_HOST

master-bind-host

Locust Master 应绑定到的接口(主机名、IP)。仅在与 –master 一起运行时使用。默认为 *(所有可用接口)。

--master-bind-port

LOCUST_MASTER_BIND_PORT

master-bind-port

Locust Master 应该绑定到的端口。仅在与 –master 一起运行时使用。默认为 5557。

--expect-workers

LOCUST_EXPECT_WORKERS

expect-workers

在开始测试之前,master 应该期望连接多少个工人(仅当使用 –headless/autostart 时)。

--expect-workers-max-wait

LOCUST_EXPECT_WORKERS_MAX_WAIT

expect-workers-max-wait

master应该等待worker连接多久才放弃。默认永远等待

--worker

LOCUST_MODE_WORKER

worker

设置 Locust 以分布式模式运行,并将此进程作为工作进程

--master-host

LOCUST_MASTER_NODE_HOST

master-host

用于分布式负载测试的 Locust Master 的主机或 IP 地址。仅在与 –worker 一起运行时使用。默认为 127.0.0.1。

--master-port

LOCUST_MASTER_NODE_PORT

master-port

Locust Master 使用连接的端口进行分布式负载测试。仅在与 –worker 一起运行时使用。默认为 5557。

-T,--tags

LOCUST_TAGS

tags

要包含在测试中的标签列表,因此只有具有任何匹配标签的任务才会被执行

-E,--exclude-tags

LOCUST_EXCLUDE_TAGS

exclude-tags

要从测试中排除的标签列表,因此只有没有匹配标签的任务才会被执行

--csv

LOCUST_CSV

csv

将当前请求统计信息以 CSV 格式存储到文件中。设置此选项将生成三个文件:[CSV_PREFIX]_stats.csv、[CSV_PREFIX]_stats_history.csv 和 [CSV_PREFIX]_failures.csv

--csv-full-history

LOCUST_CSV_FULL_HISTORY

csv-full-history

将每个统计条目以 CSV 格式存储到 _stats_history.csv 文件中。您还必须指定“–csv”参数才能启用此功能。

--print-stats

LOCUST_PRINT_STATS

print-stats

在 UI 运行中启用请求统计信息的定期打印

--only-summary

LOCUST_ONLY_SUMMARY

only-summary

在 –headless 运行期间禁用定期打印请求统计信息

--reset-stats

LOCUST_RESET_STATS

reset-stats

生成完成后重置统计数据。在分布式模式下运行时,应在 master 和workers 上设置

--html

LOCUST_HTML

html

将 HTML 报告存储到指定的文件路径

--skip-log-setup

LOCUST_SKIP_LOG_SETUP

skip-log-setup

禁用 Locust 的日志记录设置。相反,配置由 Locust 测试或 Python 默认值提供。

--loglevel,-L

LOCUST_LOGLEVEL

loglevel

在调试/信息/警告/错误/严重之间进行选择。默认为信息。

--logfile

LOCUST_LOGFILE

logfile

日志文件的路径。如果未设置,日志将转到 stderr

--exit-code-on-error

LOCUST_EXIT_CODE_ON_ERROR

exit-code-on-error

设置测试结果包含任何失败或错误时要使用的进程退出代码

-s,--stop-timeout

LOCUST_STOP_TIMEOUT

stop-timeout

退出之前等待模拟用户完成任何正在执行的任务的秒数。默认是立即终止。仅当运行 Locust 分布式时,master 进程才需要指定该参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2232119.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPU 学习笔记四:GPU多卡通信(基于nccl和hccl)

文章目录 一、前沿1.1 背景回顾1.2 XCCL在AI通信架构中的位置和作用 二、英伟达GPU通信 nccl2.1 NCCL简介2.2 通信模式2.2.1 通信模式分类2.2.2 通信模式分析2.2.3 通信nccl编程实例 2.3 NCCL通信算法2.3.1 环形算法 ring algorithm2.3.2 树形算法 tree algorithm 防止遗忘和后…

最新PHP校园源码系统开发(多客社区校园系统源码全套APP源码附搭建教程)

最新PHP校园源码系统开发、多客社区校园系统源码以及全套APP源码附搭建教程的需求 一、最新PHP校园源码系统开发 技术栈选择: 后端:PHP(建议使用PHP 7.2或更高版本)数据库:MySQL(建议使用MySQL 5.6或更高版…

Netty 组件介绍 - ByteBuf

直接内存&堆内存 ByteBuf buffer ByteBufAllocator.DEFAULT.heapBuffer(10);ByteBuf byteBuf ByteBufAllocator.DEFAULT.directBuffer(10); 组成 ByteBuf维护了两个不同的索引,一个用于读取,一个用于写入。 写入 内存回收 堆内存使用的是JVM内…

Java项目实战II基于Java+Spring Boot+MySQL的高校办公室行政事务管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在高等教育…

word mathml 创建粗体字母快捷键

在 mathml 中达到latex中 \mathbf{A} 的效果 由于word本身不支持这个命令,所以打算用快捷键实现 快捷键的功能是加粗光标前一个字目 1. Alt F8 打开宏,如果打不开可以尝试 Alt Fn F8 2. 输入 BoldPreviousCharacter 新建宏: Sub Bold…

redis实现分布式锁,go实现完整code

Redis分布式锁 Redis 分布式锁是一种使用 Redis 数据库实现分布式锁的方式,可以保证在分布式环境中同一时间只有一个实例可以访问共享资源。 实现机制 以下是实现其加锁步骤: 获取锁 在 Redis 中,一个相同的key代表一把锁。是否拥有这把锁&…

flink 自定义kudu connector中使用Metrics计数平均吞吐量,并推送到自定义kafkaReporter

文章目录 前言1. Registering metrics2. Metrics 的类型2.1 counter2.2 Gauge2.3 Histogram2.4 meter 3. 指标划分3.1 指标所属的范围3.2 默认所属 4. 自定义kudu connector中使用Metrics4.1 sink算子继承RichFunction4.2 注册指标4.3 计数逻辑4.4 自定义Reporter,推…

柯桥日语培训|N1常考语法:~(よ)うが/(よ)うと——“无论……都……”

~(よ)うが/(よ)うと 接续:動意向形/イ形→かろう/名、ナ形→だろう・であろう+が/と 说明:表示假定条件的逆接,无论前项如…

一个基于Zookeeper+Dubbo3+SpringBoot3的完整微服务调用程序示例代码

一、关于 Dubbo3 的一些优化改进介绍 Dubbo3 的官方文档地址: https://cn.dubbo.apache.org/zh-cn/overview/what/overview/ 其针对一些问题进行了优化和改变。个人整理3个小的方面: 1. 在服务注册方面使用 DubboService 注解,不再使用 Servi…

电能表预付费系统-标准传输规范(STS)(33)

6.5.4.4 Key rotation process 按键旋转过程 The entire key is rotated one bit position to the left as illustrated in Figure 15.整个密钥向左旋转一个位,如图15所示。 6.5.4.5 Worked example to generate TokenData for a TransferCredit token using the S…

时序数据库是什么:概念、特点与分类简析

时序数据与时序数据库的“保姆级”科普! 作为将数据价值转化为产能能效的“核心大脑”,数据库的发展依然处于加速期,面向不同数据类型的数据库类型也在不断增加。 在众多细分领域数据库类型中,伴随制造业数字化转型的行业趋势和多…

【创建型】单例模式

单例模式使用的场景:需要频繁的进行创建和销毁的对象、创建对象时耗时过多或耗费资源过多(即:重量级对象),但又经常用到的对象、工具类对象、频繁访问数据库或文件的对象(比如数据源、session工厂等) 1. 饿汉式(静态常量&#xf…

6.0、静态路由

路由器最主要的功能就是转发数据包。路由器转发数据包时需要查找路由表(你可以理解为地图),管理员可以直接手动配置路由表,这就是静态路由。 1.什么是路由? 在网络世界中,路由是指数据包在网络中的传输路…

工业通信网关的各项功能解析-天拓四方

在工业自动化和智能制造的浪潮中,工业通信网关作为连接工业现场与互联网的重要桥梁,发挥着至关重要的作用。它不仅实现了不同网络协议之间的转换,还在数据采集、设备控制、网络管理等方面展现出强大的功能。 一、协议转换功能 工业通信网关…

数据结构与算法——Java实现 53.力扣938题——二叉搜索树的范围和

生命的意义 在于活出自我 而不是成为别人眼中的你 —— 24.11.3 938. 二叉搜索树的范围和 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。 示例 1: 输入:root [10,5,15,3,7,null,18], low 7, high 15 …

TensorRT-LLM的k8s弹性伸缩部署方案

Scaling LLMs with NVIDIA Triton and NVIDIA TensorRT-LLM Using Kubernetes | NVIDIA Technical Blog 一共涉及4个k8s组件: 1. Deployment:跑起来N个pod;指定NVIDIA官方的triton&trt-llm的docker image,指定好model放在哪个…

高亮无惧烈日,强力巨彩租赁屏点亮户外“视”界

在户外显示领域,一款性能出色、适应性强、维护便捷的租赁屏无疑是众多主办方和广告商的首选。强力巨彩旗下的幻云系列租赁屏具备画面清晰、无水波纹、性能稳定、高亮度等诸多优势,可应用于各大户外显示场所,是户外租赁屏市场的明星产品。   …

批量删除redis数据【亲测可用】

文章目录 引言I redis客户端基础操作key的命名规则批量查询keyII 批量删除key使用连接工具进行分组shell脚本示例其他方法III 知识扩展:控制短信验证码获取频率引言 批量删除redis数据的应用: 例如缓存数据使用了新的key存储,需要删除废弃的key。RedisTemplate的key序列化采…

Mysql开发规范

开发规范 对象命名 命名规范的对象,是指数据库SCHEMA、表TABLE、字段COLUMN、索引INDEX、约束CONSTRAINTS等 【强制】凡是需要命名的对象,其标识符不能超过30个字符【强制】名称必须以英文字母开头,不得以 _(下划线) 作为起始和终止字母【…

Web应用性能测试工具 - httpstat

在数字化时代,网站的性能直接影响用户体验和业务成功。你是否曾经在浏览网页时,遇到加载缓慢的困扰?在这个快速变化的互联网环境中,如何快速诊断和优化Web应用的性能呢?今天,我们将探讨一个强大的工具——h…