03-使用cookies绕过验证码登录

很多登录都有验证码,由于验证码时随机变化的,且需要识别,导致接口测试做起来比较麻烦。解决这个问题需要两个方式,一个是万能验证码,要么是使用cookies绕过登录操作,直接进行后边的操作。

工具:web页面的Fn+F12(或其它抓包工具fiddler,charles等),Jmeter

一、测试计划中添加全局cookies

  1. 添加HTTP请求默认--设置默认的协议,服务器,端口号。便于统一修改,如测试环境与正式环境的接口切换测试等,只更改这里即可。
  2. 添加信息头管理器,添加content-type等参数。
  3. 添加cookie管理器,创建全局cookie。管理器中所需内容均可在Fn+F12中获取

4.添加新线程组,线程组中可添加不同的接口,具体方法与token的接口请求一样。

### 使用 Cookie 实现绕过验证码自动登录 #### 加载 Cookies 的准备工作 访问目标网站的登录页面(例如 https://example.com/login),这一步骤是为了让浏览器能够设置域名相关的上下文信息。完成此操作之后,使用 `driver.add_cookie(cookie)` 方法将预先获取到的 Cookies 添加至浏览器实例中[^2]。 对于 Python 中利用 Selenium 库跳过动态验证码并实现自动化登录的过程,在安装好 Selenium 和配置 WebDriver 后,可以通过读取之前保存下来的合法用户的 session cookie 来代替直接输入用户名密码加验证的操作[^5]。 #### 定义检查与更新机制 为了确保会话的有效性和稳定性,建议定义一个用于检测当前使用的 Cookie 是否已经失效的功能`is_cookie_expired()` 。一旦发现 Cookie 过期,则需调用专门负责刷新 Token 或重新认证以获得最新有效凭证的方法`update_cookie()` ,具体实施细节取决于各个站点的安全策略和接口设计特点[^3]。 #### 绕过验证码的技术挑战 值得注意的是,尽管存在多种尝试规避图形验证码校验手段的研究成果,但由于现代 Web 应用程序不断加强其防护措施,使得此类技术面临诸多困难。特别是当遇到像中国铁路客户服务中心(12306)那样复杂多变且高度定制化的图像拼图类验证码时更是如此。因此,在考虑如何高效稳定地维持长期有效的登录状态方面,合理运用已有的 Session ID 成为了一种更为可行的选择[^4]。 ```python from selenium import webdriver def load_cookies(driver, cookies_file_path): with open(cookies_file_path, 'r') as f: cookies_list = json.loads(f.read()) for cookie_dict in cookies_list: driver.add_cookie({ "name": cookie_dict['name'], "value": cookie_dict['value'] }) # 假设已经有了一个名为 valid_session_cookies.json 文件存储着有效的cookies数据 browser = webdriver.Chrome() login_url = "https://example.com/login" browser.get(login_url) load_cookies(browser, './valid_session_cookies.json') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值