🧪 Tupalish 胖爹英文 — 功能測試報告

依照 📖 平台操作說明 逐項實測每個功能的操作流程、輸入與輸出

🕒 測試時間:2026/8/3 12:29:26(台北) 🌍 測試環境:正式站 tupalish.pages.dev ⏱️ 總耗時:2.0 秒 🔧 模式:唯讀健康檢查
27
測試項目
27
✅ 通過
0
❌ 失敗
100%
通過率

🌐 頁面健康檢查 19/19 通過

頁面 /(首頁) 228ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 首頁」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「胖爹英文」,大小 19.8 KB
頁面 /nibbles(Nibbles 短影音) 19ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 Nibbles 短影音」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /nibbles
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「Nibbles」,大小 8.6 KB
頁面 /library(影音圖書館) 17ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 影音圖書館」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /library
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「圖書館」,大小 9.3 KB
頁面 /pro(Pro 教學專區) 17ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 Pro 教學專區」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /pro
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「Pro」,大小 11.0 KB
頁面 /study(學習專區) 20ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 學習專區」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /study
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「學習專區」,大小 25.1 KB
頁面 /battle(英霸對戰) 17ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 英霸對戰」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /battle
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「對戰」,大小 13.2 KB
頁面 /ai(AI 學習工具) 19ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 AI 學習工具」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /ai
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「AI」,大小 12.6 KB
頁面 /teacher(教師管理平台) 20ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 教師管理平台」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /teacher
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「教師」,大小 10.3 KB
頁面 /community(社群互動) 22ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 社群互動」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /community
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「社群」,大小 10.4 KB
頁面 /partners(合作與公益) 16ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 合作與公益」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /partners
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「合作」,大小 12.4 KB
頁面 /app(小斗英 APP) 14ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 小斗英 APP」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /app
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「小斗英」,大小 11.6 KB
頁面 /guide(平台操作說明) 20ms

🎯 測試目的(依操作說明):依說明「點導覽列進入 平台操作說明」— 頁面能正常載入

⬅️ 輸入(實際請求)
GET /guide
📋 預期輸出
HTTP 200 且含頁面關鍵字
➡️ 實際輸出結果
HTTP 200,頁面含「操作說明」,大小 117.2 KB
靜態資源 /static/logo.png 19ms

🎯 測試目的(依操作說明):品牌 Logo 正常提供

⬅️ 輸入(實際請求)
GET /static/logo.png
📋 預期輸出
HTTP 200 image/png
➡️ 實際輸出結果
HTTP 200, Content-Type=image/png
學習資料 vocab.json 325ms

🎯 測試目的(依操作說明):學習專區「vocab」模組資料檔可載入且為合法 JSON

⬅️ 輸入(實際請求)
GET /static/study/vocab.json
📋 預期輸出
HTTP 200 + JSON 可解析
➡️ 實際輸出結果
HTTP 200,JSON 頂層鍵: levels(270 KB)
學習資料 grammar.json 164ms

🎯 測試目的(依操作說明):學習專區「grammar」模組資料檔可載入且為合法 JSON

⬅️ 輸入(實際請求)
GET /static/study/grammar.json
📋 預期輸出
HTTP 200 + JSON 可解析
➡️ 實際輸出結果
HTTP 200,JSON 頂層鍵: junior, senior(53 KB)
學習資料 exam.json 126ms

🎯 測試目的(依操作說明):學習專區「exam」模組資料檔可載入且為合法 JSON

⬅️ 輸入(實際請求)
GET /static/study/exam.json
📋 預期輸出
HTTP 200 + JSON 可解析
➡️ 實際輸出結果
HTTP 200,JSON 頂層鍵: gsat, cloze, reading, translate(25 KB)
學習資料 listening.json 134ms

🎯 測試目的(依操作說明):學習專區「listening」模組資料檔可載入且為合法 JSON

⬅️ 輸入(實際請求)
GET /static/study/listening.json
📋 預期輸出
HTTP 200 + JSON 可解析
➡️ 實際輸出結果
HTTP 200,JSON 頂層鍵: dictation, cloze, mcq, sound, stress(38 KB)
學習資料 games.json 189ms

🎯 測試目的(依操作說明):學習專區「games」模組資料檔可載入且為合法 JSON

⬅️ 輸入(實際請求)
GET /static/study/games.json
📋 預期輸出
HTTP 200 + JSON 可解析
➡️ 實際輸出結果
HTTP 200,JSON 頂層鍵: sentence, cloze, daily(8 KB)
學習資料 essay_library.json 18ms

🎯 測試目的(依操作說明):學習專區「essay_library」模組資料檔可載入且為合法 JSON

⬅️ 輸入(實際請求)
GET /static/study/essay_library.json
📋 預期輸出
HTTP 200 + JSON 可解析
➡️ 實際輸出結果
HTTP 200,JSON 頂層鍵: pastPrompts, patterns(10 KB)

📡 公開 API 8/8 通過

平台即時統計 273ms

🎯 測試目的(依操作說明):說明「首頁 → 即時統計」— 提供會員/影音/互動數

⬅️ 輸入(實際請求)
GET /api/stats
📋 預期輸出
HTTP 200 + 統計數字
➡️ 實際輸出結果
{"videos":15,"likes":26722,"views":114863,"members":8,"donation_total":3500}
影音清單 27ms

🎯 測試目的(依操作說明):說明「Nibbles → 瀏覽短影音牆」

⬅️ 輸入(實際請求)
GET /api/videos
📋 預期輸出
HTTP 200 + videos 陣列
➡️ 實際輸出結果
HTTP 200,共 15 部影音
月明星榜 / 公告 / 黃頁 / 學校 88ms

🎯 測試目的(依操作說明):社群與合作頁的公開資料

⬅️ 輸入(實際請求)
GET /api/stars|announcements|partners|schools
📋 預期輸出
全部 HTTP 200
➡️ 實際輸出結果
/api/stars ✓ | /api/announcements ✓ | /api/partners ✓ | /api/schools ✓
許願池清單 23ms

🎯 測試目的(依操作說明):說明「社群 → 課程許願池」

⬅️ 輸入(實際請求)
GET /api/wishes
📋 預期輸出
HTTP 200 + 願望清單
➡️ 實際輸出結果
HTTP 200,共 4 個願望
Pro 課程清單 22ms

🎯 測試目的(依操作說明):說明「Pro 專區 → 瀏覽課程」— 5 大分類

⬅️ 輸入(實際請求)
GET /api/pro/courses
📋 預期輸出
HTTP 200 + 課程陣列
➡️ 實際輸出結果
HTTP 200,共 18 門課程
直播場次 25ms

🎯 測試目的(依操作說明):說明「Pro 專區 → 預約直播」場次清單

⬅️ 輸入(實際請求)
GET /api/pro/live
📋 預期輸出
HTTP 200 + sessions
➡️ 實際輸出結果
HTTP 200,共 4 場直播
對戰週排行榜 23ms

🎯 測試目的(依操作說明):說明「對戰 → 週排行榜」

⬅️ 輸入(實際請求)
GET /api/battle/leaderboard
📋 預期輸出
HTTP 200 + 榜單
➡️ 實際輸出結果
{"top":[],"mine":null}
未登入保護:上傳影音應被擋 68ms

🎯 測試目的(依操作說明):安全性 — 說明指出上傳需登入

⬅️ 輸入(實際請求)
POST /api/videos(無登入)
📋 預期輸出
HTTP 401
➡️ 實際輸出結果
HTTP 401 ✓ 正確拒絕:「請先登入會員才能發表影音喔!」