import argparse
import subprocess
import sys
def run_curl(url, proxy, iterations):
total_time = 0.0
for i in range(iterations):
command = [
"curl", "-x", proxy, "-o", "/dev/null", "-s",
"-w", "%{time_total}", url
]
try:
result = subprocess.run(command, check=True, capture_output=True, text=True)
time_taken = float(result.stdout)
total_time += time_taken
print(f"Run {i + 1}: {time_taken:.4f} seconds")
except subprocess.CalledProcessError as e:
print(f"Error running curl: {e}")
sys.exit(1)
average_time = total_time / iterations
print(f"\nAverage time over {iterations} runs: {average_time:.4f} seconds")
def main():
parser = argparse.ArgumentParser(description="Run curl multiple times and calculate average time.")
parser.add_argument("--url", type=str, required=True, help="The URL to test.")
parser.add_argument("--proxy", type=str, default="http://127.0.0.1:7890", help="The proxy to use.")
parser.add_argument("--iterations", type=int, default=10, help="Number of times to run the test.")
args = parser.parse_args()
run_curl(args.url, args.proxy, args.iterations)
if __name__ == "__main__":
main()