自動化測試-自動獲取手機短信驗證碼


最近在做生產環境自動化測試,碰到一個難題就是短信驗證碼的獲取,生產環境短信驗證碼是真實的,不能采用測試環境將短信驗證碼寫成固定的方法解決,我的思路是:做一個apk小程序,將手機上的短信驗證碼實時讀取出來,存儲到手機sd卡的一份文件里,再通過python讀取文件內容就可以了。

 

一、apk是采用Android studio 開發,開發步驟如下:

首先創建一個空項目

創建完之后,項目目錄結構如下:

添加權限

編輯清單文件(AndroidMainfest.xml,此文件在mainfests文件夾下),添加短信接收讀取權限,添加sd卡操作文件權限,添加位置如圖所示:

 

接下來就是主要的JAVA代碼部分

寫代碼之前先進行下分析:

獲取短信內容中的驗證碼:

(1)分析短信內容:

我們想收取的短信格式一般為:“【】XXX驗證碼為123456.XXX

格式為 “中文字符” + 6位數字驗證碼” + “其他字符”

(2)使用正則表達式表述驗證碼:[0-9]{6,6}(?![0-9])

在java->com.example.sms文件夾下添加java文件SmsReceiver.java,文件代碼如下:

 

二、android代碼編寫完成后,點擊運行按鈕,選擇要運行代碼的手機,點擊【OK】,程序會自動安裝到手機上

安裝的時候會要求用戶勾選權限,如圖所示:

安裝完成,如圖所示:

接下來我們給此手機發送短信,收到短信后,我們在手機的sd卡里自動生成了一個sb.txt文件,此文件存儲的最新短信驗證碼

sb.txt文件內容如下:

到此為止短信驗證碼已經能夠讀取到了,接下來在我們的自動化代碼(python編寫)里構建個函數,將此文件內容讀取出來

 

跑腳本時,手機需要連接到電腦(可以用數據線連接,也可以遠程連接,此處不再詳述)

OK!腳本執行到獲取短信驗證碼之后,調用getSMS()函數取到驗證碼並填入,短信驗證碼成功解決,提升了腳本的執行效率和自動化覆蓋率!


免責聲明!

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



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