需要提前安装库requests
import requests
import time
import threading
# 全局变量,用于统计成功和失败次数
success_count = 0
fail_count = 0
def send_request(url, cookies, headers):
global success_count, fail_count
try:
start_time = time.time()
response = requests.get(url, cookies=cookies, headers=headers, timeout=5) # 设置超时时间, 携带header
end_time = time.time()
response_time = end_time - start_time
if response.status_code == 200:
success_count += 1
print(f"请求成功,状态码:{response.status_code}, 响应时间:{response_time:.2f}秒")
else:
fail_count += 1
print(f"请求失败,状态码:{response.status_code}")
except requests.exceptions.RequestException as e:
fail_count += 1
print(f"请求发生异常:{e}")
def run_test(url, cookies, headers, num_requests, duration):
start_time = time.time()
threads = []
while time.time() - start_time < duration and (success_count + fail_count) < num_requests:
t = threading.Thread(target=send_request, args=(url, cookies, headers))
threads.append(t)
t.start()
time.sleep(0.01) # 控制并发,避免瞬间流量过大
#send_request(url, cookies, headers) # 不使用多线程
for t in threads:
t.join() # 等待线程结束
if __name__ == "__main__":
target_url = "https://baidu.com" # 替换为目标URL
target_cookies = {"sessionid": "your_session_id"} # 替换为实际的Cookie
target_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"} #替换User-Agent
num_requests = 160
duration = 60 # seconds
run_test(target_url, target_cookies, target_headers, num_requests, duration) # 执行测试
print("\n测试结果:")
print(f"成功请求次数:{success_count}")
print(f"失败请求次数:{fail_count}")
if (success_count + fail_count) != 0:
success_rate = (success_count / (success_count + fail_count)) * 100
print(f"成功率:{success_rate:.2f}%")
请勿用于非法活动
评论 (0)