ABCDEFGHIJKLMNOPQRSTUVWXY
1
測試人員Pichu Chen
2
測試表版本2021070501ptt-backend 版本3ddbc67 (v0.0.4)通過1727.86885246
3
測試時間2021/07/05 11:16go-bbs 版本(選)v0.6.0失敗1931.14754098
4
測試環境 golang 版本go1.16.2未測試2540.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
SectionTest 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 TokenFailed出現 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 應該要回應 availableFailed404 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 應該要回應 forbiddenN/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 的資料,其中要有上次登入IPPass
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 不應該看到任何資料,應該要看到 errorFailed
回傳的資料僅有 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 不應該成功,應該要看到 errorFailed
在沒有加入任何參數的 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-3GET /v1/boards 看到的 SYSOP 版應該要顯示 SYSOP 為版主,沒有版主的看板,"moderators" 應該要為空陣列FailedSYSOP 的版主回傳空陣列
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 不應該看到看板資訊,要回傳 errorFailed回傳 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 不應返回東西,應該出現 errorPass
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 不應該出現文章列表,應該出現 errorFailed回傳 HTTP 401, 但沒有任何 Payload
96
C5-1-2在放入一般使用者的 Access Token 的情況下 GET /v1/boards/bm_only/articles (例如 SECURITY )不應該出現文章列表,因為這是版主以上才能看到的版,應該出現 errorFailed回傳 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-5N/A
100