最近有一个压测需求,一开始使用 boom 来压测,是比较好用,但是接口后端有 memcache 很容易就会命中缓存,压不出效果。
接口接受一个 uid 列表的 json 数据( POST ),需要每次变化,这样一般的压测工具感觉不适用了。这样的话需要自己写 http 请求来压测吗?但不确定并发是否能上去(希望 qps 能达到 1k+)。
是否有什么框架来做这个?大家是怎么做的?
谢谢各位了
1
lecher 2016-05-06 21:47:19 +08:00 via Android
一般的压测工具读取一个构造好的 URL 列表,顺序读完去并发执行,很多工具都支持读取构造的 URL 列表。
|
3
rale 2016-05-06 22:09:40 +08:00
或许你只需要的是一个造假数据的包: http://faker.readthedocs.io/en/latest/ 外加 requests
|
7
lecher 2016-05-06 22:26:11 +08:00 via Android
tornado 内置的 httpclient 吧支持异步,单进程 qps 可以到一百多,多开几个进程就可以了。
不好的是不能限制并发数。 |
8
feelapi 2016-05-06 22:28:45 +08:00
http://locust.io/
比较好用。 |
9
xdz 2016-05-06 22:38:52 +08:00 via Android
siege ,可以列表文件带 post 数据压力测试,之前用过。
|
10
2225377fjs 2016-05-06 23:24:38 +08:00
常规的 一些 python 的 http 请求库, urllib , urllib2 之类的,加上 gevent ,打上 monkey 的补丁,然后用协程并发请求,应该能解决问题。
|
11
iyaozhen OP |
13
SlipStupig 2016-05-07 17:41:38 +08:00
gevent pool+curl+多进程,轻松 10k+, dns 记得 cache 一下
|