python來實現並發請求


# -*- coding: utf-8 -*-
from __future__ import print_function
import time
import gevent
import requests
from numpy import mean
from gevent import monkey
monkey.patch_all()


users = 10
numbers = 100 # 請求次數

url = 'http://10.88.80.21:29998/test/test1' #請求url
print('請求url: {url}'.format(url=url))
print("用戶數:{},循環次數:{}".format(users, numbers))

pass_number = 0
fail_number = 0

run_time_list = []


def run(url):
global fail_number
global pass_number

for _ in range(numbers):
start_time = time.time()
r = requests.post(url)
if r.status_code == 200:
pass_number += 1
print(".", end="")
else:
fail_number += 1
print("F", end="")

end_time = time.time()
run_time = round(end_time - start_time, 4)
run_time_list.append(run_time)

#就是利用
gevent這個庫


jobs = [gevent.spawn(run, url) for _url in range(users)]
gevent.wait(jobs)

print("\n============== Results ===================")
print("最大: {} s".format(str(max(run_time_list))))
print("最小: {} s".format(str(min(run_time_list))))
print("平均: {} s".format(str(round(mean(run_time_list), 4))))
print("請求成功", pass_number)
print("請求失敗", fail_number)
print("============== end ===================")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM