locust 性能测试工具使用资料
性能 使用 资料 测试工具 Locust
2023-06-13 09:17:03 时间
认识和安装 locust
- https://www.cnblogs.com/imyalost/p/9758189.html
- https://docs.locust.io/en/stable/installation.html
- https://debugtalk.com/post/head-first-locust-user-guide/
# windows 10
pip3 install -i https://pypi.douban.com/simple/ locustio==0.14.6
启动参数介绍
- https://docs.locust.io/en/stable/configuration.html(官方英文)
- https://www.jianshu.com/p/1a57f80fd480(部分中文翻译)
举个例子
# car_city.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@author: yinzhuoqun
@site: http://xieboke.net/
@email: yin@zhuoqun.info
@time: 2020/9/16 18:15
"""
import os
import requests
from locust import HttpLocust, TaskSet, task
requests.packages.urllib3.disable_warnings()
class WXLogin(TaskSet):
# @task 装饰该方法表示为用户行为,括号里面参数表示该行为的执行权重:数值越大,执行频率越高,不设置默认是1;
@task(1)
def garage_upgrade(self):
header = {
"User-Agent": "xxxx/1.0.0 (Linux; U; Android 10; zh-cn) (default; 1000000)",
"Host": "xxx",
"token": "xxx"
}
json_data = {
"number": 1,
"spaceId": 1
}
# post 请求使用 client.post,get 请求使用 client.get
req = self.client.post("/garage/upgrade", headers=header, json=json_data, verify=False)
if req.status_code == 200:
print("success")
else:
print("failed")
class CarCityUser(HttpLocust):
task_set = WXLogin # 指向定义了用户行为的类
host = "http://xxx.com" # 被测的 Host
min_wait = 3000 # 单位为毫秒,模拟负载的任务之间执行时的最小等待时间
max_wait = 6000 # 单位为毫秒,模拟负载的任务之间执行时的最大等待时间
脚本增强
https://debugtalk.com/post/head-first-locust-advanced-script/
源码分析
- https://www.missshi.cn/api/view/blog/59a6b53fe519f50d04000103
- https://blog.csdn.net/biheyu/category_1882447.html(备用地址)
分布式启动
先启动 master (主机):访问 http://localhost:8089/ 可查状态
locust -f car_city.py --master
再启动 slave (从机,--master-host 后面写主机 IP)
locust -f car_city.py --slave --master-host=192.168.89.126
启动从机后主机控制台会有连接上的日志
E:\yinzhuoqun\locust_test>locust -f car_city.py --master
[2020-09-17 17:49:04,720] DESKTOP-9K42C1Q/INFO/locust.main: Starting web monitor at http://*:8089
[2020-09-17 17:49:04,721] DESKTOP-9K42C1Q/INFO/locust.main: Starting Locust 0.14.6
[2020-09-17 17:54:52,244] DESKTOP-9K42C1Q/INFO/locust.runners: Client 'DESKTOP-9K42C1Q_bc7e6bdd22c84c48bb910f5be41d80a6' reported as ready. Currently 1 clients ready to swarm.
[2020-09-17 17:55:31,724] DESKTOP-9K42C1Q/INFO/locust.runners: Client 'DESKTOP-9K42C1Q_bc7e6bdd22c84c48bb910f5be41d80a6' quit. Currently 0 clients connected.
[2020-09-17 17:55:49,913] DESKTOP-9K42C1Q/INFO/locust.runners: Client 'DESKTOP-9K42C1Q_52383b135c4f4f9ea39cdaf3eceb0d83' reported as ready. Currently 1 clients ready to swarm.
[2020-09-17 18:05:31,840] DESKTOP-9K42C1Q/INFO/locust.runners: Sending hatch jobs of 2 locusts and 2.00 hatch rate to 1 ready clients
[2020-09-17 18:05:49,141] DESKTOP-9K42C1Q/INFO/locust.runners: Removing DESKTOP-9K42C1Q_52383b135c4f4f9ea39cdaf3eceb0d83 client from running clients
[2020-09-17 18:05:49,142] DESKTOP-9K42C1Q/INFO/locust.runners: Client 'DESKTOP-9K42C1Q_52383b135c4f4f9ea39cdaf3eceb0d83' reported as ready. Currently 1 clients ready to swarm.
[2020-09-17 18:13:44,857] DESKTOP-9K42C1Q/INFO/locust.runners: Client 'XG7TARM8695SQQL_73f8971e70ff47bab372054da9b1db8b' reported as ready. Currently 2 clients ready to swarm.
遇到的问题
在win10,从机启动后无法连接到主机(主机和从机不在同一台电脑),原因是主机的端口 5557 和 5558 没有加入到 入站规则,即该端口没开放别的机器无法访问(入站规则设置方法)
运行效果图
相关文章
- Golang性能优化工具pprof使用入门
- 使用pgbench测试你的数据库性能
- stmeLinux系统CPU性能优化实践(linuxcpusy)
- 使用Oracle归档模式优化数据库性能(oracle的归档模式)
- 掌握MySQL执行计划,了解SQL性能分析(mysql执行计划怎么看)
- 优化使用Oracle索引最佳实践:提升查询执行性能(oracle索引执行)
- 使用Redis提升项目性能(redis项目中怎么用)
- 使用MySQL跟踪工具提升性能效率(mysql跟踪工具)
- 数据清理SQLServer数据:改善数据库性能!(清理sqlserver)
- 改善MSSQL服务器性能的7大步骤(提高mssql性能)
- Linxu AB 命令:测试服务器性能的利器(linux ab 命令)
- 优化Oracle数据库查询性能使用索引(oracle 关索引)
- Mysql使用with语句提高查询性能(mysql中with)
- 提升性能除了Redis,还有哪些缓存技术(缓存技术除了redis)
- 分析压力测试基于LR压力测试Oracle性能(lr压oracle)
- TP5新高度使用Redis缓存极大提升应用性能(tp5配置redis缓存)
- 使用SSM和Redis提升架构性能(ssm加入redis)
- 原生Redis性能评估报告(原生redis评测)
- 性能驱动的多线程读写Redis的并发实践(多线程读写redis并发)
- 如何利用Oracle CDB优化数据库性能(oracle 使用cdb)
- 数据提高性能利用Redis优化缓存存取(使用redis如何缓存)
- 使用Redis提升项目性能(什么项目要用redis)
- 追求性能和效率,MySQL不建议使用UUID作为主键(mysql不推荐uuid)
- 深度挖掘Oracle性能优化日志(oracle优化log)
- 缓存使用Redis管理页面缓存有助提升性能(redis 页面)
- 使用Redis集群加速性能测试(redis集群的性能测试)
- bladeMerzblade在Redis中的运行探索出色性能(redis里的merz)
- 提升性能Redis缓存策略实践(redis设置缓存策略)
- Oracle联合1T内存以赢得性能优势(oracle 1t内存)
- 调整调整Redis连接数,提升系统性能(redis连接数大小如何)
- Oracle12c结构提高性能和权限管理能力(oracle12c结构)
- mysql性能的检查和优化方法
- 提升PHP性能的21种方法介绍