在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

cookie 时效无限延长方案

大神在线求帮请分析下,cookie 时效无限延长方案
最新回答
醉挽清风

2025-03-28 07:15:56

自动化测试领域中,接口自动化与 UI 自动化常常遭遇登录节点的阻碍,如验证码、图形识别、滑块等,导致自动化执行成功率不高。同时,依赖于 HTTP 接口的自动化测试前置若依赖 cookie,则无法实现自动化执行。此问题如何解决?以下方案旨在为上述问题提供解答。


### 什么是 cookie


cookie 是一种由服务器发送至浏览器的文本文件,存储在用户设备上,用于跟踪会话信息。它无任何可执行代码,用于保存服务器需要的信息,如用户身份等。每次请求网站时,浏览器会自动发送相应的 cookie。


### 过期时间的查看方式


要查看浏览器中网站的 cookie,首先打开浏览器并访问特定网站。接着按下 F12 键打开开发者工具,在“调试”选项卡中点击“存储”,然后在左侧的“网站数据”列表中单击“Cookies”。右侧的“值”列表将显示每个 cookie 的“Expires”或“Max-Age”字段,这些字段显示 cookie 的过期时间。


### cookie 的机制与时效限制


客户端向服务器发送请求后,服务器响应包含 Set-Cookie 头部,将 cookie 信息发送回客户端。客户端接收 cookie 并保存,之后在向服务器发送请求时,会添加 Cookie 头部,服务器据此返回响应数据。每个 cookie 都有默认时效,通常为会话级别,当浏览器关闭时,cookie 即被销毁。但 cookie 时效也可以手动设置。


### cookie 时效无限延长方案


### 前提条件



  1. 登录节点包括验证机制,如短信验证码、图形识别、滑块等。

  2. cookie 有固定时效,超过时效则需重新登录。

  3. 同一账号不会在多个平台同时退出或登录。


### 实现原理与核心流程


此方案通过微服务实现,供自动化测试调用,通过传递账号信息获取永久 cookie。将此步骤集成至自动化流程中,替代登录并获取 cookie 的节点,并永久延长 cookie 时效,确保后续自动化流程的连续执行。



  1. 手工登录,从 header 中获取 cookie,将此 cookie 和时效值保存在微服务平台(账号只需一次手工登录,后续无需重复操作)。

  2. 微服务平台将账号、cookie、时效值和相关业务接口进行持久化存储,计算并触发轮询任务执行,任务中携带此 cookie 调用业务接口,保持长会话,并在轮询时长到达时继续执行任务,持续循环以维持 cookie 会话的永久有效性。

  3. 自动化任务执行前调用微服务接口,通过账号获取永久 cookie,携带此 cookie 执行后续自动化任务。


### 落地案例


此方案已被应用于实践中,实现了 cookie 一次配置,永久使用的功能。对比之前,UI 自动化和 HTTP 接口自动化执行时遇到的 cookie 过期问题已显著减少,自动化平台的凌晨自动执行成功率显著提升,自动化流程的执行效率得到显著提高。


### 专利描述


(专利链接)