最近在做生产环境自动化测试,碰到一个难题就是短信验证码的获取,生产环境短信验证码是真实的,不能采用测试环境将短信验证码写成固定的方法解决,我的思路是:做一个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()函数取到验证码并填入,短信验证码成功解决,提升了脚本的执行效率和自动化覆盖率!

作者:测试部-王晶晶

java代码进行短信接收_自动化测试-自动获取手机短信验证码相关推荐

  1. python自动读取短信_自动化测试-自动获取手机短信验证码

    最近在做生产环境自动化测试,碰到一个难题就是短信验证码的获取,生产环境短信验证码是真实的,不能采用测试环境将短信验证码写成固定的方法解决,我的思路是:做一个apk小程序,将手机上的短信验证码实时读取出 ...

  2. atitit 破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结

    atitit.破解  拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结 1. 自动获取手机短信方式的原理 1 2. 调用api 1 3. ----核心代码 2 4.  ...

  3. python群发手机短信_python实现发送和获取手机短信验证码

    首先为大家分享python实现发送手机短信验证码后台方法,供大家参考,具体内容如下 1.生成4位数字验证码 def createPhoneCode(session): chars=['0','1',' ...

  4. python读取手机短信信息_python 自动获取手机短信验证码

    需要一个有权限的 APK 在手机实时存储短信到手机内存 /sdcard/smslog.txt 里(外部SD卡也可以知道能通过adb命令访问到): /***** ...... try { long ti ...

  5. python 自动获取手机短信验证码

    需要一个有权限的 APK 在手机实时存储短信到手机内存 /sdcard/smslog.txt 里(外部SD卡也可以知道能通过adb命令访问到): /***** ...... try { long ti ...

  6. android获取手机短信记录,android 获取手机电话号码和短信内容

    通过ContentResolver 获取到手机的联系人跟手机短信信息并显示出来. 1.实现的代码: package com.example.phone; import java.text.Simple ...

  7. 短信开发系列(二):GSM手机短信开发之短信解码

    短信开发系列目录: 短信开发系列(一):GSM手机短信开发初探 短信开发系列(二):GSM手机短信开发之短信解码 短信开发系列(三):短信接收引擎 昨天写了短信的发送,今天我们在来谈谈如果读取SIM卡 ...

  8. 安卓开发系列 之如何获取手机短信内容

    1 手机中短信数据库相关字段包括: _id:短信序号,如100 address:发件人地址,即手机号,如+8613811810000,这里需要注意的是手机号是否加+86,可以加上86和不加86分别测试 ...

  9. 华为设置android系统提醒功能,华为手机短信不提醒怎么办?华为手机短信提醒设置方法...

    华为手机短信提醒设置方法 1)检查当前设置的默认短信应用是哪个应用. ①点击桌面"设置"图标②找到"应用程序管理" ③选择"默认应用设置"④ ...

最新文章

  1. 前端面试题整理(定期更新)
  2. Python中文件读写之 w+ 与 r+ 到底有啥区别?
  3. mysql数据库显示问号_mysql数据库中文显示问号
  4. 数字蝶变,离不开云原生“苍穹”
  5. 1.8 Linux用户与用户组文件权限
  6. 搞了一个迭代发布下SpringBoot Jar瘦身方案,老大给我打了个A+
  7. 微信公号“架构师之路”学习笔记(四)-分布式ID生成算法(应用场景、uuid/guid、snowflake算法)
  8. 百科园c语言题库13164,C语言题库-编程
  9. 大数据工程师简历怎么写,更受到HR青睐?
  10. 要计算机桌面,科幻再次要成真:你的办公桌面很快也会变成计算机
  11. 加载webView使用框架AgenWeb
  12. undi是什么意思_undefined什么意思?
  13. 2022年建筑电工(建筑特殊工种)考试技巧及建筑电工(建筑特殊工种)复审模拟考试
  14. docker环境下mysql镜像启动后权限更改问题的解决
  15. XUPT新生赛题目回顾(1)
  16. Html 使用svg图标、iconfont的使用方法
  17. 【整理】EFI/UEFI BIOS 入门 : All For Beginners
  18. 关于 insert into ... select * from 注意事项
  19. HEDD:增强子疾病相关数据库
  20. echarts:中国地图实现

热门文章

  1. 显示2位小数 python3_python3+ 和 Python2+的一些区别
  2. jquery 对象 和 js 对象 为什么要互相转换?_JQuery对象与dom对象两者之间的相互转换...
  3. Linux2个文件一起打包,Linux文件压缩和打包(二)
  4. php删除下拉框记录,删除一条数据_php删除一条记录(删除确认提示)
  5. linux内核循环,模仿Linux内核kfifo实现的循环缓存
  6. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.3)
  7. 实现CA证书创建及客户端申请证书
  8. 启动项目的时候报驱动错误: not support oracle driver 1.0
  9. selenium win7+selenium2.0+python环境搭建
  10. Daily Scrum02 12.17