最近有一个压测需求,一开始使用 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 一下 
                 |