#!/usr/bin/env python3 import requests import json import time base_url = "http://127.0.0.1:5000" def test_interview_flow(): print("=== 测试面试完整流程 ===") # 1. 开始面试 print("\n1. 开始面试...") start_response = requests.post( f"{base_url}/api/interview/start", headers={"Content-Type": "application/json"}, json={"job_position": "前端开发工程师", "difficulty": "medium"} ) if start_response.status_code != 200: print(f"开始面试失败: {start_response.status_code}") print(start_response.text) return False start_data = start_response.json() interview_id = start_data.get("interview_id") print(f"面试ID: {interview_id}") print(f"第一个问题: {start_data.get('question')}") # 2. 回答第一个问题 print("\n2. 回答第一个问题...") answer1 = "我有3年前端开发经验,熟悉React和Vue框架。" answer1_response = requests.post( f"{base_url}/api/interview/answer", headers={"Content-Type": "application/json"}, json={"interview_id": interview_id, "answer": answer1, "request_feedback": False} ) if answer1_response.status_code != 200: print(f"回答问题失败: {answer1_response.status_code}") print(answer1_response.text) return False answer1_data = answer1_response.json() print(f"第二个问题: {answer1_data.get('question')}") # 3. 回答第二个问题 print("\n3. 回答第二个问题...") answer2 = "我在项目中使用过React Hooks,特别是useState、useEffect和useContext,能够有效管理组件状态和副作用。" answer2_response = requests.post( f"{base_url}/api/interview/answer", headers={"Content-Type": "application/json"}, json={"interview_id": interview_id, "answer": answer2, "request_feedback": False} ) if answer2_response.status_code != 200: print(f"回答问题失败: {answer2_response.status_code}") print(answer2_response.text) return False answer2_data = answer2_response.json() if answer2_data.get('ended'): print("面试结束") else: print(f"第三个问题: {answer2_data.get('question')}") # 4. 生成面试反馈 print("\n4. 生成面试反馈...") # 构造对话历史 conversation_history = [ {"role": "assistant", "content": start_data.get('question')}, {"role": "user", "content": answer1}, {"role": "assistant", "content": answer1_data.get('question')}, {"role": "user", "content": answer2} ] if not answer2_data.get('ended') and answer2_data.get('question'): conversation_history.append({"role": "assistant", "content": answer2_data.get('question')}) feedback_response = requests.post( f"{base_url}/api/interview/feedback", headers={"Content-Type": "application/json"}, json={"interview_id": interview_id, "conversation_history": conversation_history} ) if feedback_response.status_code != 200: print(f"生成反馈失败: {feedback_response.status_code}") print(feedback_response.text) return False feedback_data = feedback_response.json() print("\n=== 面试反馈 ===") print(feedback_data.get('feedback', '')) return True if __name__ == "__main__": success = test_interview_flow() if success: print("\n=== 测试成功!完整的面试流程正常工作 ===") else: print("\n=== 测试失败!请检查相关代码 ===")