性能自动化测试

📅 2026/8/4 7:45:07
性能自动化测试
一、Locust 是什么定位开源、纯 Python 编写的分布式负载 / 性能测试工具底层基于gevent协程实现并发而非操作系统线程。对比 JMeterJMeter 重、界面臃肿、高并发耗资源Locust 使用代码编写压测逻辑轻量化、易维护、可无缝融入 Python 自动化体系。底层网络封装了 requests写法和 requests 几乎一致学习成本极低。自带 Web 可视化面板实时查看 TPS、响应时间、报错、并发曲线无需额外搭监控看板。二、核心优势协程并发资源占用极低gevent 协程属于用户态轻量级任务一台普通机器即可模拟上万虚拟用户requeststhreading 多线程受 GIL、系统线程限制几百并发就开销巨大。代码即脚本无繁琐 GUI 配置业务逻辑登录、携带 token、接口串联、参数化、加解密、异常处理全部用 Python 代码自由编写扩展性碾压 JMeter。天然支持分布式压测一台 master 主控节点 多台 worker 压力机分散施压实现十万级大流量压测。报告直观实时图表 可导出 CSV 数据和现有 Python 自动化体系打通pytest、allure、数据库操作、接口公共方法复用三、核心概念必考名词1. User / HttpUser虚拟用户HttpUser继承该类代表一个模拟用户内置self.client对象等价于 requests 的 session自动维持 cookie、会话。wait_time between(min, max)用户两次操作之间的思考时间模拟真实用户停顿单位秒。2. task 任务装饰器标记需要被施压的接口任务可以传入权重task(3)数值越大被执行概率越高用来模拟真实业务访问比例例如查询商品下单 7:1。python运行task(7) def query_goods(self): self.client.get(/goods/list) ​ task(1) def create_order(self): self.client.post(/order/create, json{})3. on_start() / on_stop()on_start每个虚拟用户启动时只执行一次一般用来做登录、获取全局 token、初始化数据。on_stop虚拟用户销毁时执行资源释放、数据清理。4. 虚拟用户 (VU)、孵化速率 (Hatch rate)VU模拟的在线用户总数Hatch rate每秒启动多少个虚拟用户加压速度5. 内置核心指标面板展示表格指标说明Requests/s(RPS/TPS)每秒成功请求数吞吐量Response Time(ms)平均、中位数、90%、95%、99% 响应耗时Failures失败请求数 错误率Number of users当前运行虚拟用户数量