dev.altai / tests /live_test.py
prince1604
Ultra-fast crawler update: Caching, SSL disable, and Thread tuning
6d07192
Raw
History Blame Contribute Delete
2.5 kB
import requests
import json
import time
API_URL = "https://ubuntu593-alt-scraper-api.hf.space/api/seo-report"
DOMAINS_TO_TEST = [
{"url": "https://www.example.com", "limit": 1, "desc": "Simple Static Site"},
{"url": "https://www.google.com", "limit": 1, "desc": "Big Tech (High Robustness)"},
{"url": "https://www.wikipedia.org", "limit": 2, "desc": "Content Heavy"},
{"url": "https://www.amazon.in", "limit": 1, "desc": "Anti-Bot Heavy (Amazon)"},
]
def run_tests():
print(f"Starting Live API Tests against: {API_URL}\n")
print("-" * 60)
results = []
for item in DOMAINS_TO_TEST:
domain = item['url']
limit = item['limit']
desc = item['desc']
print(f"Testing: {domain} ({desc})...", end=" ", flush=True)
start_time = time.time()
try:
# We use a POST or GET. The API supports both, let's try POST for parameters.
payload = {"domain": domain, "limit": limit}
response = requests.post(API_URL, json=payload, timeout=60)
elapsed = time.time() - start_time
if response.status_code == 200:
data = response.json()
summary = data.get('summary', {})
discovered = summary.get('total_pages_discovered', 0)
images = summary.get('total_images_found', 0)
print(f"SUCCESS ({elapsed:.2f}s)")
print(f" -> Pages Scanned: {summary.get('total_pages_scanned')}")
print(f" -> Images Found: {images}")
print(f" -> Details: {summary}")
results.append({"domain": domain, "status": "PASS", "time": elapsed, "data": summary})
else:
print(f"FAILED ({response.status_code})")
print(f" -> Response: {response.text[:200]}")
results.append({"domain": domain, "status": "FAIL", "code": response.status_code})
except Exception as e:
print(f"ERROR: {str(e)}")
results.append({"domain": domain, "status": "ERROR", "error": str(e)})
print("-" * 60)
# Final Summary
print("\nTEST SUMMARY")
print("=" * 60)
for res in results:
status_icon = "[PASS]" if res['status'] == "PASS" else "[FAIL]"
print(f"{status_icon} {res['domain']:<30} | {res['status']}")
print("=" * 60)
if __name__ == "__main__":
run_tests()