RobotFramework中如何拼接超长字典值避免拆分键值对?
在RobotFramework中拼接字典长值的解决方案
当然可以拼接字典值,针对你遇到的每行字符限制导致长值被拆分为多个键值对的问题,以下是几种实用解决方法:
方法1:拆分长文本为变量后拼接
先将超长文本拆分为多个短变量,拼接成完整值后再传入字典:
*** Variables *** ${LONG_TEXT_PART1} 这里是超过180字符的文本第一段,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ${LONG_TEXT_PART2} 这里是文本第二段,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ${FULL_LONG_TEXT} ${LONG_TEXT_PART1}${LONG_TEXT_PART2} *** Test Cases *** Build Dict With Concatenated Value ${target_dict} Create Dictionary normal_key=normal_value long_key=${FULL_LONG_TEXT} Log Dictionary ${target_dict}
方法2:使用多行字符串语法包裹长值
利用RobotFramework的三引号多行字符串特性,直接换行编写长值,不会被识别为新的键值对:
*** Test Cases *** Build Dict With Multi-line Value ${target_dict} Create Dictionary ... normal_key=normal_value ... long_key="""这是一段完整的超长文本,你可以自由换行编写,只要用三个双引号包裹,RobotFramework就会将其识别为单个字符串值,不会拆分键值对。无论文本长度多少,这种写法都能规避每行字符限制""" Log Dictionary ${target_dict}
方法3:对已有字典的键值进行追加拼接
如果需要给已存在的字典键追加内容,可结合Set To Dictionary和字符串拼接实现:
*** Test Cases *** Append Value To Dict Key ${target_dict} Create Dictionary long_key=初始文本内容 ${append_text} Set Variable 需要追加的超长文本部分,也可拆分为多个变量拼接 Set To Dictionary ${target_dict} long_key=${target_dict['long_key']}${append_text} Log Dictionary ${target_dict}
你之前遇到的问题本质是:当单行字符超出限制后,RobotFramework会将换行后的内容解析为新的键值对。通过上述方法将长值封装为单个变量或多行字符串,就能避免这个问题。
内容的提问来源于stack exchange,提问作者jakub.bitman
相关产品推荐
相关产品推荐

