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

Robot Framework中如何实现嵌套字典变量赋值及占位符替换?

问题原因

你定义&{multipleUserList}的写法存在逻辑错误:字典的键具有全局唯一性,你在同一个字典下重复声明id、extension键,后面的键值对会直接覆盖前面的内容,这是第一组用户信息丢失的根本原因。

正确实现方案

你需要用「列表嵌套字典」的结构存储多用户信息,每个用户对应一个独立的字典,所有用户字典存放在同一个列表中,再根据API要求套入外层请求结构即可。

步骤1:定义正确的多用户模板结构

# 定义两个独立的用户模板字典
&{user1_template}    id={rand_id}    extension={rand_extn}
&{user2_template}    id={rand_id2}    extension={rand_extn2}
# 把用户字典存入列表,得到多用户集合
@{multiple_user_list}    ${user1_template}    ${user2_template}
# 如果你的API要求外层是字典结构,可再封装一层
&{request_body}    users=${multiple_user_list}

步骤2:批量替换占位符

# 生成所需的随机值
${uni_id}=    Generate Random String    2    [NUMBERS]
${uni_extn}=    Generate Random String    4    [NUMBERS]
${uni_id2}=    Generate Random String    2    [NUMBERS]
${uni_extn2}=    Generate Random String    4    [NUMBERS]

# 定义占位符和随机值的映射表,后续新增用户只需要更新该表即可
&{ph_map}
\    {rand_id}    ${uni_id}
\    {rand_extn}    ${uni_extn}
\    {rand_id2}    ${uni_id2}
\    {rand_extn2}    ${uni_extn2}

# 遍历每个用户字典替换占位符
:FOR    ${user}    IN    @{multiple_user_list}
\    :FOR    ${ph}    ${target_val}    IN    &{ph_map}
\    \    # 替换id字段的占位符
\    \    ${ori_id}=    Get From Dictionary    ${user}    id
\    \    ${new_id}=    Replace String    ${ori_id}    ${ph}    ${target_val}
\    \    Set To Dictionary    ${user}    id    ${new_id}
\    \    # 替换extension字段的占位符
\    \    ${ori_extn}=    Get From Dictionary    ${user}    extension
\    \    ${new_extn}=    Replace String    ${ori_extn}    ${ph}    ${target_val}
\    \    Set To Dictionary    ${user}    extension    ${new_extn}

步骤3:发起API请求

直接将封装好的请求体变量传入接口请求即可,以RequestsLibrary为例:

${resp}=    Post Request    your_session_alias    /api/create/users    json=${request_body}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 12:57:03