软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 开发杂谈 -> python解决接口测试获取手机验证码问题 -> 正文阅读
开发杂谈 最新文章
BloomFilter
大学四年编程之历程
内核分析
造人论坛——意识的本质和一个人工脑模型
OFDM信号[matlab描述]
人类还会进化吗?
HDUACM1035RobotMotion简单模拟题
树、二叉树(二)
iisphpweb.config处理404,500等,跳转友好
DatabaseAsaFortress

[开发杂谈]python解决接口测试获取手机验证码问题

  2015-06-06 16:40:58

最近在做接口测试的时候遇到一个问题,就是有个很重要的接口要用到手机短信验证码,而其他接口都依赖于这个验证码,如果没有短信验证码就不能进行下面接口的测试,所以为了定时的验证线上的接口是否正常,而且又不修改代码,所以就想到一下解决方案,如果大家有了更好方案可以一起交流分享


android 代码
Android在收到短信后会发送一个Action为android.provider.Telephony.SMS_RECEIVED的广播,所以我们只需要写个类继承BroadcastReceiver就可以很容易地监听到短信。

  1. package com.example.getsms; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.text.TextUtils; import android.util.Log; public class SmsInterceptReceiver extends BroadcastReceiver { private final String TAG = "SmsRec"; private static final String SMS_EXTRA_NAME ="pdus"; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub String message = ""; Log.e(TAG, "free message " );           Bundle extras = intent.getExtras();         if ( extras != null ) {            try {           Object[] smsExtra = (Object[]) extras.get( SMS_EXTRA_NAME );                ContentResolver contentResolver = context.getContentResolver();                                Log.e(TAG, "free message " );                for ( int i = 0; i < smsExtra.length; ++i ) {                    SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);                                         String body = sms.getMessageBody().toString();                    message += body;                }                                                Log.e(TAG, "free message : " + message);            } catch (Exception e) {           // TODO: handle exception           Log.e(TAG, e.getMessage());            }        }           } }

AndroidManifest.xml里注册一下接收器:
  1.  <receiver android:name=".SmsInterceptReceiver">         <intent-filter>         <action android:name="android.provider.Telephony.SMS_RECEIVED" />         </intent-filter>         </receiver>

添加权限:
  1. <uses-permission android:name="android.permission.RECEIVE_SMS"/>




python 代码,主要通过adb log来获取apk包所截取的短信信息,然后进行分析后既可使用
__author__ = 'guozhenhua'
#coding=utf-8
import urllib2
import os,time
#解析短信验证码
os.system("adb logcat -c")
cmd="adb logcat -d |findstr E/SmsRec"
#time.sleep(30);
while(1):
    smscode= os.popen(cmd).read()
    #print smscode
    if (smscode!=""):
        smscode=smscode.split("验证码:")[1].split(",")[0]
        break;
print "验证码是:"+smscode

上一篇文章      下一篇文章      查看所有文章
2015-06-06 16:38:27  
360图书馆 论文大全 母婴/育儿 软件开发资料 网页快照 文字转语音 购物精选 软件 美食菜谱 新闻中心 电影下载 小游戏 Chinese Culture
生肖星座解梦 三沣玩客 拍拍 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 天下美图 中国文化英文 多播视频 装修知识库
2017-2-23 12:45:42
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --