Я пишу python скрипт для тестирования запросов (я новичок в этом), где у меня есть список URL-адресов, которые я хочу протестировать, используя несколько одновременных запросов для ex, если у меня есть 10 URL-адресов и 100 входное число затем следует установить 100 независимых подключений, и они должны получить доступ к этим URL-адресам случайным образом, и в конце возвращают среднее время ответа каждого URL-адреса.
out = []
CONNECTIONS = 100
TIMEOUT = 50
json_str=[]
tlds = open('sampleurl.txt').read().splitlines()
for data in tlds:
json_str.append(''.join(data ))
def load_url(data, timeout):
response = requests.post('http://example.com', headers=headers,data=data,timeout=timeout)
return response.status_code
with concurrent.futures.ThreadPoolExecutor(max_workers=CONNECTIONS) as executor:
future_to_url = (executor.submit(load_url, data, TIMEOUT) for data in json_str)
time1 = time.time()
for future in concurrent.futures.as_completed(future_to_url):
try:
data = future.result()
except Exception as exc:
data = str(type(exc))
finally:
out.append(data)
time2 = time.time()
print(f'Took {time2-time1:.2f} s')
print(pd.Series(out).value_counts())
Я пытался это сделать, но он останавливается после тестирования каждого URL-адреса только один раз. Я хочу, чтобы код продолжал работать и открывать URL несколько раз, пока все соединения не будут исчерпаны.