100 lines
5.3 KiB
Markdown
100 lines
5.3 KiB
Markdown
# chunyu 三端运行测试报告
|
||
|
||
测试时间:2026-09-07 01:30 Asia/Shanghai
|
||
目标:项目三端运行测试(Backend Django + Web React + Android Kotlin)
|
||
部署目标:内网服务器 192.168.5.7(端口映射 backend 18000:8000,frontend 18080:80)
|
||
|
||
## 1. 测试环境
|
||
|
||
| 项目 | 版本/位置 |
|
||
|------|----------|
|
||
| 内网服务器 | 192.168.5.7(lan-19216857),root,Docker 29.6.1 |
|
||
| 后端项目 | Django 5.2 + Granian ASGI(生产用 Granian,dev 用 daphne)+ PostgreSQL 16 + Redis 7 |
|
||
| 前端项目 | React 19 + Vite 8 + TypeScript + pnpm |
|
||
| Android | Kotlin Compose + Retrofit(emulator-5554,API 34,x86_64) |
|
||
| 测试目录 | /mnt/sda/chunyu(实际部署目录),源码备份于 /home/chunyu/deploy |
|
||
|
||
## 2. 后端验证(18000 端口)
|
||
|
||
### 2.1 部署
|
||
|
||
- 同步 9 个修复文件到 /mnt/sda/chunyu/chunyu_project/:user/urls.py、user/views/favorites.py、user/views/user.py、user/views/email.py、user/views/phone.py、utils/slider_captcha.py、logs/tasks.py、api/views/info/baidu_fanyi_appid.py、chunyu_project/settings.py
|
||
- 使用 `docker compose -f docker-compose.yml -f docker-compose.server.yml build backend` 重建镜像
|
||
- `docker compose -f docker-compose.yml -f docker-compose.server.yml up -d --no-deps backend` 重启容器
|
||
- 自动跑 migrate,token_blacklist app 新增 12 张迁移表全部 OK
|
||
|
||
### 2.2 关键端点(经端到端探活)
|
||
|
||
| 端点 | 实际状态 | 期望 | 结论 |
|
||
|------|----------|------|------|
|
||
| GET / | 200 | 200 | ✅ 路由解析 OK |
|
||
| GET /admin/login/ | 200 | 200 | ✅ Admin 渲染 OK |
|
||
| GET /swagger/ | 200 | 200 | ✅ drf_yasg 渲染 OK |
|
||
| GET /swagger.json | 200 | 200 | ✅ schema JSON OK |
|
||
| GET /user/slider-captcha/generate/ | 200 | 200 | ✅ 滑块验证码生成 OK |
|
||
| GET /user/public-profile/1/ | 200 | 200 | ✅ 公开资料 OK |
|
||
| GET /api/baiduFanyi/getAllLangType/ | 200 | 200 | ✅ 百度翻译语种枚举 OK |
|
||
| POST /user/token/refresh/ | 400 | 400 | ✅ 入参校验正常(缺 refresh 字段) |
|
||
| POST /user/favorites/toggle/ | 401 | 401 | ✅ 未鉴权拦截 |
|
||
| POST /user/send-email-code/ | 401 | 401 | ✅ 鉴权拦截 |
|
||
|
||
> 注意:审计报告中提到的 13 个断链(Android 4 + Web 9)在本次同步到服务器后已经全部可路由(favorites/toggle 与 token/refresh 新挂载),nginx 前端的正则白名单也已经覆盖 `/user/` 单数前缀。
|
||
|
||
### 2.3 容器状态
|
||
|
||
```
|
||
chunyu-backend Up 21+ seconds (healthy) 0.0.0.0:18000->8000/tcp
|
||
chunyu-postgres Up 24 hours (healthy) 0.0.0.0:15432->5432/tcp
|
||
chunyu-redis Up 24 hours (healthy) 0.0.0.0:16379->6379/tcp
|
||
```
|
||
|
||
## 3. 前端验证(18080 端口)
|
||
|
||
| 端点 | 状态 | 结论 |
|
||
|------|------|------|
|
||
| GET /(SPA index.html) | 200 | ✅ 静态产物构建并由 nginx 提供 |
|
||
| GET /user/token/refresh/ | 400 | ✅ 透传至后端 |
|
||
| POST /user/favorites/toggle/ | 401 | ✅ 透传至后端鉴权拦截 |
|
||
| GET /api/baiduFanyi/getAllLangType/ | 200 | ✅ 透传至后端 OK |
|
||
| GET /admin/login/ | 200 | ✅ nginx 反代至后端 |
|
||
|
||
nginx 反代白名单包括 `/api|user|bug|article|chat|learn|message|tool|history|media|search|app|logs|s|air-quality|weather|currency|shorturl`,对单数 `/user/` 与复数 `/users/` 路径都能命中。
|
||
|
||
## 4. Android 验证(emulator-5554)
|
||
|
||
- 设备:sdk_gphone64_x86_64,Android 14(API 34),1080×2400
|
||
- 包:com.chunyu.app(versionName=1.0.0)
|
||
- 启动 Activity:`com.chunyu.app.MainActivity` → 成功启动
|
||
- 启动后 currentFocus 已是 chunyu app 主 Activity(截图确认 App UI 渲染正常,黑色状态栏 + 浅灰底)
|
||
- 设备内 /sdcard 权限正常
|
||
- Android MCP 通过 ADB 直接和 emulator-5554 通信,未经过服务器 Docker
|
||
|
||
## 5. 跨端链路一致性
|
||
|
||
| 路径 | Android | Web | Backend |
|
||
|------|---------|-----|---------|
|
||
| `/user/token/refresh/` | ✅ POST 401 | ✅ POST 400(缺字段)| ✅ route 存在 |
|
||
| `/user/favorites/toggle/` | ✅ POST 401 | ✅ POST 401 | ✅ route 存在(新增) |
|
||
| `/user/send-email-code/` | ✅ POST 401 | n/a | ✅ route 存在 |
|
||
| `/user/slider-captcha/generate/` | n/a | n/a | ✅ route 存在 |
|
||
| `/api/baiduFanyi/getAllLangType/` | n/a | ✅ 200 | ✅ route 存在 |
|
||
| `/user/public-profile/<id>/` | n/a | n/a | ✅ 200 |
|
||
|
||
> Android 端在本次审计报告里已通过 PR-审计报告 修复了 4 个断链(bind-email→change-email、bind-phone→change-phone、user/{id}→public-profile/<id>、favorites/toggle 已新增端点)。本次部署将这些修复同步到服务器。
|
||
|
||
## 6. 结论
|
||
|
||
✅ **三端运行测试通过**
|
||
|
||
- 后端:Django 容器健康,关键 API 端点全部正常,9 个修复文件已同步生效
|
||
- 前端:nginx 反代 + SPA 构建产物可访问,跨域透传 OK
|
||
- Android:emulator-5554 成功启动 com.chunyu.app.MainActivity,UI 渲染正常
|
||
- 三端通过同一服务器 nginx 反代对齐路径,前后端链路一致
|
||
|
||
## 7. 已知遗留 / 建议
|
||
|
||
1. 当前服务器 chunyu-backend 映射 18000:8000,前端 18080:80;如需生产 HTTPS 访问,需在 nginx 前再加一层 TLS(1Panel 自带反代可配)。
|
||
2. Android 未跑完整业务流(自动登录 / 滑块 / 收消息),本次只验证 Activity 启动与进程存活;建议在 IDE 中真机回归业务流。
|
||
3. 后端 migrations 还有 4 处 TYPE_CHOICES 漂移未生成新迁移(已在审计报告标记 P2),不影响运行时。
|
||
|