当前位置:网站首页>验证码是自动化的天敌?看看阿里P7大神是怎么解决的
验证码是自动化的天敌?看看阿里P7大神是怎么解决的
2022-06-12 00:35:00 【小码哥说测试】

01、验证码
1、什么是验证码:
指一种随机生成的信息(数字、字母、汉字、图片、算术题)等为了防止恶意的请求行为,增加应用的安全性
自动化过程中也是需要进行注册或者登陆的操作,所以需要处理验证

2、验证码处理方式:
去掉验证码
由开发操作,用在测试环境
这是最简单的方法,对于开发人员来说,只是把验证码的相关代码注释掉即可,如果是在测试环境,这样做可省去了测试人员不少麻烦,如果自动化脚本是要在正式环境跑,这样就给系统带来了一定的风险。
设置万能验证码
由开发操作,一般也只使用在测试环境
验证码识别技术
由于技术难度高,识别率很难达到100%,一般不建议使用记录COOKIE 通过记录cookie来跳过登陆的操作
可以通过add_cookie()方法将用户名密码写入浏览器 cookie,再次访问网站时服务器直接读取浏览器 Cookie 登录
02、Cookie
1、Cookie原理
Cookie是由Web服务器生成的,并且保存在用户浏览器上的小文本文件,它可以包含用户相关的信息
Cookie数据格式:键值对组成(python中的字典)
Cookie产生:
客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie数据
Cookie使用:
当浏览器再次请求该网站时,浏览器把请求的数据和Cookie数据一同提交给服务器,服务器检查Cookie,以此来辨认用户状态

2、Selenium操作cookie
driver.get_cookie(name) 获取指名称的cookie信息,返回的是一个字典
driver.get_cookies() 获取的是所有cookie的信息, 返回的是一个列表
driver.add_cookie(dict_cookie) 往浏览器驱动增加cookie,dict_cookie是一个字典
以百度为例
BDUSS是登录百度后的唯一身份凭证(*.baidu.com),拿到BDUSS就等于拿到帐号的控制权,通行贴吧、知道、百科、文库、空间、百度云等百度主要产品。
登录baidu,登录成功后抓取 (BDUSS)
使用add_cookie()方法,添加 ()键和值
调用刷新方法 driver.refresh()
如何获取BDUSS的值?(抓包实现)
通过fiddler工具抓包后,获取BDUSS

若抓包工具不方便,可以通过浏览器搜索cookie信息
点击chrome浏览器设置
在设置搜索中输入cookie
查看所有cookie和网站数据
搜索百度域名:baidu.com
获取BDUSS

代码实现


刷新后,结果展示

学习资源分享
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于在做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

边栏推荐
- Point cloud library PCL from introduction to mastery learning records Chapter 8
- What is bonded warehouse and what is the difference between them
- The long polling processing mechanism of the service end of the # yyds dry goods inventory # Nacos configuration center
- Streaming Data Warehouse 存储:需求与架构
- 汛期化工和危险品企业如何加强防控重大安全风险
- Why are the values of ordereddict not equal- Why are the values of an OrderedDict not equal?
- Invalid spacing setting before WPS Title segment solution
- Concevoir une table MySQL pour la mise en file d'attente des messages pour stocker les données des messages
- Bgfx multithreaded rendering
- win7 fps优化的方法
猜你喜欢

How to uninstall pscs6 in win10 system

LabVIEW Arduino电子称重系统(项目篇—1)

gin解决跨域问题

详解异步任务:函数计算的任务触发去重

Bgfx multithreaded rendering

At the digital data nextionbi online conference, traditional enterprises showed their in-depth understanding of data analysis

How to cancel smart table style in WPS table

DevOps落地实践点滴和踩坑记录-(1)

KV storage separation principle and performance evaluation of nebula graph

深度学习100例 | 第41天:语音识别 - PyTorch实现
随机推荐
Flink CDC + Hudi 海量数据入湖在顺丰的实践
OpenMMLab:AI CV框架
Sword finger offer 09 Implementing queues with two stacks
Web keyboard input method application development guide (2) -- keyboard events
[pat (basic level) practice] - [simple simulation] 1076 WiFi password
[case] building a universal data lake for Fuguo fund based on star ring technology data cloud platform TDC
環境搭建2
在玻璃上构建电路
Concevoir une table MySQL pour la mise en file d'attente des messages pour stocker les données des messages
Flutter 使用本地图片
The latest report of Xinsi technology shows that 97% of applications have vulnerabilities
How much does it cost to develop s2b2c mall system
Openmmlab:ai CV framework
[flume] notes
功能测试如何1个月快速进阶自动化测试?明确这2步就问题不大了
Characteristics of JS logical operators
Pre resolution and scope
ROS2之OpenCV基础代码对比foxy~galactic~humble
[node] common methods of path module
Convert VOC data format to coco data format