flask框架,api压力测试

来源:互联网 发布:eclipse写java程序 编辑:程序博客网 时间:2024/06/03 08:32

1、flask muti threads

if __name__ == "__main__":    app.run(host='0.0.0.0', port=5000, threaded=True)

2、test api

http://127.0.0.1:5000/open/api/get/${user_id}

3、 test

  1. code
import requestsfrom threading import Threadfrom datetime import datetime as dateapi = 'http://127.0.0.1:5000/open/api/get/{}'def loop(api_rel: str):    before = date.now()    print('start-loop--{}'.format(api_rel), ' at:{}'.format(before))    result = requests.get(api_rel)    print('end-loop--{}'.format(result), ' at used:{}'.format(date.now() - before))def thread_press():    # user_id list    api_list = [2374153531606016, 2374141206397952, 2374134051292160]    thread_list = []    for i in api_list:        thread_list.append(Thread(target=loop(api.format(i))))        pass    for i in range(len(api_list)):        thread_list[i].start()if __name__ == '__main__':    thread_press()

2、result

Multithreading does not work

3、do test for threading

import timeimport threadingdef test_job(name):    print("{} start.....".format(threading.current_thread()))    for i in range(10):        print('{}-{}'.format(name,i))        time.sleep(1)    print("{} finished".format(threading.current_thread()))thread_1 = threading.Thread(target=test_job,args=('thread_1',),name='thread_1')thread_2 = threading.Thread(target=test_job,args=('thread_2',),name='thread_2')thread_1.start()#thread_1.join()thread_2.start()

result

<Thread(thread_1, started 14656)> start.....<Thread(thread_2, started 4352)> start.....thread_1-0thread_2-0thread_1-1thread_2-1thread_1-2thread_2-2thread_1-3thread_2-3thread_1-4thread_2-4thread_1-5thread_2-5thread_1-6thread_2-6thread_1-7thread_2-7thread_1-8thread_2-8thread_1-9thread_2-9<Thread(thread_1, started 14656)> finished<Thread(thread_2, started 4352)> finished

4、threading warnings

1、target = method(api)

Thread(target=loop(api.format(i)))Multithreading does not work , Perform by normal functionThread(target=loop,args=(api.format(i),)Multithreading does work

2、args = (list)

errorthreading.Thread(target=test_job,args=('thread_1'),name='thread_1') == threading.Thread(target=test_job,args=(list('thread_1')),name='thread_1')TypeError: test_job() takes 1 positional argument but 8 were givenrightthreading.Thread(target=test_job,args=('thread_1',),name='thread_1') 

get right code

def thread_press():    # user_id list    api_list = [2374153531606016, 2374141206397952, 2374134051292160]    thread_list = []    for i in api_list:        thread_list.append(Thread(target=loop,args=(api.format(i),))        pass    for i in range(len(api_list)):        thread_list[i].start()
原创粉丝点击