Files
nexus/openclaw/xingjiang/projects/smart-trip-quote/docs/TEST_PLAN.md

151 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Smart Trip Quote Web 端测试计划
source:
author: shenwei
published:
created:
description:
tags: []
---
# Smart Trip Quote Web 端测试计划
## 测试目标
验证 Web 端功能,包括用户登录、需求创建、行程管理等核心流程。
---
## 一、测试环境
| 项目 | 值 |
|------|-----|
| Web 地址 | http://192.168.3.189:8000 |
| Nginx 地址 | http://192.168.3.189:7777 |
| Admin 用户 | admin / admin123 |
| 数据库 | MariaDB (stq_db) |
---
## 二、测试用例
### 2.1 用户登录测试
| 用例ID | 测试项 | 预期结果 |
|--------|--------|----------|
| TC001 | 访问 Admin 登录页 | 页面正常显示样式 |
| TC002 | 使用正确凭据登录 | 登录成功,进入管理后台 |
| TC003 | 使用错误密码登录 | 提示用户名或密码错误 |
| TC004 | CSRF 防护验证 | 登录表单包含 csrf token |
### 2.2 旅行需求 (Requirement) 测试
| 用例ID | 测试项 | 预期结果 |
|--------|--------|----------|
| TC010 | 创建新需求 | 需求成功创建返回需求ID |
| TC011 | 查看需求列表 | 显示所有需求记录 |
| TC012 | 查看需求详情 | 显示需求的完整信息 |
| TC013 | 更新需求状态 | 状态成功更新 |
### 2.3 行程 (Itinerary) 测试
| 用例ID | 测试项 | 预期结果 |
|--------|--------|----------|
| TC020 | 创建行程 | 行程成功创建 |
| TC021 | 行程关联目的地 | 目的地正确关联 |
| TC022 | 查看行程列表 | 显示所有行程 |
### 2.4 API 接口测试
| 用例ID | 接口 | 方法 | 预期结果 |
|--------|------|------|----------|
| TC030 | /api/requirements/ | GET | 返回需求列表 |
| TC031 | /api/requirements/ | POST | 创建新需求 |
| TC032 | /api/itineraries/ | GET | 返回行程列表 |
| TC033 | /api/webhook/requirement/ | POST | 处理 webhook 请求 |
### 2.5 Webhook 端点测试
| 用例ID | 测试项 | 预期结果 |
|--------|--------|----------|
| TC040 | n8n 触发需求创建 | 需求成功创建 |
| TC041 | n8n 触发行程优化 | 行程优化完成 |
---
## 三、测试数据准备
### 3.1 现有测试数据
- 需求: 3 条 (REQ_2026_001/002/003)
- 行程: 3 条 (ITN_2026_001/002/003)
- 目的地: 9 条
### 3.2 创建测试数据 (Django Shell)
```python
# 创建测试用户
python manage.py shell -c "
from django.contrib.auth.models import User
User.objects.create_user('test', 'test@test.com', 'test123')
"
# 创建测试需求
python manage.py shell -c "
from apps.models import Requirement
from django.contrib.auth.models import User
user = User.objects.first()
Requirement.objects.create(
requirement_id='TEST_001',
origin_input='测试需求',
group_total=2,
destination_cities='上海;杭州',
travel_start_date='2026-04-01',
travel_end_date='2026-04-05',
created_by=user
)
"
```
---
## 四、测试执行方式
### 4.1 手动测试
1. 打开浏览器访问 http://192.168.3.189:7777/admin/
2. 使用 admin/admin123 登录
3. 按测试用例逐项验证
### 4.2 自动化测试 (Django Test)
```bash
# 运行所有测试
docker compose exec web python manage.py test
# 运行特定测试
docker compose exec web python manage.py test tests.test_webhook_refactor -v 2
```
### 4.3 API 测试 (curl)
```bash
# 登录获取 CSRF token
curl -c cookies.txt http://192.168.3.189:8000/admin/login/
curl -b cookies.txt -X POST http://192.168.3.189:8000/admin/login/ \
-d "username=admin&password=admin123&csrfmiddlewaretoken=xxx"
# 测试 API
curl http://192.168.3.189:8000/api/requirements/
```
---
## 五、缺陷跟踪
| 缺陷ID | 描述 | 状态 |
|--------|------|------|
| - | - | - |
---
## 六、注意事项
1. **CSRF 问题**: 通过 Nginx 访问时需配置 CSRF_TRUSTED_ORIGINS
2. **静态文件**: 确保 collectstatic 已执行
3. **数据库**: 测试数据可在测试环境预先准备