自动化测试登录需使用手机验证码,但是测试水平太弱只能让开发写死验证码???
不服气就试试别的方法,这里提供两种解决思路:

1.从服务器日志中获取

此种方法尤其适合生产数据库不开放给测试的公司,短信应用会将日志存在服务器上实现方式如下:

1.1 日志结构:

1.2 安装paramiko库用于SSH登录服务器:

pip install paramiko

1.3 python编码连接服务器并查询结果

import paramiko
import rehostname = "服务器host"
port = 端口号
username = "服务器账号"
password = "密码"
#创建SSH对象
client = paramiko.SSHClient()
#自动添加策略,保存服务器的主机名和密钥信息
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
client.connect(hostname, port, username, password, compress=True)
# 执行linux命令,进入日志文件夹,过滤日志
stdin, stdout, stderr = client.exec_command('cd /home/data/app/sms/logs&grep "测试手机号" msg.log')
#返回的是个列表,切片只要最新的日志
query_res = stdout.readlines()[-1]
#正则匹配提取验证码,切片只要列表中的值
sms_code=re.findall(r'为(.*?),',query_res)[0]
print(sms_code)

1.4 运行结果

2.从数据库获取

此种方法最简单,后端短信服务会将每次发送的验证码信息存进数据库,只需要使用pymysql连接数据库,查询到最新的短信内容,正则提取出验证码即可,实现方式如下:

2.1.1 数据库结构如下:


2.1.2 SQL语句验证一下

2.2 安装pymysql库用于操纵数据库

pip install pymysql

2.3编码实现

import pymysql
from pymysql.cursors import DictCursor
import re#创建数据库连接,填写数据库连接参数,定义返回格式为字典
connect_sql = pymysql.connect(host = '数据库地址',port = 3306,user = '用户',password = '密码',charset = 'utf8',database='数据库名',cursorclass=DictCursor)
#建立游标,如需多次获取数据建议每次单独创建游标查询
mycursor = connect_sql.cursor()
#执行查询语句
mycursor.execute('SELECT record_sms_send.content ''FROM record_sms_send ''WHERE record_sms_send.phone = 测试手机号 ''AND record_sms_send.`status` = 1 ''AND record_sms_send.send_type = 1 ''ORDER BY record_sms_send.send_time DESC ''LIMIT 1;')
#接收查询结果,取出结果字典中的content字段值,并用正则表达式匹配出结果
query_msg=mycursor.fetchone()["content"]
sms_code=re.findall(r'为(.*?),',query_msg)[0]
print(sms_code)#关闭连接和游标,避免内存消耗
mycursor.close()
connect_sql.close()

2.4执行结果

3.总结

以上两种方法都可以解决手机验证码依赖,可以根据自己情况活学活用,可以将上面的代码封装成工具,每次需要使用的时候放在用例前进行调用。

python自动化测试绕过手机验证码相关推荐

  1. python自动化测试——模拟手机浏览器

    from selenium import webdriveroption = webdriver.ChromeOptions() # 伪装iphone option.add_argument('--u ...

  2. 手机验证码常见漏洞总结

    目录 0X00 前言 0X01 无效验证 0X02 客户端验证绕过 0X03 短信轰炸 0X04 验证码爆破 0X05 验证码与手机号未绑定 0X06 代码层逻辑缺陷 0X00 前言 手机验证码在we ...

  3. Python生成随机五位数——模仿手机验证码

    使用Python生成随机的五位手机验证码. # -*- coding:utf-8 -*-#生成五位随机数,模仿手机验证码#导入random库,可以生成随机数 import randomdef ran( ...

  4. atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc...

    atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc 1. 手机短信验证码 vs 图片验证码 安全性(破解成本)确实要高一些1 1 ...

  5. python按照号段生成手机号接收验证码_django 发送手机验证码的示例代码

    一.流程分析: 1.用户在项目前端,输入手机号,然后点击[获取验证码],将手机号发到post到后台. 2.后台验证手机号是否合法,是否已被占用,如果通过验证,则生成验证码,并通过运行脚本,让短信运营商 ...

  6. 用Python模拟识别图片验证码并发送手机验证码

    1.导语 大家好,好久不见.又到每日分享Python小技能的时候了.最近因为疫情影响,所以更新内容比较慢-今天周一,就来更新一波,心血来潮,是时候上线经营了.其实也没想到有啥好分享的,不如分享一些干货 ...

  7. 使用python来实现接收手机验证码

    实现接收手机验证码的方式有很多,下面是其中一种使用Python的方法: 使用第三方短信API,如阿里云短信.腾讯云短信等.这些API提供了发送短信和接收短信的功能,你可以通过调用它们的接口实现发送验证 ...

  8. python手机自动化测试工具_appium+python自动化测试

    appium+python自动化测试 标签(空格分隔): appium 获取APP的包名 1.aapt即Android Asset Packaging Tool,在SDK的build-tools目录下 ...

  9. 自动化测试中的验证码问题

    做自动化测试的同学在面试的时候经常会遇到这问题,而且我们在实际的工作中也会遇到这个问题,那么这问题到底该怎么处理? 下面给出了面试过程中常见的相关面试题供大家参考: 01 在做自动化登陆的同时,如何绕 ...

  10. 讲讲Python爬虫绕过登录的小技巧

    前言: 很多时候我们做 Python 爬虫时或者自动化测试时需要用到 selenium 库,我们经常会卡在登录的时候,登录验证码是最头疼的事情,特别是如今的文字验证码和图形验证码.文字和图形验证码还加 ...

最新文章

  1. GCD BZOJ2818 [省队互测] 数学
  2. 存储时间:高清3D化,技术应用化?
  3. TypeError: new(): data must be a sequence (got float)
  4. Cloud for Customer Restriction and Exclusion Product Lists
  5. GNU工具以及GCC对C语言程序的处理流程
  6. java中字典算法_Java字典生成算法讲解
  7. solaris mysql_配置Solaris下自带的MYSQL
  8. 标识响应式html,第一个html5+响应式页面
  9. webstorm 配置webserver选项,让其他ip设备可访问(如手机等测试效果) ...
  10. spark wordcount 实例
  11. 【童年回忆】4399造梦西游3,各版本CE教程汇总
  12. 计算机禁止安装游戏软件,如何禁止电脑安装软件_怎么禁止在电脑上安装程序 禁止电脑安装程序方法...
  13. linux查看日志内存,linux查看日志、磁盘、cpu、内存使用情况及清理磁盘,日志等。你需要的linux常用基本操作都在这里!!!...
  14. python俄罗斯方块思路_python实现俄罗斯方块小游戏
  15. “千亿市值”巨无霸的膨胀 腾讯靠什么撬动下一个1000亿美金?
  16. java读取 png_JAVA如何操作PNG图片
  17. 前端开发学习之一------前端开发是什么以及我们要学什么
  18. 思科配置终端、路由器、交换机和服务器
  19. 「自控元件及线路」9 旋转变压器
  20. 基于线激光的目标轮廓检测

热门文章

  1. C++ 类(继承中的构造和析构)
  2. win10安装AutoCAD2006步骤
  3. 云计算概念:什么是云计算
  4. Failed to build sentencepiece
  5. 《2022年 Android 中高级面试题汇总》及答案整理(备战金九银十)
  6. 【转】这么多计算几何题目,够你练了
  7. python微信公众号生成专属二维码--你再也不用去求人了
  8. 银行不良贷款很大一部分是诈骗的结果:CAG
  9. python导入wx_Python“导入wx”
  10. android 跳应用市场评分,Android 应用中跳转到应用市场评分示例