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

如何在Robot Framework中实现测试用例间的结果传递?

在Robot Framework中实现测试用例间的变量传递

针对你的场景(把TC01的${name}和${no}传给TC02),有几种非常实用的实现方式,我结合你的代码示例详细说明:

方法一:使用Set Suite Variable(同套件内传递首选)

这个关键字能把测试用例内的局部变量提升为套件级变量,整个测试套件里的所有用例都能访问到它。

修改TC01代码:

在获取到${name}和${no}后,添加变量提升的步骤:

TC01-Search and Navigate to Required Vessel
    Given Home Page is Loaded
    When Search Ship and Choose Required Vessel ${name} ${no}
    # 将局部变量转为套件级变量,供后续用例调用
    Set Suite Variable    ${SUITE_VESSEL_NAME}    ${name}
    Set Suite Variable    ${SUITE_VESSEL_NO}    ${no}
    Navigate to the Vessel View

TC02直接使用套件变量:

TC02-Verify Vessel Details in Case
    Given Cases is Available in Apps
    And I Navigate to Cases
    Then Verify Vessel Details are present or not ${SUITE_VESSEL_NAME} ${SUITE_VESSEL_NO}

注意:要确保TC01在TC02之前执行(默认按文件里的顺序执行),这样套件变量才能被正确初始化。

方法二:使用Set Global Variable(跨套件/全局场景)

如果你的测试用例需要跨多个套件共享变量,可以用这个关键字把变量提升为全局变量,整个Robot Framework运行期间都能访问。

TC01中添加:

Set Global Variable    ${GLOBAL_VESSEL_NAME}    ${name}
Set Global Variable    ${GLOBAL_VESSEL_NO}    ${no}

TC02直接调用全局变量即可:

Then Verify Vessel Details are present or not ${GLOBAL_VESSEL_NAME} ${GLOBAL_VESSEL_NO}

小提示:全局变量会持续到测试结束,所以如果只是同套件内传递,优先用套件级变量,避免变量污染。

方法三:用Suite Setup前置执行TC01逻辑

如果TC02必须依赖TC01的执行结果,可以把TC01的核心逻辑放到套件的前置Setup中,这样整个套件执行前会先完成TC01的步骤,自动把变量存入套件级。

在套件的Settings部分添加:

*** Settings ***
Suite Setup    Run Test Case    TC01-Search and Navigate to Required Vessel

这样TC02就能直接使用方法一中定义的套件变量,无需关心执行顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:39:40