- Flask 服务端口: 16025 - Docker 端口映射: 16025:16025 - systemd 服务配置更新 - 测试脚本端口更新 - 文档示例更新
122 lines
2.9 KiB
Python
Executable File
122 lines
2.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
||
"""
|
||
测试脚本 - 测试 Web Capture API
|
||
"""
|
||
|
||
import requests
|
||
import json
|
||
import sys
|
||
|
||
API_URL = "http://localhost:16025"
|
||
|
||
|
||
def test_health():
|
||
"""测试健康检查"""
|
||
print("\n🔍 测试健康检查...")
|
||
resp = requests.get(f"{API_URL}/health")
|
||
print(f"状态: {resp.status_code}")
|
||
print(f"响应: {json.dumps(resp.json(), indent=2, ensure_ascii=False)}")
|
||
return resp.status_code == 200
|
||
|
||
|
||
def test_screenshot():
|
||
"""测试截图功能"""
|
||
print("\n📸 测试截图功能...")
|
||
|
||
data = {
|
||
"url": "https://example.com",
|
||
"action": "screenshot",
|
||
"wait_time": 2000
|
||
}
|
||
|
||
resp = requests.post(
|
||
f"{API_URL}/api/capture",
|
||
json=data
|
||
)
|
||
|
||
if resp.status_code == 200:
|
||
with open("test_screenshot.png", "wb") as f:
|
||
f.write(resp.content)
|
||
print("✅ 截图成功,已保存为 test_screenshot.png")
|
||
return True
|
||
else:
|
||
print(f"❌ 截图失败: {resp.text}")
|
||
return False
|
||
|
||
|
||
def test_html():
|
||
"""测试HTML提取"""
|
||
print("\n📄 测试HTML提取...")
|
||
|
||
data = {
|
||
"url": "https://example.com",
|
||
"action": "html"
|
||
}
|
||
|
||
resp = requests.post(
|
||
f"{API_URL}/api/capture",
|
||
json=data
|
||
)
|
||
|
||
if resp.status_code == 200:
|
||
result = resp.json()
|
||
print(f"✅ HTML提取成功,长度: {len(result.get('html', ''))}")
|
||
print(f"前200字符: {result.get('html', '')[:200]}...")
|
||
return True
|
||
else:
|
||
print(f"❌ HTML提取失败: {resp.text}")
|
||
return False
|
||
|
||
|
||
def test_scroll():
|
||
"""测试滚动加载"""
|
||
print("\n🔄 测试滚动加载...")
|
||
|
||
data = {
|
||
"url": "https://news.ycombinator.com",
|
||
"action": "screenshot",
|
||
"scroll_times": 3,
|
||
"scroll_delay": 1000,
|
||
"full_page": True
|
||
}
|
||
|
||
resp = requests.post(
|
||
f"{API_URL}/api/capture",
|
||
json=data
|
||
)
|
||
|
||
if resp.status_code == 200:
|
||
with open("test_scroll.png", "wb") as f:
|
||
f.write(resp.content)
|
||
print("✅ 滚动截图成功,已保存为 test_scroll.png")
|
||
return True
|
||
else:
|
||
print(f"❌ 滚动截图失败: {resp.text}")
|
||
return False
|
||
|
||
|
||
if __name__ == "__main__":
|
||
print("🚀 Web Capture API 测试")
|
||
print("=" * 50)
|
||
|
||
tests = [
|
||
("健康检查", test_health),
|
||
("截图功能", test_screenshot),
|
||
("HTML提取", test_html),
|
||
("滚动加载", test_scroll)
|
||
]
|
||
|
||
results = []
|
||
for name, test_func in tests:
|
||
try:
|
||
result = test_func()
|
||
results.append((name, result))
|
||
except Exception as e:
|
||
print(f"❌ {name} 异常: {e}")
|
||
results.append((name, False))
|
||
|
||
print("\n" + "=" * 50)
|
||
print("测试结果汇总:")
|
||
for name, result in results:
|
||
status = "✅ 通过" if result else "❌ 失败"
|
||
print(f" {name}: {status}") |