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