iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
Software Development

FastAPI 開發系列 第 16

使用者驗證 - 測試不可知的事務以符合真實情境 - 規劃

  • 分享至 

  • xImage
  •  

老獅:繞了一大圈,還記得我們的需求要幹嘛嗎?

小獅:我們要做登入系統,之前有列出測試項目

0. 創建使用者在資料庫,確認該使用者存在於資料庫
1. 使用者 A 用他的帳號密碼登入以後可以拿到 JWT token 並且解析出該使用者的 username
2. 使用者 A 用錯密碼無法換取可以登入的 JWT token
3. 使用者 A 可以使用 refresh token 換到一樣可以換回一個新的 token 並可以拿回該使用者的 username

小獅:我們已經完成最一開始的測試項目了

老獅:很好,我們現在要在資料庫中產生一個使用者,並且用他的帳號密碼登入換取 token ,然後希望用該 token 可以用 token info API 去獲得該使用者的使用者名稱

小獅:我們不是有寫一個名為 test 的登入測試,我們是去改他嗎?

老獅:可以的,但是為了讓該測試更加貼近真實,也就是說,我們不能寫死 test 當作 token 內容中的使用者名稱,你會如何設計該測試?

小獅:不管我們用哪個寫死的字串,在 API 端想要騙他的話,應該都可以辦到,那不然我們用亂數產生如何?

老獅:想法不錯,那我們就來規劃一下測試的流程

目的:創建使用者 A 用他的帳號密碼登入以後可以拿到 JWT token 並且解析出該使用者的 username
1. 建立亂數的帳號
2. 建立亂數的密碼
3. 使用 1. 2. 的資訊創建使用者,於資料庫中
4. 使用 1. 2. 去 POST "/v1/auth/users/tokens"
5. 使用 4. 回傳的 `token` 去 GET "/v1/auth/users/tokens/info",並且驗證該回傳的 username 與 1. 相同

上一篇
工欲善其事
下一篇
使用者驗證 - 測試不可知的事務以符合真實情境 - 1
系列文
FastAPI 開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言