test_goalid_consistency.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import requests
  2. import json
  3. def test_goalid_consistency():
  4. print("=== 测试goalId一致性 ===")
  5. # 测试数据
  6. test_data = {
  7. "userId": 1,
  8. "goalId": 6, # 使用新的goalId进行测试
  9. "subject": "数学",
  10. "type": "选择题",
  11. "difficulty": "中等",
  12. "totalQuantity": 1,
  13. "knowledgePoint": "导数的应用"
  14. }
  15. print(f"测试请求参数: {json.dumps(test_data, indent=2, ensure_ascii=False)}")
  16. print()
  17. try:
  18. # 1. 调用Coze生成题目API
  19. print("=== 步骤1: 调用Coze生成题目API ===")
  20. response = requests.post(
  21. "http://localhost:8080/api/coze/generate-questions",
  22. json=test_data,
  23. timeout=60
  24. )
  25. if response.status_code == 200:
  26. result = response.json()
  27. print(f"API调用成功: {json.dumps(result, indent=2, ensure_ascii=False)}")
  28. print()
  29. # 2. 查询数据库中的题目
  30. print("=== 步骤2: 查询数据库中的题目 ===")
  31. db_response = requests.get(f"http://localhost:8080/api/ai/questions/{test_data['goalId']}")
  32. if db_response.status_code == 200:
  33. db_result = db_response.json()
  34. print(f"数据库查询结果: {json.dumps(db_result, indent=2, ensure_ascii=False)}")
  35. print()
  36. # 3. 检查goalId一致性
  37. print("=== 步骤3: 检查goalId一致性 ===")
  38. expected_goal_id = test_data['goalId']
  39. if 'data' in db_result and db_result['data']:
  40. questions = db_result['data']
  41. print(f"找到 {len(questions)} 道题目")
  42. for i, question in enumerate(questions, 1):
  43. actual_goal_id = question.get('goalId')
  44. detail_id = question.get('detailId')
  45. print(f"题目 {i}: detail_id={detail_id}, 预期goalId={expected_goal_id}, 实际goalId={actual_goal_id}")
  46. if actual_goal_id == expected_goal_id:
  47. print(f"✅ 题目 {i} goalId一致")
  48. else:
  49. print(f"❌ 题目 {i} goalId不一致!预期: {expected_goal_id}, 实际: {actual_goal_id}")
  50. print()
  51. else:
  52. print("❌ 数据库中没有找到题目")
  53. else:
  54. print(f"❌ 数据库查询失败: {db_response.status_code}")
  55. print(db_response.text)
  56. else:
  57. print(f"❌ API调用失败: {response.status_code}")
  58. print(response.text)
  59. except requests.exceptions.Timeout:
  60. print("❌ 请求超时")
  61. except Exception as e:
  62. print(f"❌ 请求异常: {e}")
  63. if __name__ == "__main__":
  64. test_goalid_consistency()