OBJUI

Python压测脚本测试接口方案设计与实施

2025-04-11 19:55:05 173
### 一、测试目标 1. 验证接口在 1000+ QPS 下的稳定性 2. 确定接口的响应时间 P95 < 500ms 3. 检测服务器资源(CPU/MEM/网络)消耗情况 4. 发现潜在的并发问题(如数据库锁、资源竞争) ### 二、测试工具选择 推荐使用 Locust + Prometheus + Grafana 组合: * Locust:分布式压测,Python脚本易维护 * Prometheus:实时监控服务指标 * Grafana:数据可视化展示 ### 三、测试脚本开发(Python + Locust) ```python from locust import HttpUser, task, between import time import random class LocationUser(HttpUser): wait_time = between(0.1, 0.5) # 动态参数生成 def random_coords(self): return { "latitude": 21.618187 + random.uniform(-0.01, 0.01), "longitude": 110.253484 + random.uniform(-0.01, 0.01), "speed": random.randint(0, 120), "accuracy": 25 } @task def upload_location(self): headers = { "Authorization": "Jxy your_valid_token_here", "Content-Type": "application/json" } payload = { "trace": self.random_coords(), "order_id": f"D20250411{int(time.time()*1000)}", "order_status": 2, "uploadLocationType": "amap", "timestamp": self.generate_timestamp() } self.client.post( "/", json=payload, headers=headers, name="upload_location" ) def generate_timestamp(self): return time.strftime( "%a %b %d %Y %H:%M:%S GMT+0800 (CST)", time.localtime() ) ``` #### 命令行执行方式(无界面模式) 安装依赖 ```python pip install locust prometheus-client requests ``` 运行测试脚本 ```python locust -f test.py --headless --users 2000 --spawn-rate 100 --run-time 30m --host http://xx.com ``` 有界面执行 ```python locust -f test.py ``` #### 界面参数说明 | 参数项 | 推荐值 | 说明 | | ----------------- | ---------------------------------------------------------------- | ---------------- | | Number of users | 2000 | 最大并发用户数 | | Spawn rate | 100 users/second | 每秒新增用户数 | | Host | http://xx.com | 被测服务地址 |
更多精彩,请关注公众号

微信公众号

评论:
热门文章: