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

如何在Robot Framework中获取运行套件的Force Tag标签?

获取Robot Framework Force Tag并实现对应用户登录

直接给你两种可行的实现方式,都能准确拿到运行时的Force Tag:

方法一:用Robot内置变量${TAGS}

${TAGS}是Robot Framework自带的内置变量,包含当前运行的所有生效标签——包括你通过--force-tag指定的标签。你可以直接在Suite Setup里做判断,或者把变量传给Python关键字处理:

1. Python关键字实现标签获取

from robot.libraries.BuiltIn import BuiltIn

def get_active_tags():
    # 获取当前所有生效标签
    return BuiltIn().get_variable_value("${TAGS}")

2. 在Robot套件里关联登录逻辑

在测试套件文件中,通过Suite Setup根据标签判断登录用户:

*** Settings ***
Suite Setup    Handle User Login

*** Keywords ***
Handle User Login
    ${active_tags}=    Get Active Tags
    Run Keyword If    'user1' in ${active_tags}    Login User1
    ...    ELSE IF    'user2' in ${active_tags}    Login User2

Login User1
    # 编写user1的具体登录步骤,比如输入账号密码、点击登录
    Log    正在登录user1账号

Login User2
    # 编写user2的具体登录步骤
    Log    正在登录user2账号

运行时指定Force Tag即可:

robot --force-tag user1 your_test_suite.robot

方法二:通过Robot运行上下文API获取标签

如果是在自定义Python库中直接获取标签,可用Robot的运行上下文对象,它能拿到当前套件的完整标签集合(包含Force Tag):

from robot.running.context import EXECUTION_CONTEXTS

def get_current_suite_tags():
    current_ctx = EXECUTION_CONTEXTS.current
    if current_ctx and hasattr(current_ctx, 'suite'):
        # 返回标签列表,比如['user1']
        return list(current_ctx.suite.tags)
    return []

之后在关键字里调用这个函数,根据返回的标签执行对应登录逻辑即可。

注意点

  • --force-tag会强制给所有测试用例加上该标签,所以${TAGS}里一定会包含这个标签,直接判断是否存在即可。
  • 如果测试套件本身有其他标签,不影响判断,只要确保user1、user2是仅用于Force Tag的标识即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 10:37:43