在寫接口自動化用例時發現繞不過這個登錄場景,登錄成功之后都需要在請求頭上需要帶上一個token。而通過fidder進行抓包時發現登錄場景存在兩個接口 分別為圖片驗證碼接口和login 接口
1.login 接口需要傳username pw key 以及驗證碼
2.這個key和驗證碼 是通過驗證碼接口返回得到的
3.前期想通過寫死key和驗證碼的方式直接請求login接口,測試時發現驗證碼會過期,請求成功之后后面就不能重復使用了
4.那么就請求兩次,先請求驗證碼接口拿到key 和驗證碼 然和請求login接口獲取到返回的token,然而沒那么容易,key可以輕松得到,而驗證碼這個code值,驗證碼接口是返回的一個驗證碼的鏈接。不能直接獲取到code值。通過資料發現可以通過python的自帶庫來進行識別,但是成功率而言很低,完全瞎顯示結果。。
下面給出方法:
1.通過selenium的方式打開驗證碼接口返回的鏈接,然后進行截圖
2.截圖成功之后,就會得到一個src.png的驗證碼圖片,現在需要進行識別得到code
3.這時候就可以去拜訪百度雲了,申請一個賬號,然后找文字識別產品,創建應用,得到你的賬號,分別為apiid key SECRET_KEY
下載aip-python-sdk-4.15.1.zip 這個python的sdk ,放到你的python目錄完事
https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu
4.下面來貼獲取方式
首先你的賬號,然后取值,每個人需要的東西可能不一樣,也可以識別中文,我這是英文驗證碼就從字符串中取值【13:18】,具體按照實際情況來實現
5.login請求
得到你的vercode之后,就參數化進行傳參數,發起請求 完事