首页 技术 正文
技术 2022年11月23日
0 收藏 792 点赞 5,166 浏览 1014 个字

对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,

对于系统来说使用验证码可以有效果的防止采用机器猜测方法对口令的刺探,在一定程度上增加了安全性。但对于测试人员来说,不管是进行性能测试还是自动化测试

都是一个棘手的问题。下面详细的介绍一下通过Cookie跳转过验证码这种方式。

参考了虫师的:自动化测试 — 通过Cookie跳过登录验证码

准备工具:

——————

fiddler

Python+selenium

——————

以百度登录为例。

Cookie跳转登录验证码

打开百度的登录页面,验证码是汉字的,通过程序识别起来有点难度,也会比较麻烦。

接下来开始动手。

1、开启Fiddler 工具。

Cookie跳转登录验证码

2、通过浏览器登录正常登录百度账号。

Cookie跳转登录验证码

3、通过Fiddler获取登录请求的Cookie。找到Host为“passport.baidu.com”的URL,在右侧窗口查看该请求的Cookie。

Cookie跳转登录验证码

然后,找到重要的两个参数“BAIDUID”和“BDUSS”。

4、编写Selenium自动化测试脚本,跳过登录。

Cookie跳转登录验证码

from selenium import webdriverdriver = webdriver.Chrome()
driver.get("https://www.baidu.com")# 添加Cookie
driver.add_cookie({'name':'BAIDUID','value':'AAAAAAAAAAAAAA:FG=1'})
driver.add_cookie({'name':'BDUSS','value':'AAAAAAAAAAAAAAAAAAAAAAAAAA'})# 刷新页面
driver.refresh()# 获取登录用户名并打印
username = driver.find_element_by_class_name("user-name").text
print(username)#关闭浏览器
driver.quit()

Cookie跳转登录验证码

首先,访问百度首页,处于未登录状态。

然后,通过Selenium所提供add_cookie()方法添加Cookie信息。

最后,刷新页面,现在已经是登录状态了,获取登录之后的用户名并打印

注意:

其实说了这么多,最简单的方式是和开发人员沟通,在测试环境屏蔽验证码(会降低系统安全性),最好的方式是在开发过程中设置一个万能的验证码

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849