python实现多线程压测post接口服务

上一篇 / 下一篇  2017-04-06 22:50:36 / 个人分类:python

python实现多线程压测post接口服务

 191人阅读 评论(0) 收藏 举报
[python] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. import urllib  
  2. import urllib2  
  3. import random  
  4. import sys  
  5. import threading,time  
  6. from time import sleep, ctime  
  7. import json  
  8. import time   
  9. host_url='http://127.0.0.1:8070'  
  10. def now() :  
  11.     return str( time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) )  
  12.       
  13. def post1():   
  14.   print 'start loop''at:', now()  
  15.   start = time.clock()  
  16.   uid=random.randint(02000000)  
  17.   
  18.   url=host_url+'/bigdata/crm/getGroupResCount'  
  19.   values ={"query_where": [{"item""uid","query": [{"op""<","value": uid}]}]}  
  20.   
  21.   jdata = json.dumps(values)               
  22.   
  23.   req = urllib2.Request(url, jdata)        
  24.   req.add_header('Content-Type''application/json')  
  25.   response = urllib2.urlopen(req)         
  26.   end = time.clock()  
  27.   print "run: %f s" % (end - start)  
  28.   print response.read()    
  29.   
  30. def post2():  
  31.   print 'start loop''at:', now()  
  32.   start = time.clock()  
  33.   uid=random.randint(02000000)  
  34.   
  35.   url=host_url+'/bigdata/crm/generateDataFile'  
  36.   values ={"groupType""dynamic","groupID""123","query_where": [{"item""uid","query": [{"op""<","value": uid}]}]}  
  37.   
  38.   jdata = json.dumps(values)               
  39.   
  40.   req = urllib2.Request(url, jdata)        
  41.   req.add_header('Content-Type''application/json')  
  42.   response = urllib2.urlopen(req)     
  43.   end = time.clock()  
  44.   print "run: %f s" % (end - start)    
  45.   print response.read()    
  46.   
  47. def post():  
  48.         post1()  
  49.         #post2()  
  50.   
  51.   
  52. def main():   
  53.   loop=int(sys.argv[1])  
  54.   ths=int(sys.argv[2])  
  55.     
  56.   for i in xrange(loop):  
  57.     threadpool=[]  
  58.     for i in xrange(ths):  
  59.         th = threading.Thread(target= post)  
  60.         threadpool.append(th)  
  61.     for th in threadpool:  
  62.         th.start()  
  63.     for th in threadpool :  
  64.         threading.Thread.join( th )  
  65.     
  66.   
  67.     
  68.   post()   
  69. if __name__ == '__main__':   
  70.   main()   

TAG: Python 多线程 接口 python

 

评分:0

我来说两句

Open Toolbar