写个 Python 测试脚本却与实现差别大

2021-11-23 10:42:41 +08:00
 kaka6
目标系统是前后端分离的
所以搞个 python 的测试脚本,想做下压力测试(用 Jmeter 有点麻烦,也不熟)
于是,主通过 requests 和 multiprocessing.pool 来写脚本
requests 做模拟请求 api
pool 实现并发进程

业务流程也简单:
1 、根据 用户信息取 token
2 、根据 token 访问接口
3 、根据 token 提交数据

测试结果,每秒成功请求 api 数达 80+,持续 5 分钟多系统也能平衡运行
(由于 python 的并发量再多也上不去,受限于本机的 cpu )

所以初步感觉服务器的响应能力应该可以
但真实情况是,系统 100 人同时进入就挂了
查询挂的原因是因为部分表查询慢,堵住了(但用 python 请求又不堵)

这样是不是 python 的模拟请求测试不准,要怎么弄才好真实模拟现场多用户,多客户端的真实场景
1940 次点击
所在节点    Python
3 条回复
Kinnice
2021-11-23 13:33:26 +08:00
真实模拟? 暴力的法子,开 100 个 docker ,里面跑你的业务流程
vanwtf
2021-11-25 10:12:19 +08:00
做压力测试可以试试, locust 这个库, 有实时请求图和记录, 很方便, windows 也能装
FrankSun
2021-11-27 14:55:01 +08:00
使用 locust ,比较简单而且是异步的,locust 的性能也能满足你现在的需求了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/817322

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX