最近用 python 多进程压测接口,发现结果和 jmeter 差别很大,听到一些声音说:python 的多进程本质上是 “假” 的,认为 python 多进程压测接口的结果可信度是比较低的。
python 多线程本质上是 “假” 的,不是多进程。如果想充分利用多核 cpu,用多进程
嗯嗯,我是用的多进程,结果 jmeter 还是有不少的差别,TPS 和响应时间都差了 5 倍左右
python3.4 后已经引入了 asyncio 协程,3.5 引入了 Async/Await 语法糖 某些大牛在几年前就说了 Async/Await 是最完美的异步编程解决方案 Locust 性能框架底层用的也是 asyncio,我觉得 Python 应该不成问题 进程还是算了,进程通信是灾难的
搭车问一下,python 适合做接口压测吗,比起 Jmeter 做接口压测,哪个好?
都可以,看你们小组熟悉哪块技术栈,性能测试做到最后肯定会向服务靠拢。 单独的一个工具 jmeter 和 locust 相差不大,搭服务那就要考虑本身语言熟悉程度,web 框架的熟悉程度,这里有一个学习成本问题。
进程和线程在操作系统层面效率是完全不一样。进程要做上下文切换,而线程是轻量级的跑起来快。用 python 去压,自己动起来就已经累趴下了,怎么能把别人压出来呢。。。
用 JMeter 吧,现成的工具,Python 是伪多线程,而异步那个玩意,是个不靠谱的东西。
twisted 楼主可以了解下