自动化测试难题,验证码如何解决
一.去掉验证码
这是最简单的解决方案, 对于开发人员来说, 只是将验证码的相关代码注释掉就行, 但这种方案只能在测试环境下进行, 在线上环境下会对系统产生一定的风险.
二.设置万能验证码
去掉验证码会产生安全问题, 线上系统的安全性很重要不能忽略, 这时我们可以采用不取消验证码, 而是在程序代码中留一个"后门" 也就是预留一个万能的验证码, 只要输入这个固定的万能验证码, 则认为验证通过.
三.验证码识别技术
步骤1: 安装识别验证码需要的python库
pip install pillow
pip install pytesseract
步骤2: 通过代码识别图片尺寸并获取识别后的验证码
from io import BytesIO
from PIL import Image
import pytesseract
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.maximize_window()
driver.get('http://localhost/index.php/Home/user/login.html')
# 保存页面
scree = driver.get_screenshot_as_png()
# 定位图片
img = driver.find_element(By.ID, 'verify_code_img')
# 输出图片 及尺寸大小
print(img.location, img.size)
location = img.location #图片坐标轴
size = img.size # 图片大小
left = location['x'] # x轴
top = location['y'] # y轴
right = size['width'] + left # 宽度
bottom = size['height'] + top # 高度
verify_img = Image.open(BytesIO(scree)).crop((left,top,right,bottom))
verify_img.save('verify_img.png')
image1 = Image.open('verify_img.png')
text = pytesseract.image_to_string(image1)
print(text)
识别技术成功率一般低于30%, 仍然需要不断的进行优化和练习才能够提升.
四.记录cookie
以BaiDu为案例:
步骤1: 通过浏览器登录正常的百度账号, 如下图:
步骤2: 使用抓包工具或者打开浏览器的开发者工具栏,找到Application中的Cookies选项:
找到最最重要的两个数据: “BAIDUID” “BDUSS”
步骤3:
编写自动化测试脚本, 跳过登录
from time import sleep
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com")# 添加Cookie
driver.add_cookie({'name':'BAIDUID','value':'1699E29FCB27B74AE688991269EE7212:FG=1'})
driver.add_cookie({'name':'BDUSS','value':'FZTndRRnBlSjNMQUZsNzNPSzdCZnp0MU83TX5lLU9XaDJrdHloTS1odWpJcDlpRVFBQUFBJCQAAAAAAAAAAAEAAADv1Oew0rvT79K7yMvJ-s7eu9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOVd2KjlXdiOH'})# 刷新页面
driver.refresh()
sleep(5)
#关闭浏览器
driver.quit()
刷新浏览器,显示已登录效果:
使用cookie进行登录绕过的最大难点是如何来获取用户的cookie相关数据, 最重要的是 name和key这两个参数.
我们可以通过selenium中的 driver.get_cookies()方法来获取, 数据为 [{“key1”:“value1”},{“key2”:“value2”}…] 列表嵌套字典格式,先对列表数据进行遍历,再来进一步确认需要使用的数据.
最后:
最简单安全行之有效的方式就是设置万能验证码, 当然愿意在技术方向更进一步的同学, 也可以通过验证码识别来实现.
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:38天自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!
自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享
自动化测试难题,验证码如何解决相关推荐
- 自动化测试--20验证码识别
1.验证码的目的:就是为阻止通过代码自动登录 2.验证码的解决方法: 1)通过第三方工具识别验证码 2)通过第三方网站识别验证码-人工识别 3)通过万能验证码的方式-为了做自动化测试 4)可以屏蔽掉验 ...
- WhatsApp收不到验证码怎么解决呢?华为手机| 安卓手机| 苹果手机
WhatsApp收不到验证码,神烦,尝试多次后,发现还是不行.把 致电给我 的那个按钮入口,都尝试地没了.还是搞不好. 我瞎乱折腾一通之后,致电给我 的按钮都消失了 自己尝试的解决方法 1. 打电话 ...
- 搭建网校系统,既能解决疫情下教育培训难题,也解决了企业办公问题
现如今,不再是只想着解决温饱的时代,物质条件不断满足的同时,人们也想得到精神方面的寄托.于是疯狂报瑜伽课,报舞蹈班,插花艺术等来满足自己精神层面的需求,不断提高自己,让我国的培训业进入了一个快速发展的 ...
- 不能显示验证码的解决办法
现在的很多的游戏.文章.帖子等在打开时,要求输入验证码,可是有些时候验证码显示不出来,今天我就来告诉大家几种不能显示验证码的解决办法. 网页上的验证码一般采用两种图片格式: 一..xbm图片 (不过因 ...
- MeEdu-Admin管理端部署不显示验证码如何解决?
MeEdu-Admin管理端部署不显示验证码如何解决? 出现以下情况如何解决? 1.登录面板,找到你搭建的MeEdu_API站点,开启以下ThlinkPHP伪静态 2.MeEduAdmin伪静态规则如 ...
- 淘宝滑块验证码的解决方法 和 接口
采集淘宝商品详情遇到滑块验证码的解决方法 最近更新时间:2019年11月25日,*大家都知道,淘宝的反爬虫机制十分严,而很多时候,没办法高效的拿到数据内容响应终端需求,而依赖爬虫就会造成动不动就出现滑 ...
- 迅歌点歌系统服务器过期或不信任怎么办,酷狗音乐验证码失效解决方法 酷狗音乐验证码失效怎么回事...
酷狗音乐是一款很多伙伴都在用听歌软件,这款软件从旧版本到最新版本已经有很久的记录了,现在还有用户注册登录这款软件,但是发送的验证码都是失效,想知道怎么解决,需要的伙伴不要错过哦! 酷狗音乐验证码失效怎 ...
- 快速获取容器VIPs,解决集群自动化测试难题
出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一.三.五晚6点10分 与您不见不散 说在前面 要想使用容器集群来启动自动化测试,那么我们就必须要了解容器的 VIPs .我一直在 ...
- 【实战演练】快速获取容器VIPs,解决集群自动化测试难题
项目背景介绍 要想使用容器集群来启动自动化测试,那么我们就必须要了解容器的 VIPs .文章作者 Marcos Tenrero 一直在尝试使用 Docker 内部的服务发现功能来识别在 Docker ...
最新文章
- 方差分析(Analysis of Variance,ANOVA)是什么?方差分析的形式有哪些?
- 新建idea加入的一句话,键值对
- 八十四、SpringBoot微服务Dubbo和Zookeeper分布式
- 10个你必须知道的Python内置函数
- 无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据
- RDD的几种创建方式
- 《对不队》团队项目用户验收评审
- 作者:赵国栋(1974-),男,中关村大数据产业联盟秘书长,北京大数据研究院副院长...
- ECCV 2020 | 自监督任务辅助的知识蒸馏
- 华为Mate 30 Pro前面板曝光:双曲面设计 几乎全是屏
- Python Logging Handler
- error) DENIED Redis is running in protected mode because protected mode is enabled报错
- python基础二:函数
- java计算机毕业设计销售人员绩效管理系统源码+系统+数据库+lw文档(1)
- python在冒号处显示语法错误_python for常见语法错误
- C语言新手入门成长帖(1)
- u深度u盘制作与装系统教程
- IOS逆向-动态调试
- oracle 去空格函数未生效,发现ASCII值为49824的字符
- 基于微信电影播放小程序系统设计与实现 开题报告
热门文章
- 吴孟达版《高等工程数学》第四章+matlab实践
- Find_in_set()函数的使用及in()用法详解
- 去掉goland中间的令人烦躁的竖线
- python输入一组数据找出被七除余一的数_C程序设计实验-1-7.doc
- 在线查字典/汉语字典大全/字典查询网站源码开发搭建
- ajax img src如何索引,使用jQuery的ajax方法作为blob检索图像
- CHERRY G80-8113 软硬编程教程
- 【图文教程】虚拟机VMware16 windows系统下载安装
- 数据库分析之逻辑结构设计
- 《嵌入式系统 – 玩转ART-Pi开发板(基于RT-Thread系统)》第9章 基于Select/Poll实现并发服务器(二)