ABCDEFGHIJKLMNOPQRSTUVWXY
1
測試人員
2
測試表版本202108211943ptt-backend 版本v0.9.0通過2845.16129032
3
測試時間go-bbs 版本(選)v0.11.0失敗2235.48387097
4
測試環境 golang 版本v1.16.6未測試1219.35483871
5
對應文件版本Draft 21測試環境作業系統版本
macOS 11.5.1 20G80
62
6
文件連結
https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k/edit
使用測試集
bbs_backup_1626627835.tar.xz
預設使用的帳號密碼
7
測試
8
SectionTest Case參數結果觀察
9
Section 1 登入
10
測試 /v1/token 這個 Endpoint
11
C1-1-1輸入正確的帳號密碼以 /v1/token 登入系統應該要取得 access token 參數-d username=SYSOP
-d password=123123
Pass
出現Log postToken parse form err: %!w(<nil>)
12
C1-1-2輸入錯誤的帳號密碼登入系統不應該取得 access token 參數,同時要出現錯誤訊息-d username=SYSOP
-d password=1231234
Pass
出現Log postToken parse form err: %!w(<nil>)
13
C1-1-3未輸入帳號或密碼登入系統,不應取得 access token 參數,同時要出現錯誤訊息Pass
出現Log postToken parse form err: %!w(<nil>)
14
15
測試 /v1/register 這個 Endpoint
16
C1-2-1在沒有 user01 的狀況下以 POST /v1/register 註冊帳號要能註冊成功並且取得 Access Token-d username=user01
-d password=pass01
Failed
path /v1/register not found
17
C1-2-2已經註冊過 user01 的狀況下以 POST /v1/register 註冊帳號應該要跳出錯誤-d username=user01
-d 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 應該要回應 availableFailed
path /v1/register/precheck 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
path /v1/users/users01/register-form not found
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
上次登入IP、IPv4、登入時間沒有被更新。
上次登入國家回傳空字串。
郵件描述回傳空字串。
35
C2-1-2取得 Access Token �後 GET /v1/users/NOTEXIST/information 不應該取得任何人的資料,回應的 JSON 要有 error 欄位Pass
36
C2-1-3不放入 Access Token 的時候 GET /v1/users/SYSOP/information 不應該取得任何人的資料,回應的 JSON 要有 error 欄位Pass
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
登入時間不是今天,停留在 Telnet 版本的登入時間
Pb#257
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 應該要是空陣列Pass
46
C2-3-2新增了一條分隔線後,取得 Access Token 後 GET /v1/users/{{自己的ID}}/favorites 應該要看到 items 裡面有一個 type 為 line 的元素-d action=add_favorite
-d type=line
Failed新增似乎沒有生效,
pichu3 原本一無所有,
執行後仍然一無所有。
Pb#288
47
C2-3-3新增一個資料夾後,在只有一個資料夾時,取得 Access Token 後 GET /v1/users/{{自己的ID}}/favorites 應該要看到 items 裡面有一個 type 為 folder 的元素-d action=add_favorite
-d type=folder
--data-urlencode title=test
Failed新增似乎沒有生效,
pichu3 原本一無所有,
執行後仍然一無所有。
Pb#288
48
C2-3-4新增一個看板後,在只有一個看板時,取得 Access Token 後 GET /v1/users/{{自己的ID}}/favorites 應該要看到 items 裡面有一個 type 為 board 的元素-d action=add_favorite
-d type=board
-d board_id=SYSOP
Failed新增似乎沒有生效,
pichu3 原本一無所有,
執行後仍然一無所有。
Pb#288
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
aid、board_id、post_date以及 url 回傳空字串
56
C2-5-3取得回來的列表要能正確看到看板以及發文日期 (post_date)Failedpost_date 為空字串Pb#259
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 曾經留言過的文章Pass
61
62
測試 /v1/users/{{user_id}}/drafts/{{draft_id}}
63
C2-7-1不放入 Access Token 的情況下 GET /v1/users/SYSOP/drafts/0 不應該看到任何資料,應該要看到 errorPass
錯誤內容現為 get user draft permission error : get user id from token failed: token contains an invalid number of segments
是否比照顯示 no permission 即可?
64
C2-7-2放入 Access Token 之後,在沒有任何草稿的情況下 GET /v1/users/{{自己的ID}}/drafts/0 不應該看到任何資料Pass
65
C2-7-3放入非 SYSOP 的 Access Token 之後, POST /v1/users/SYSOP/drafts/0 不應該成功,應該要看到 errorPass
錯誤內容現為 get user draft permission error : get user id from token failed: token contains an invalid number of segments
是否比照顯示 no permission 即可?
66
C2-7-4放入 Access Token 之後, POST /v1/users/{{自己的ID}}/drafts/0 (123 的 base64編碼) 應該要成功-d action=update_draft
--data-urlencode raw=MTIzC==
Failed
HTTP/1.1 400 Bad Request 沒有錯誤訊息
伺服器端錯誤訊息為 failed to decode raw text: illegal base64 data at input byte 5
67
C2-7-5放入 Access Token 之後,設定 draft 0 為 123 後, GET /v1/users/{{自己的ID}}/drafts/0 應該要看到 raw 有 MTIzC== (123 的 base64 編碼)N/A
68
C2-7-6放入 Access Token 之後,設定 draft 0 為 「中文」(0xa4a4a4e5) 後, GET /v1/users/{{自己的ID}}/drafts/0 應該要看到 raw 有 「pKSk5Q==」-d action=update_draft
--data-urlencode raw=pKSk5Q==
Failed
HTTP/1.1 400 Bad Request 沒有錯誤訊息
伺服器端錯誤訊息為 failed to decode raw text: illegal base64 data at input byte 5
69
C2-7-7放入 Access Token 之後,設定 draft 0 為 123 後 存取 draft 1 不應該看到任何資料Failed
HTTP/1.1 400 Bad Request 沒有錯誤訊息
伺服器端錯誤訊息為 failed to decode raw text: illegal base64 data at input byte 5
70
C2-7-8放入 Access Token 之後,設定 draft 0 為 123 後 POST /v1/users/{{自己的ID}}/draft/0 刪除草稿後存取 draft 0 不應該看到任何資料-d action=delete_draftN/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 後取得看板列表可以看到 testboard01 看板-d board_id=testboard01
--data-urlencode title=TestBoard
Failed
new board TestBoard failed
76
C3-1-3GET /v1/boards 看到的 ptt_app 版應該要顯示 SYSOP 為版主,沒有版主的看板,"moderators" 應該要為空陣列Pass
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 不應該看到看板資訊,要回傳 errorPass
錯誤內容現為 get user draft permission error : get user id from token failed: token contains an invalid number of segments
是否比照顯示 no permission 即可?
81
C3-2-3成功取回 /v1/boards/ptt_app/information 後,應該要在moderators 看到 SYSOP 為版主Pass
82
83
測試 /v1/boards/{{board_id}}/settings 這個 Endpoint
84
C3-3-1放入 Access Token 之後, GET /v1/boards/SYSOP/settings 可以看到 SYSOP 看板的看板設定Pass
85
86
測試 /v1/classes/{{class_id}} 這個 Endpoint
87
C3-4-1放入 Access Token 之後, GET /v1/classes/1 要返回分類主目錄Failed非主目錄的分類ID不應該回傳 1
88
C3-4-2放入 Access Token 之後, GET /v1/classes/-1 不應返回東西,應該出現 errorPass
89
90
Section 4 熱門看板部分
91
測試 /v1/popular-boards 這個 Endpoint
92
C4-1-1在不放入Access Token 的情況下 GET /v1/popular-boards 應該出現熱門看板列表,上限為 100 個看板Failed熱門看板中出現了不是看板的分類Pb#277
93
94
Section 5 文章列表部分
95
測試 /v1/boards/{{board_id}}/articles 這個 Endpoint
96
C5-1-1在不放入 Access Token 的情況下 GET /v1/boards/SYSOP/articles 不應該出現文章列表,應該出現 errorPass
user don't have permission for read board SYSOP
文法怪怪的
97
C5-1-2在放入一般使用者的 Access Token 的情況下 GET /v1/boards/bm_only/articles (例如 SECURITY )不應該出現文章列表,因為這是版主以上才能看到的版,應該出現 errorPass
98
C5-1-3在放入 Access Token 的情況下在 GET /v1/boards/test/articles 搜尋推文 recommend_count_gt 2 應該要出現「來測試看看轉錄看板文章」這篇文章Failed連推文數小於標準的文章也出現了Pb#279
99
C5-1-4在放入 Access Token 的情況下 POST /v1/boards/SYSOP/articles 後應該要在看板列表中看到這篇文章-d action=add_article
--data-urlencode title=Test
--data-urlencode article=Test
Pass
modified_time 異常,出現 2042-07-14
100
C5-1-5在放入 Access Token 的情況下以中文 POST /v1/boards/SYSOP/articles 後應該要在看板列表中看到這篇文章,輸入參數為中文,文章回傳為Big-5-d action=add_article
--data-urlencode title=中文
--data-urlencode article=中文
Pass
modified_time 異常,出現 2042-07-14