Robot Framework中如何用变量替换JSON字符串中的值?
在Robot Framework中替换JSON字符串指定值为环境变量格式的方法
针对你的需求,这里提供三种实用的实现方式,适配不同场景:
方法一:直接字符串替换(适合简单JSON结构)
如果你的JSON结构简单、无特殊字符干扰,可直接用Robot Framework的Replace String关键字做文本替换:
*** Settings *** Library String *** Test Cases *** Replace JSON Values With Env Vars ${original_json} ${EMPTY} ... {"key1":"value1", ... "key2": {"key3": "value3"}} # 替换value1为%{value1} ${modified_json} Replace String ${original_json} "value1" "%{value1}" # 替换value3为%{value3} ${modified_json} Replace String ${modified_json} "value3" "%{value3}" Log ${modified_json} # 后续可直接将${modified_json}传入Post/Put请求的body中
方法二:解析为字典修改后转JSON(推荐,适配复杂结构)
对于嵌套或复杂JSON,先解析为Python字典修改对应值,再转回JSON字符串,能避免格式错误:
*** Settings *** Library JSONLibrary Library Collections *** Test Cases *** Modify JSON Via Dictionary ${original_json} ${EMPTY} ... {"key1":"value1", ... "key2": {"key3": "value3"}} # 将JSON字符串解析为字典 ${json_dict} Load JSON From String ${original_json} # 修改顶层key1的值 Set To Dictionary ${json_dict} key1 %{value1} # 修改嵌套的key3的值 ${inner_dict} Get From Dictionary ${json_dict} key2 Set To Dictionary ${inner_dict} key3 %{value3} # 将字典转回JSON字符串 ${modified_json} Dump JSON To String ${json_dict} Log ${modified_json}
方法三:提前定义带变量的JSON模板(最便捷)
直接在定义JSON模板时就使用Robot的环境变量格式,若需运行时自动替换为变量实际值,此方法最省心:
*** Test Cases *** Use JSON Template With Env Vars # 直接定义包含环境变量的JSON模板 ${json_template} ${EMPTY} ... {"key1":"%{value1}", ... "key2": {"key3": "%{value3}"}} # 运行时Robot会自动将%{value1}替换为对应的环境变量值 Log ${json_template} # 直接传入Post/Put请求即可
注意:若需保留%{value1}格式而非替换为实际值,优先选方法一、二;若需自动替换为环境变量的真实内容,方法三直接可用。
内容的提问来源于stack exchange,提问作者jaqkraemer
相关产品推荐
相关产品推荐

