1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #!/usr/bin/env python
- """
- QA反馈API测试脚本
- 用于验证所有API端点是否正常工作
- """
- import requests
- import json
- # 配置
- BASE_URL = "http://localhost:8084" # 根据你的端口配置
- API_PREFIX = "/api/v0/qa_feedback"
- def test_api(method, endpoint, data=None, expected_status=200):
- """测试API端点"""
- url = f"{BASE_URL}{API_PREFIX}{endpoint}"
-
- try:
- if method == "GET":
- response = requests.get(url)
- elif method == "POST":
- response = requests.post(url, json=data, headers={'Content-Type': 'application/json'})
- elif method == "PUT":
- response = requests.put(url, json=data, headers={'Content-Type': 'application/json'})
- elif method == "DELETE":
- response = requests.delete(url)
-
- print(f"\n{'='*60}")
- print(f"测试: {method} {endpoint}")
- print(f"URL: {url}")
- print(f"状态码: {response.status_code}")
- print(f"响应:")
- try:
- print(json.dumps(response.json(), indent=2, ensure_ascii=False))
- except:
- print(response.text)
-
- return response.status_code == expected_status
-
- except Exception as e:
- print(f"❌ 测试失败: {e}")
- return False
- def main():
- """主测试函数"""
- print("🚀 开始测试QA反馈模块API...")
-
- # 1. 测试统计API (GET)
- print("\n📊 测试统计API")
- test_api("GET", "/stats")
-
- # 2. 测试查询API (POST)
- print("\n🔍 测试查询API")
- test_api("POST", "/query", {
- "page": 1,
- "page_size": 10
- })
-
- # 3. 测试添加反馈API (POST)
- print("\n➕ 测试添加反馈API")
- add_result = test_api("POST", "/add", {
- "question": "测试问题",
- "sql": "SELECT 1 as test",
- "is_thumb_up": True,
- "user_id": "test_user"
- })
-
- # 4. 测试训练API (POST) - 重点测试
- print("\n⭐ 测试训练API (重点)")
- test_api("POST", "/add_to_training", {
- "feedback_ids": [1, 2, 3]
- }, expected_status=404) # 可能没有这些ID,但API应该存在
-
- # 5. 测试更新API (PUT)
- print("\n✏️ 测试更新API")
- test_api("PUT", "/update/1", {
- "question": "更新的问题"
- }, expected_status=404) # 可能没有ID=1的记录
-
- # 6. 测试删除API (DELETE)
- print("\n🗑️ 测试删除API")
- test_api("DELETE", "/delete/999", expected_status=404) # 测试不存在的ID
-
- print(f"\n{'='*60}")
- print("🎯 测试完成!")
- print("📝 重点关注训练API是否返回正确的错误信息而不是'API not ported'")
- if __name__ == "__main__":
- main()
|