51Testing软件测试论坛

标题: 【我分享】android自动获取短信验证码 [打印本页]

作者: 张亚洲    时间: 2015-1-9 08:42
标题: 【我分享】android自动获取短信验证码
好吧,标题党了~
前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码。
主要就是实时获取短信信息。
android上获取短信信息主要有BroadcastReceiver方式与数据库方式,要实时的话就BroadcastReceiver比较方便
[java] view plaincopy



如此当有短信收到时就可以将短信内容写到SD卡中的文件里
在另一个java类中写个读取文件内容的方法,并在写测试用例过程中,将得到的String按验证码的具体位置截取即可。

[java] view plaincopy

  • public String read(String str) throws IOException{   
  •         File file=new File(str);  
  •         FileInputStream fis=new FileInputStream(file);  
  •         StringBuffer sb=new StringBuffer();  
  •          
  •         BufferedInputStream bis=new BufferedInputStream(fis);  
  •         BufferedReader  read = new BufferedReader (new InputStreamReader(bis));  
  •         int c=0;  
  •         while ((c=read.read())!=-1) {  
  •             sb.append((char) c);  
  •         }  
  •         read.close();  
  •         bis.close();  
  •         fis.close();  
  •         Log.i(TAG, sb.toString());        
  •         String verify=sb.toString();         
  •         return verify;  
  •     }  


最后需要在manifest中增加申明,且注册权限
<receiver android:name="com.cplatform.surfdesktop.test.util.SMSReceiver">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>

</receiver>

<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS"/>


测试过程中需要用到短信验证码时就可以实时获取了







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2