自動化測試中如何解決圖片驗證碼問題


一. 使用場景說明

在接口自動化測試中,一般各業務接口會對登錄接口有所依賴,而登錄接口中會存在有要求輸入圖片驗證碼的問題,最終導致接口自動化測試難以順利展開。

二. 圖片驗證碼分析

1. 本文中遇到的驗證碼特點為:字符有扭曲,字符彼此擁擠在一起,字符中存有遮擋線

2. OCR圖像識別可以識別出一些比較規范的字體,不適用於本場景。

3. 如果想成功識別出本文中遇到的驗證碼,有如下幾種方案:

方案1:使用TensorFlow,通過模型訓練,搭建一套符合自身業務特點的驗證碼識別系統

方案2:使用開放的AI模型訓練平台,如百度的EasyDL, 有一定的免費使用次數

方案3:使用收費的圖像識別接口,如圖鑒平台,大概價格是1塊錢可識別500次驗證碼

三. 設計方案說明

                           

1. 用mitmproxy工具來監控UI端操作(mitmproxy服務會以子線程方式啟動),它主要包含有兩個操作: 1)下載驗證碼圖片;2)獲取認證信息。

2. 通過1-2-3步驟,在UI端模擬用戶登錄操作。由於圖片識別接口有一定的失敗率,所以登錄失敗后,會進行登錄重試

3. 登錄成功后,抓包線程會成功抓取到認證信息,並將其放入隊列中。主線程從隊列中取出認證信息,並保存至config.ini中。

4. 業務API會優先從config.ini中讀取認證信息,如果config.ini中的認證信息失效了,則通過步驟8來刷新認證信息,並自動重新執行業務API

5. 本方案中涉及到的兩處重試場景(已用下划線標出), 均使用tenacity庫完成的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM