如何在Robot Framework中提取JSON的id值并存储为变量
在Robot Framework中提取动态日志里的ID并存储为变量
实现步骤
假设你的日志内容是合法的JSON格式(如你提供的示例),可以通过以下步骤提取id值并存储为变量:
- 获取日志内容:如果日志存放在文件中,先读取文件内容;如果日志已经在某个变量里,直接使用该变量即可。
- 解析JSON字符串:将日志的JSON字符串转换为Robot Framework可操作的Python对象(列表/字典)。
- 提取目标ID:从解析后的对象中取出
id字段的值。 - 复用变量:将提取到的ID存入变量,用于打印或后续业务场景。
示例代码
方法一:使用BuiltIn+json库
*** Settings *** Library BuiltIn Library json Library OperatingSystem *** Test Cases *** Extract ID from Dynamic Log # 读取日志文件内容(若日志已在变量中,可跳过此步) ${log_content}= Get File ./your_log_file.json # 解析JSON字符串为Python对象 ${json_data}= Evaluate json.loads('''${log_content}''') json # 提取数组第一个对象的id值 ${target_id}= Set Variable ${json_data}[0]['id'] # 打印ID到控制台 Log To Console 提取到的ID: ${target_id} # 后续可直接使用${target_id},比如作为请求参数 # Example: Create Session my_session https://example.com # Post Request my_session /api/resource json={"id": "${target_id}"}
方法二:使用RequestsLibrary简化解析
如果你已经引入了RequestsLibrary,也可以用它的JSON解析关键字:
*** Settings *** Library RequestsLibrary Library OperatingSystem *** Test Cases *** Extract ID with RequestsLibrary ${log_content}= Get File ./your_log_file.json # 直接解析JSON字符串 ${json_data}= Decode JSON from String ${log_content} ${target_id}= Set Variable ${json_data}[0]['id'] Log To Console 提取到的ID: ${target_id}
注意事项
- 确保日志内容是合法的JSON格式,否则解析步骤会抛出错误。
- 如果日志不是文件而是运行时生成的字符串变量,直接替换
${log_content}为对应变量即可。
内容的提问来源于stack exchange,提问作者user5539903
相关产品推荐
相关产品推荐

