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

Robot Framework中Append to List覆盖列表而非追加问题求助

问题分析与解决方案

你的核心问题是每次调用Keyword时都重新创建了列表,导致之前追加的id被丢弃,看起来像是被覆盖。不管用${test_id_list} Create List还是@{test_id_list}= Create List,只要在Keyword里执行这个创建语句,每次调用都会生成一个新的空列表,之前的列表内容根本没被保留。

解决方法一:用全局列表存储

把列表定义为全局变量,只初始化一次,之后每次追加都操作同一个列表:

  1. 在测试套件的*** Variables ***块里提前声明空列表:
*** Variables ***
@{test_id_list}    # 初始化为空列表
  1. 修改你的Keyword,删除创建列表的语句,直接追加:
${test_id}    Get Value From JSON    ${response}    $.id
${test_id}    Get From List    ${test_id}    0
Append to List    ${test_id_list}    ${test_id}

如果不想在变量块声明,也可以在Suite Setup里初始化一次列表:

*** Test Cases ***
Suite Setup    Create List    ${test_id_list}

解决方法二:让Keyword接收列表参数

把已有的列表作为参数传给Keyword,每次追加都基于传入的列表操作:

  1. 修改Keyword,添加参数接收列表:
*** Keywords ***
Collect Test IDs
    [Arguments]    ${target_list}
    ${test_id}    Get Value From JSON    ${response}    $.id
    ${test_id}    Get From List    ${test_id}    0
    Append to List    ${target_list}    ${test_id}
  1. 在测试用例里先创建列表,然后多次调用Keyword时传入同一个列表:
*** Test Cases ***
Collect Multiple IDs
    @{test_id_list}    Create List
    Collect Test IDs    ${test_id_list}
    # 后续需要追加时继续传入这个列表
    Collect Test IDs    ${test_id_list}

这样就能保证所有id都追加到同一个列表里,不会被覆盖。

内容的提问来源于stack exchange,提问作者Christian Francis Dayao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:33:10