如何在Robot Framework的.robot文件中删除.resource文件关键字的参数?
如何在Robot Framework测试文件中修改Resource定义的套件级字典变量
完全可行,因为套件级变量(Suite Variable)是整个测试套件共享的,测试用例可以直接对其进行修改操作。你之前遇到的问题大概率是变量引用或操作方式有误,以下是具体实现步骤:
1. 确认Resource文件中变量的定义方式
确保你的Start关键字是用Set Suite Variable将字典设为套件级变量,示例如下(假设Resource文件名为Common.resource):
*** Keywords *** Start # 创建包含目标参数的字典 ${BODY}= Create Dictionary userSystemName=test_system ispbPsp=98765 isSystem=True # 将字典设为套件级变量,供整个套件共享 Set Suite Variable &{BODY}
2. 在测试文件中修改套件变量
在测试用例中调用Start后,直接使用Remove From Dictionary关键字操作套件级的&{BODY}即可,无需额外处理。示例测试文件代码:
*** Settings *** Resource Common.resource Library RequestsLibrary *** Test Cases *** Send Request Without ispbPsp # 调用Resource中的Start关键字,初始化套件级BODY变量 Start # 直接移除字典中的ispbPsp参数 Remove From Dictionary &{BODY} ispbPsp # 发送请求,此时BODY已不包含ispbPsp Create Session api_session https://your-api-domain.com ${response}= Post Request api_session /target-endpoint json=&{BODY} # 后续断言或处理逻辑 Should Be Equal As Strings ${response.status_code} 200
关键注意事项
- 操作字典时必须使用
&{BODY}的格式(带&符号),明确表示这是一个字典变量 - 不要在测试用例中重新赋值
${BODY}(比如${BODY}= Create Dictionary...),否则会创建局部变量覆盖套件级变量,导致修改无效 - 如果使用的是全局变量(
Set Global Variable),操作方式完全一致
内容的提问来源于stack exchange,提问作者evojd
相关产品推荐
相关产品推荐

