这个目录包含了Locust测试框架的实用工具脚本。
启动Mock HTTP服务器,用于测试和开发。
功能特点:
- 自动检查依赖(Flask、Flask-CORS)
- 健康检查和服务启动验证
- 命令行参数配置主机和端口
- 优雅的错误处理和用户提示
使用方法:
# 使用默认配置启动
python scripts/start_mock_server.py
# 自定义主机和端口
python scripts/start_mock_server.py --host 0.0.0.0 --port 8080
# 通过Makefile启动
make mock-server
make mock-server-background # 后台运行API端点:
GET /health- 健康检查GET /api/products- 商品列表POST /api/auth/login- 用户登录- 更多端点请查看
mock_server/app.py
快速运行locustfiles/examples中的示例测试。
功能特点:
- 自动发现和列出所有可用示例
- 支持Web UI和无头模式
- 自动启动Mock服务器
- 灵活的参数配置
使用方法:
# 列出所有示例
python scripts/run_examples.py --list
make examples
# 运行指定示例(按编号)
python scripts/run_examples.py 1
make run-example example=1
# Web UI模式运行
python scripts/run_examples.py 1 --web
make run-example-web example=1
# 自定义测试参数
python scripts/run_examples.py 2 -u 20 -r 5 -t 120s
make run-example example=2 u=20 r=5 t=120s
# 按文件名部分匹配
python scripts/run_examples.py basic示例编号对照:
01_basic_test.py- 基础HTTP测试02_custom_params.py- 自定义参数和集合点03_data_driven.py- 数据驱动测试04_performance_analysis.py- 性能分析集成05_monitoring_alerts.py- 监控和告警06_load_shapes.py- 负载模式演示07_ecommerce_scenario.py- 电商综合场景
生成各种类型的测试数据。
功能特点:
- 支持多种数据类型(用户、商品、订单等)
- CSV和JSON输出格式
- 本地化支持(中文数据)
- Locust专用数据集生成
使用方法:
# 生成基础测试数据
python scripts/generate_test_data.py --type users --count 100 --format json
make test-data type=users count=100 format=json
# 生成Locust专用测试数据
python scripts/generate_test_data.py --type locust --count 500
make test-data-locust count=500
# 指定输出文件
python scripts/generate_test_data.py --type products --output data/products.csv
# 使用随机种子(可重现数据)
python scripts/generate_test_data.py --seed 12345支持的数据类型:
users- 用户资料数据products- 商品数据orders- 订单数据mixed- 混合类型数据test_dataset- 结构化测试数据集locust- Locust测试专用数据包
分析Locust测试结果并生成报告。
功能特点:
- 自动解析Locust生成的CSV报告
- 计算性能指标和等级评分(A-F)
- 趋势分析和失败原因统计
- 智能化优化建议
- 多种输出格式
使用方法:
# 分析指定目录的结果
python scripts/analyze_results.py --results-dir reports
make analyze-results results_dir=reports
# 分析特定文件
python scripts/analyze_results.py --stats-file reports/stats.csv
# 不同输出格式
python scripts/analyze_results.py --format json # 仅JSON文件
python scripts/analyze_results.py --format console # 仅控制台
python scripts/analyze_results.py --format both # 默认,两种都输出
# 包含趋势分析
python scripts/analyze_results.py --with-trends --detailed报告内容:
- 性能等级评分(A-F)
- 请求成功率和失败率
- 响应时间统计
- 主要失败原因
- 性能趋势分析
- 优化建议
# 查看所有可用命令
make help
# 快速开始(推荐新用户)
make quick-start
# 完整测试流程
make full-test# 1. 启动Mock服务器
python scripts/start_mock_server.py &
# 2. 生成测试数据(可选)
python scripts/generate_test_data.py --type locust --count 100
# 3. 运行示例测试
python scripts/run_examples.py 1 --web
# 4. 分析结果
python scripts/analyze_results.py --with-trends所有脚本都支持非交互式执行,适合集成到CI/CD管道:
# GitHub Actions 示例
- name: Run Load Test
run: |
python scripts/start_mock_server.py &
sleep 5
python scripts/run_examples.py 7 -u 50 -r 10 -t 300s
python scripts/analyze_results.py --format json- 检查端口是否被占用:
lsof -i :5000 - 安装依赖:
pip install flask flask-cors
- 确保Mock服务器正在运行
- 检查Python环境和依赖
- 使用
--skip-mock跳过服务器检查
- 检查输出目录权限
- 确保有足够磁盘空间
- 验证locale设置
- 确保CSV文件格式正确
- 检查文件路径是否存在
- 使用绝对路径避免路径问题
如需添加新的工具脚本:
- 在scripts/目录创建新脚本
- 添加执行权限:
chmod +x scripts/new_script.py - 在Makefile中添加对应命令
- 更新此README文档
脚本开发建议:
- 使用argparse处理命令行参数
- 提供清晰的帮助信息和错误提示
- 支持通过Makefile调用
- 遵循项目的错误处理模式