You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Robot Framework+Selenium中复用浏览器会话及Cookie跨用例管理

解决方案:Robot Framework跨用例Cookie管理与变量复用

一、核心实现思路

  • 登录成功后将浏览器Cookie序列化保存到JSON文件,后续测试用例从文件读取并加载到浏览器
  • 登录凭证以字典形式存储到文件,通过资源文件的统一关键字加载为全局变量,实现跨文件复用

二、分文件代码实现

1. Resources/Resources.robot(通用资源与关键字)

*** Settings ***
Library    SeleniumLibrary
Library    OperatingSystem

*** Variables ***
# 定义凭证和Cookie的存储路径
${CREDENTIALS_FILE}    ${CURDIR}/credentials.json
${COOKIES_FILE}        ${CURDIR}/cookies.json

*** Keywords ***
Save Login Cookies
    [Documentation]    获取当前浏览器Cookie并保存到JSON文件
    ${cookies}    SeleniumLibrary.Get Cookies
    ${cookies_json}    Convert To JSON    ${cookies}
    OperatingSystem.Create File    ${COOKIES_FILE}    ${cookies_json}    overwrite=True

Load Login Cookies
    [Documentation]    从JSON文件加载Cookie并添加到浏览器
    ${cookies_json}    OperatingSystem.Get File    ${COOKIES_FILE}
    ${cookies}    Convert From JSON    ${cookies_json}
    :FOR    ${cookie}    IN    @{cookies}
    \    SeleniumLibrary.Add Cookie    ${cookie}
    # 刷新页面使Cookie生效
    SeleniumLibrary.Refresh Page

Save Credentials
    [Documentation]    首次运行时执行,保存登录凭证到文件
    ${credentials}    Create Dictionary    username=你的账号    password=你的密码
    ${credentials_json}    Convert To JSON    ${credentials}
    OperatingSystem.Create File    ${CREDENTIALS_FILE}    ${credentials_json}    overwrite=True

Load Credentials
    [Documentation]    加载凭证并设置为全局套件变量
    ${credentials_json}    OperatingSystem.Get File    ${CREDENTIALS_FILE}
    ${credentials}    Convert From JSON    ${credentials_json}
    Set Suite Variable    ${GLOBAL_USER}    ${credentials}[username]
    Set Suite Variable    ${GLOBAL_PWD}    ${credentials}[password]

2. ABC_ACM_TC/ABC_Login.robot(登录测试用例)

*** Settings ***
Resource    ../Resources/Resources.robot
Suite Setup    SeleniumLibrary.Open Browser    https://你的应用登录地址    chrome
Suite Teardown    SeleniumLibrary.Close Browser

*** Test Cases ***
完成登录并保存Cookie
    [Documentation]    执行登录流程,验证成功后保存Cookie
    # 首次运行请先执行Save Credentials生成凭证文件,之后可注释
    # Save Credentials
    Load Credentials
    # 登录操作(替换为实际页面元素定位器)
    SeleniumLibrary.Input Text    id=username    ${GLOBAL_USER}
    SeleniumLibrary.Input Text    id=password    ${GLOBAL_PWD}
    SeleniumLibrary.Click Button    id=login-btn
    # 验证登录成功
    SeleniumLibrary.Page Should Contain    欢迎回来
    # 保存Cookie到文件
    Save Login Cookies

3. ABC_ACM_TC/Setting.robot(设置模块测试用例)

*** Settings ***
Resource    ../Resources/Resources.robot
Suite Setup    初始化浏览器并加载Cookie

*** Keywords ***
初始化浏览器并加载Cookie
    SeleniumLibrary.Open Browser    https://你的应用主页地址    chrome
    Load Login Cookies
    # 验证已自动登录
    SeleniumLibrary.Page Should Contain    欢迎回来

*** Test Cases ***
修改应用基础设置
    [Documentation]    无需重新登录,直接测试设置模块
    # 进入设置页面(替换为实际元素定位器)
    SeleniumLibrary.Click Link    id=settings-menu
    # 修改设置项
    SeleniumLibrary.Input Text    id=config-value    新配置内容
    SeleniumLibrary.Click Button    id=save-btn
    # 验证修改成功
    SeleniumLibrary.Page Should Contain    设置已保存

4. ABC_ACM_TC/TestSuite.robot(测试套件执行)

*** Settings ***
Test Case Order    sequential    # 强制登录用例优先执行

*** Test Cases ***
执行登录测试
    [Documentation]    生成并保存Cookie
    Run Test Case    ABC_Login.robot    完成登录并保存Cookie

执行设置模块测试
    [Documentation]    使用已保存的Cookie执行测试
    Run Test Case    Setting.robot    修改应用基础设置

三、关键注意事项

  • 首次运行时必须先执行Save Credentials生成凭证文件,之后可注释该步骤
  • 所有页面元素定位器(id、xpath等)需替换为你应用的实际元素
  • Cookie有效期由应用后端设置,过期后需重新执行登录用例更新Cookie
  • 若使用非Chrome浏览器,需调整Open Browser的浏览器参数

内容的提问来源于stack exchange,提问作者shashi_user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 06:00:34