接口测试 用 python 多进程压测接口,靠谱吗?结果和 jmeter 差别很大

艾里艾兰 · 2019年07月25日 · 最后由 flyfire 回复于 2019年07月29日 · 3415 次阅读

最近用 python 多进程压测接口,发现结果和 jmeter 差别很大,听到一些声音说:python 的多进程本质上是 “假” 的,认为 python 多进程压测接口的结果可信度是比较低的。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 8 条回复 时间 点赞

python 多线程本质上是 “假” 的,不是多进程。如果想充分利用多核 cpu,用多进程

黑山老妖 回复

嗯嗯,我是用的多进程,结果 jmeter 还是有不少的差别,TPS 和响应时间都差了 5 倍左右

艾里艾兰 回复

python3.4 后已经引入了 asyncio 协程,3.5 引入了 Async/Await 语法糖
某些大牛在几年前就说了 Async/Await 是最完美的异步编程解决方案
Locust 性能框架底层用的也是 asyncio,我觉得 Python 应该不成问题
进程还是算了,进程通信是灾难的

Karaser 回复

搭车问一下,python 适合做接口压测吗,比起 Jmeter 做接口压测,哪个好?

bozeng 回复

都可以,看你们小组熟悉哪块技术栈,性能测试做到最后肯定会向服务靠拢。
单独的一个工具 jmeter 和 locust 相差不大,搭服务那就要考虑本身语言熟悉程度,web 框架的熟悉程度,这里有一个学习成本问题。

进程和线程在操作系统层面效率是完全不一样。进程要做上下文切换,而线程是轻量级的跑起来快。用 python 去压,自己动起来就已经累趴下了,怎么能把别人压出来呢。。。

艾里艾兰 回复

用 JMeter 吧,现成的工具,Python 是伪多线程,而异步那个玩意,是个不靠谱的东西。

twisted 楼主可以了解下

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册