python解决接口测试获取手机验证码方法
小编给大家分享一下python解决接口测试获取手机验证码方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨方法吧!
python解决接口测试获取手机验证码问题的方法:
Android在收到短信后会发送一个Action为android.provider.Telephony.SMS_RECEIVED的广播,所以我们只需要写个类继承BroadcastReceiver就可以很容易地监听到短信。
packagecom.example.getsms;importandroid.content.BroadcastReceiver;importandroid.content.ContentResolver;importandroid.content.Context;importandroid.content.Intent;importandroid.os.Bundle;importandroid.telephony.SmsMessage;importandroid.text.TextUtils;importandroid.util.Log;publicclassSmsInterceptReceiverextendsBroadcastReceiver{privatefinalStringTAG="SmsRec";privatestaticfinalStringSMS_EXTRA_NAME="pdus";@OverridepublicvoidonReceive(Contextcontext,Intentintent){//TODOAuto-generatedmethodstubStringmessage="";Log.e(TAG,"freemessage");Bundleextras=intent.getExtras();if(extras!=null){try{Object[]smsExtra=(Object[])extras.get(SMS_EXTRA_NAME);ContentResolvercontentResolver=context.getContentResolver();Log.e(TAG,"freemessage");for(inti=0;i<smsExtra.length;++i){SmsMessagesms=SmsMessage.createFromPdu((byte[])smsExtra[i]);Stringbody=sms.getMessageBody().toString();message+=body;}Log.e(TAG,"freemessage:"+message);}catch(Exceptione){//TODO:handleexceptionLog.e(TAG,e.getMessage());}}}}
AndroidManifest.xml里注册一下接收器:
<receiverandroid:name=".SmsInterceptReceiver"><intent-filter><actionandroid:name="android.provider.Telephony.SMS_RECEIVED"/></intent-filter></receiver>
添加权限:
<uses-permissionandroid:name="android.permission.RECEIVE_SMS"/>
python 代码,主要通过adb log来获取apk包所截取的短信信息,然后进行分析后既可使用。
__author__='guozhenhua'#coding=utf-8importurllib2importos,time#解析短信验证码os.system("adblogcat-c")cmd="adblogcat-d|findstrE/SmsRec"#time.sleep(30);while(1):smscode=os.popen(cmd).read()#printsmscodeif(smscode!=""):smscode=smscode.split("验证码:")[1].split(",")[0]break;print"验证码是:"+smscode
看完了这篇文章,相信你对python解决接口测试获取手机验证码方法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。