// 结伴客系统API测试脚本 const axios = require('axios'); const BASE_URL = 'https://webapi.jiebanke.com/api/v1'; // 创建axios实例 const api = axios.create({ baseURL: BASE_URL, timeout: 10000, headers: { 'Content-Type': 'application/json' } }); // 测试用例 async function testAPI() { console.log('🚀 开始测试结伴客系统API...\n'); try { // 1. 测试健康检查 console.log('1. 测试健康检查接口...'); const healthResponse = await api.get('/health'); console.log('✅ 健康检查成功:', healthResponse.data); // 2. 测试用户注册 console.log('\n2. 测试用户注册接口...'); const registerData = { username: 'testuser', password: 'test123', nickname: '测试用户', email: 'test@jiebanke.com', phone: '13800138000', gender: 'male', birthday: '1990-01-01' }; try { const registerResponse = await api.post('/auth/register', registerData); console.log('✅ 用户注册成功:', registerResponse.data); } catch (error) { if (error.response?.status === 409) { console.log('⚠️ 用户已存在,跳过注册测试'); } else { throw error; } } // 3. 测试用户登录 console.log('\n3. 测试用户登录接口...'); const loginData = { username: 'testuser', password: 'test123' }; const loginResponse = await api.post('/auth/login', loginData); console.log('✅ 用户登录成功'); const token = loginResponse.data.data.token; // 设置认证头 api.defaults.headers.common['Authorization'] = `Bearer ${token}`; // 4. 测试获取用户信息 console.log('\n4. 测试获取用户信息接口...'); const userInfoResponse = await api.get('/auth/me'); console.log('✅ 获取用户信息成功:', userInfoResponse.data.data.user.nickname); // 5. 测试创建旅行计划 console.log('\n5. 测试创建旅行计划接口...'); const travelPlanData = { destination: '西藏', start_date: '2025-07-01', end_date: '2025-07-15', budget: 5000, interests: '自驾,摄影,探险', visibility: 'public' }; const travelResponse = await api.post('/travel/plans', travelPlanData); console.log('✅ 创建旅行计划成功:', travelResponse.data.data.plan.destination); // 6. 测试获取旅行计划列表 console.log('\n6. 测试获取旅行计划列表接口...'); const travelListResponse = await api.get('/travel/plans'); console.log('✅ 获取旅行计划列表成功:', travelListResponse.data.data.plans.length + '条记录'); // 7. 测试商家注册 console.log('\n7. 测试商家注册接口...'); const merchantData = { merchant_type: 'farm_owner', business_name: '测试农场', contact_person: '测试联系人', contact_phone: '13800138001', address: '测试地址', description: '测试农场描述' }; try { const merchantResponse = await api.post('/merchants/register', merchantData); console.log('✅ 商家注册成功:', merchantResponse.data.data.merchant.business_name); } catch (error) { console.log('⚠️ 商家注册测试跳过:', error.response?.data?.message || error.message); } console.log('\n🎉 所有API测试完成!'); console.log('\n📋 测试总结:'); console.log('✅ 健康检查接口 - 正常'); console.log('✅ 用户认证接口 - 正常'); console.log('✅ 旅行计划接口 - 正常'); console.log('✅ 商家服务接口 - 部分测试'); } catch (error) { console.error('❌ API测试失败:'); if (error.response) { console.error('状态码:', error.response.status); console.error('错误信息:', error.response.data); } else { console.error('错误信息:', error.message); } process.exit(1); } } // 运行测试 if (require.main === module) { testAPI().catch(console.error); } module.exports = { testAPI, api };