test_create_goal_response.py 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import requests
  2. import json
  3. def test_create_goal_response():
  4. """
  5. 测试创建目标API的响应格式
  6. """
  7. print("=== 测试创建目标API的响应格式 ===")
  8. # 创建目标的测试数据
  9. goal_data = {
  10. "userId": 1,
  11. "subject": "数学",
  12. "goalType": "选择题",
  13. "goalContent": "测试目标内容",
  14. "difficulty": "简单",
  15. "totalQuantity": 5,
  16. "estimatedTime": 30
  17. }
  18. print(f"创建目标请求数据: {json.dumps(goal_data, indent=2, ensure_ascii=False)}")
  19. try:
  20. # 调用创建目标API
  21. response = requests.post(
  22. "http://localhost:8080/api/goals",
  23. json=goal_data,
  24. timeout=10
  25. )
  26. print(f"响应状态码: {response.status_code}")
  27. if response.status_code == 200:
  28. result = response.json()
  29. print(f"完整响应: {json.dumps(result, ensure_ascii=False, indent=2)}")
  30. # 检查响应结构
  31. print("\n=== 响应结构分析 ===")
  32. print(f"响应码: {result.get('code')}")
  33. print(f"消息: {result.get('message')}")
  34. print(f"时间戳: {result.get('timestamp')}")
  35. if 'data' in result:
  36. data = result['data']
  37. print(f"data字段存在: {type(data)}")
  38. if isinstance(data, dict):
  39. print(f"goalId在data中: {data.get('goalId')}")
  40. print(f"userId在data中: {data.get('userId')}")
  41. print(f"subject在data中: {data.get('subject')}")
  42. else:
  43. print(f"data不是字典类型: {data}")
  44. else:
  45. print("data字段不存在")
  46. # 检查Android应用期望的字段
  47. print("\n=== Android应用期望的字段 ===")
  48. print(f"直接的goalId字段: {result.get('goalId')}")
  49. # 如果有goalId,测试用这个goalId调用Coze API
  50. if 'data' in result and isinstance(result['data'], dict) and 'goalId' in result['data']:
  51. goal_id = result['data']['goalId']
  52. print(f"\n=== 使用正确的goalId({goal_id})测试Coze API ===")
  53. coze_data = {
  54. "userId": 1,
  55. "goalId": goal_id,
  56. "subject": "数学",
  57. "knowledgePoint": "测试正确goalId",
  58. "difficulty": "简单",
  59. "type": "选择题",
  60. "totalQuantity": 1
  61. }
  62. coze_response = requests.post(
  63. "http://localhost:8080/api/coze/generate-questions",
  64. json=coze_data,
  65. timeout=30
  66. )
  67. if coze_response.status_code == 200:
  68. coze_result = coze_response.json()
  69. print(f"Coze API响应: {json.dumps(coze_result, ensure_ascii=False, indent=2)}")
  70. if coze_result.get('success') and coze_result.get('questions'):
  71. for question in coze_result['questions']:
  72. print(f"生成的题目goalId: {question.get('goalId')}")
  73. else:
  74. print(f"Coze API调用失败: {coze_response.status_code}")
  75. else:
  76. print(f"创建目标失败: {response.text}")
  77. except Exception as e:
  78. print(f"请求异常: {e}")
  79. if __name__ == "__main__":
  80. test_create_goal_response()