A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 測試人員 | Pichu Chen | |||||||||||||||||||||||
2 | 測試表版本 | 2021070501 | ptt-backend 版本 | 3ddbc67 (v0.0.4) | 通過 | 17 | 27.86885246 | ||||||||||||||||||
3 | 測試時間 | 2021/07/05 11:16 | go-bbs 版本(選) | v0.6.0 | 失敗 | 19 | 31.14754098 | ||||||||||||||||||
4 | 測試環境 golang 版本 | go1.16.2 | 未測試 | 25 | 40.98360656 | ||||||||||||||||||||
5 | 對應文件版本 | Draft 19 | 測試環境作業系統版本 | macOS 11.4 (20F71) | 61 | ||||||||||||||||||||
6 | 文件連結 | https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k/edit | 使用測試集 | bbs_backup_1624243644.tar.xz | 預設使用的帳號密碼 | ||||||||||||||||||||
7 | 測試 | ||||||||||||||||||||||||
8 | Section | Test Case | 參數 | 結果 | 觀察 | ||||||||||||||||||||
9 | Section 1 登入 | ||||||||||||||||||||||||
10 | 測試 /v1/token 這個 Endpoint | ||||||||||||||||||||||||
11 | C1-1-1 | 輸入正確的帳號密碼 (SYSOP / 123123) 以 /v1/token 登入系統應該要取得 access token 參數 | Pass | ||||||||||||||||||||||
12 | C1-1-2 | 輸入錯誤的帳號密碼 (SYSOP / 1231234) 登入系統不應該取得 access token 參數,同時要出現錯誤訊息 | Pass | ||||||||||||||||||||||
13 | C1-1-3 | 未輸入帳號或密碼登入系統,不應取得 access token 參數,同時要出現錯誤訊息 | Pass | ||||||||||||||||||||||
14 | |||||||||||||||||||||||||
15 | 測試 /v1/register 這個 Endpoint | ||||||||||||||||||||||||
16 | C1-2-1 | 在沒有 user01 的狀況下輸入 POST /v1/register 參數 username=user01 password=pass01 要能註冊成功並且取得 Access Token | Failed | 出現 404 page not found | |||||||||||||||||||||
17 | C1-2-2 | 已經註冊過 user01 的狀況下輸入 POST /v1/register 參數 username=user01 password=pass01 應該要跳出錯誤 | N/A | ||||||||||||||||||||||
18 | C1-2-3 | 在註冊 user01後可以用 user01 登入 | N/A | ||||||||||||||||||||||
19 | C1-2-4 | 參數 username 的字元若不在 /[a-zA-Z0-9]/ 內應該要跳出錯誤 | N/A | ||||||||||||||||||||||
20 | C1-2-5 | 參數 username 過長(超過13個字元)應該要跳出錯誤 | N/A | ||||||||||||||||||||||
21 | |||||||||||||||||||||||||
22 | 測試 /v1/register/precheck 這個Endpoint | ||||||||||||||||||||||||
23 | C1-3-1 | 在沒有註冊過 user01 的狀況下輸入 GET /v1/register/precheck?type=username&value=user01 應該要回應 available | Failed | 404 page not found | |||||||||||||||||||||
24 | C1-3-2 | 輸入 GET /v1/register/precheck?type=username&value=SYSOP 應該要回應 forbidden | N/A | ||||||||||||||||||||||
25 | C1-3-3 | 輸入 GET /v1/register/precheck?type=username&value=sysop 應該要回應 forbidden | N/A | ||||||||||||||||||||||
26 | C1-3-4 | 在註冊過 user01 的狀況下輸入 GET /v1/register/precheck?type=username&value=user01 應該要回應 forbidden | N/A | ||||||||||||||||||||||
27 | |||||||||||||||||||||||||
28 | 測試 /v1/users/{{user_id}}/register-form | ||||||||||||||||||||||||
29 | C1-4-1 | 在剛註冊完成時 GET /v1/users/{{自己的ID}}/register-form 應該要是空的 | Failed | 回傳空值,沒有錯誤訊息 | |||||||||||||||||||||
30 | C1-4-2 | 在註冊後傳送 POST /v1/users/{{自己的ID}}/register-form type=regform value={"真實姓名": "王大明"} 後GET register-form 應該要看到資訊 | N/A | ||||||||||||||||||||||
31 | |||||||||||||||||||||||||
32 | Section 2 使用者資料 | ||||||||||||||||||||||||
33 | 測試 /v1/users/{{user_id}}/information 這個 Endpoint | ||||||||||||||||||||||||
34 | C2-1-1 | 取得 Access Token �後 GET /v1/users/SYSOP/information 應該要能夠取得 SYSOP 的資料,其中要有上次登入IP | Pass | ||||||||||||||||||||||
35 | C2-1-2 | 取得 Access Token �後 GET /v1/users/NOTEXIST/information 不應該取得任何人的資料,回應的 JSON 要有 error 欄位 | Failed | 回傳的資料僅有 401 的 HTTP Status, 沒有 error 欄位 | |||||||||||||||||||||
36 | C2-1-3 | 不放入 Access Token 的時候 GET /v1/users/SYSOP/information 不應該取得任何人的資料,回應的 JSON 要有 error 欄位 | Failed | 回傳的資料僅有 401 的 HTTP Status, 沒有 error 欄位 | |||||||||||||||||||||
37 | C2-1-4 | 取得 Access Token 後 GET /v1/users/{{自己的ID}}/information 應該取得自己的使用者資料,其中金錢數量應該能顯示正確數值 | Pass | ||||||||||||||||||||||
38 | C2-1-5 | 使用 SYSOP 的 Access Token 登入�後 GET /v1/users/SYSOP/information 應該要能夠取得 SYSOP 的資料,其中登入時間應該要是今天 | Failed | 登入日期 last_login_time 並不是今日,停留在 2021-06-13 | |||||||||||||||||||||
39 | |||||||||||||||||||||||||
40 | 測試 /v1/users/{{user_id}}/preferences 這個 Endpoint | ||||||||||||||||||||||||
41 | C2-2-1 | 使用非 SYSOP 帳號取得 Access Token 後 GET /v1/users/SYSOP/preferences 不應該取得任何資料,回應的 JSON 要有 error 欄位 | Pass | ||||||||||||||||||||||
42 | C2-2-2 | 取得 Access Token 後 GET /v1/users/{{自己的ID}}/preferences 應該要取得自己的資料 | Pass | ||||||||||||||||||||||
43 | |||||||||||||||||||||||||
44 | 測試 /v1/users/{{user_id}}/favorites 這個 Endpoint | ||||||||||||||||||||||||
45 | C2-3-1 | 取得 Access Token 後在不新增任何最愛項目的情況 GET /v1/users/{{自己的ID}}/favorites 應該要看到 data 和 items 項目,其中items 應該要是空陣列 | Failed | 看到了錯誤訊息而不是空陣列 得到了 "pttbbs: OpenFavFile error: open ../go-bbs/home/bbs//home/p/pichu/.fav: no such file or directory" 這樣的錯誤訊息 | |||||||||||||||||||||
46 | C2-3-2 | 使用參數 action=add_favorite type=line 新增了一條分隔線後,取得 Access Token 後 GET /v1/users/{{自己的ID}}/favorites 應該要看到 items 裡面有一個 type 為 line 的元素 | Failed | 得到了 404 Not found | |||||||||||||||||||||
47 | C2-3-3 | 使用參數 action=add_favorite type=folder title=test 新增一個資料夾後,在只有一個資料夾時,取得 Access Token 後 GET /v1/users/{{自己的ID}}/favorites 應該要看到 items 裡面有一個 type 為 folder 的元素 | N/A | ||||||||||||||||||||||
48 | C2-3-4 | 使用參數 action=add_favorite type=board board_id=SYSOP 新增一個看板後,在只有一個看板時,取得 Access Token 後 GET /v1/users/{{自己的ID}}/favorites 應該要看到 items 裡面有一個 type 為 board 的元素 | N/A | ||||||||||||||||||||||
49 | |||||||||||||||||||||||||
50 | 測試 /v1/users/{{user_id}}/mails | ||||||||||||||||||||||||
51 | C2-4-1 | ||||||||||||||||||||||||
52 | |||||||||||||||||||||||||
53 | 測試 /v1/users/{{user_id}}/articles | ||||||||||||||||||||||||
54 | C2-5-1 | 不放入 Access Token 的情況下 GET /v1/users/SYSOP/articles 不應該看到任何文章,應該要看到 error 元素 | Pass | ||||||||||||||||||||||
55 | C2-5-2 | 放入 Access Token 之後, GET /v1/users/SYSOP/articles 應該看到 SYSOP 曾經發過的文章 | Pass | ||||||||||||||||||||||
56 | C2-5-3 | 取得回來的列表要能正確看到看板以及發文日期 (post_date) | Failed | 發文日期 post_date 是空字串 | |||||||||||||||||||||
57 | |||||||||||||||||||||||||
58 | 測試 /v1/users/{{user_id}}/comments | ||||||||||||||||||||||||
59 | C2-6-1 | 不放入 Access Token 的情況下 GET /v1/users/SYSOP/comments 不應該看到任何文章,應該要看到 error 元素 | Pass | ||||||||||||||||||||||
60 | C2-6-2 | 放入 Access Token 之後, GET /v1/users/SYSOP/comments 應該看到 SYSOP 曾經留言過的文章 | Failed | 看到一堆空物件 | |||||||||||||||||||||
61 | |||||||||||||||||||||||||
62 | 測試 /v1/users/{{user_id}}/drafts/{{draft_id}} | ||||||||||||||||||||||||
63 | C2-7-1 | 不放入 Access Token 的情況下 GET /v1/users/SYSOP/drafts/0 不應該看到任何資料,應該要看到 error | Failed | 回傳的資料僅有 401 的 HTTP Status, 沒有 error 欄位 | |||||||||||||||||||||
64 | C2-7-2 | 放入 Access Token 之後,在沒有任何草稿的情況下 GET /v1/users/{{自己的ID}}/drafts/0 不應該看到任何資料 | Failed | 在沒有檔案的情況下,會發生error 錯誤訊息為 "open ../go-bbs/home/bbs//home/p/pichu/buf.0: no such file or directory" | |||||||||||||||||||||
65 | C2-7-3 | 放入非 SYSOP 的 Access Token 之後, POST /v1/users/SYSOP/drafts/0 不應該成功,應該要看到 error | Failed | 在沒有加入任何參數的 POST 中回傳 HTTP 400, 但沒有任何 payload | |||||||||||||||||||||
66 | C2-7-4 | 放入 Access Token 之後, POST /v1/users/{{自己的ID}}/drafts/0 參數 action=update_draft raw=MTIzC%3D%3D (123 的 base64編碼) 應該要成功 | Failed | 回傳 HTTP 400, 但沒有任何 Payload | |||||||||||||||||||||
67 | C2-7-5 | 放入 Access Token 之後,設定 draft 0 為 123 後, GET /v1/users/{{自己的ID}}/drafts/0 應該要看到 raw 有 MTIzC%3D%3D (123 的 base64 編碼) | N/A | ||||||||||||||||||||||
68 | C2-7-6 | 放入 Access Token 之後,設定 draft 0 為 「中文」(0xa4a4a4e5) 後, GET /v1/users/{{自己的ID}}/drafts/0 應該要看到 raw 有 「pKSk5Q==」 | N/A | ||||||||||||||||||||||
69 | C2-7-7 | 放入 Access Token 之後,設定 draft 0 為 123 後 存取 draft 1 不應該看到任何資料 | N/A | ||||||||||||||||||||||
70 | C2-7-8 | 放入 Access Token 之後,設定 draft 0 為 123 後 POST /v1/users/{{自己的ID}}/draft/0 action=delete_draft 存取 draft 0 不應該看到任何資料 | N/A | ||||||||||||||||||||||
71 | |||||||||||||||||||||||||
72 | Section 3 看板部分 | ||||||||||||||||||||||||
73 | 測試 /v1/boards 這個 Endpoint | ||||||||||||||||||||||||
74 | C3-1-1 | 放入 Access Token 之後, GET /v1/boards 可以看到 SYSOP 板 | Pass | ||||||||||||||||||||||
75 | C3-1-2 | 以 SYSOP 帳號登入之後, POST /v1/boards board_id=testboard01 title=TestBoard 後取得看板列表可以看到 testboard01 看板 | Failed | 回傳 HTTP 400, 但沒有任何 Payload | |||||||||||||||||||||
76 | C3-1-3 | GET /v1/boards 看到的 SYSOP 版應該要顯示 SYSOP 為版主,沒有版主的看板,"moderators" 應該要為空陣列 | Failed | SYSOP 的版主回傳空陣列 | |||||||||||||||||||||
77 | |||||||||||||||||||||||||
78 | 測試 /v1/boards/{{board_id}}/information 這個 Endpoint | ||||||||||||||||||||||||
79 | C3-2-1 | 放入 Access Token 之後, GET /v1/boards/SYSOP/information 可以看到 SYSOP 看板的看板資訊 | Pass | ||||||||||||||||||||||
80 | C3-2-2 | 沒有放入Access Token 的時候,GET /v1/boards/SYSOP/information 不應該看到看板資訊,要回傳 error | Failed | 回傳 HTTP 401, 但沒有任何 Payload | |||||||||||||||||||||
81 | |||||||||||||||||||||||||
82 | 測試 /v1/boards/{{board_id}}/settings 這個 Endpoint | ||||||||||||||||||||||||
83 | C3-3-1 | 放入 Access Token 之後, GET /v1/boards/SYSOP/settings 可以看到 SYSOP 看板的看板設定 | Pass | 但是要取�test 看板時出現 401 Unauthorized 然後沒有 Payload | |||||||||||||||||||||
84 | |||||||||||||||||||||||||
85 | 測試 /v1/classes/{{class_id}} 這個 Endpoint | ||||||||||||||||||||||||
86 | C3-4-1 | 放入 Access Token 之後, GET /v1/classes/1 要返回分類主目錄 | Pass | ||||||||||||||||||||||
87 | C3-4-2 | 放入 Access Token 之後, GET /v1/classes/-1 不應返回東西,應該出現 error | Pass | ||||||||||||||||||||||
88 | |||||||||||||||||||||||||
89 | Section 4 熱門看板部分 | ||||||||||||||||||||||||
90 | 測試 /v1/popular-boards 這個 Endpoint | ||||||||||||||||||||||||
91 | C4-1-1 | 在不放入Access Token 的情況下 GET /v1/popular-boards 應該出現熱門看板列表,上限為 100 個看板 | Pass | ||||||||||||||||||||||
92 | |||||||||||||||||||||||||
93 | Section 5 文章列表部分 | ||||||||||||||||||||||||
94 | 測試 /v1/boards/{{board_id}}/articles 這個 Endpoint | ||||||||||||||||||||||||
95 | C5-1-1 | 在不放入 Access Token 的情況下 GET /v1/boards/SYSOP/articles 不應該出現文章列表,應該出現 error | Failed | 回傳 HTTP 401, 但沒有任何 Payload | |||||||||||||||||||||
96 | C5-1-2 | 在放入一般使用者的 Access Token 的情況下 GET /v1/boards/bm_only/articles (例如 SECURITY )不應該出現文章列表,因為這是版主以上才能看到的版,應該出現 error | Failed | 回傳 HTTP 401, 但沒有任何 Payload | |||||||||||||||||||||
97 | C5-1-3 | 在放入 Access Token 的情況下在SYSOP看板新增一篇有20推的文章 GET /v1/boards/SYSOP/articles 參數 recommend_count_gt 10 應該要出現該篇文章 | N/A | ||||||||||||||||||||||
98 | C5-1-4 | 在放入 Access Token 的情況下 POST /v1/boards/SYSOP/articles 參數 action=add_article title=Test article=Test 後應該要在看板列表中看到這篇文章 | N/A | ||||||||||||||||||||||
99 | C5-1-5 | 在放入 Access Token 的情況下 POST /v1/boards/SYSOP/articles 參數 action=add_article title=中文 article=中文 後應該要在看板列表中看到這篇文章,輸入參數為中文,文章回傳為Big-5 | N/A | ||||||||||||||||||||||
100 |