RobotFramework如何使用table based testing批量测试JSON多值
可以实现,有两种常用的批量校验方案
方案1:单测试用例内循环校验
不需要拆分多个用例,在同一个用例里定义校验规则表后循环执行,适合快速完成全量校验:
*** Test Cases *** 批量校验JSON所有字段 ${json} Get File foo.json encoding=utf-8 ${object}= Evaluate json.loads($json) json # 定义校验规则:每一行对应[待校验键名, 预期取值] @{校验规则表} Create List ... ["key", "bar"] ... ["key2", "预期值2"] ... ["key3", 123] ... # 剩余7个字段直接按格式补充即可 FOR ${当前键} ${预期值} IN @{校验规则表} ${实际值} Set Variable ${object}[${当前键}] Should Be Equal ${实际值} ${预期值} 字段${当前键}校验失败 END
方案2:数据驱动模板(单字段独立用例)
如果需要每个字段的校验结果独立统计、方便快速定位失败项,可以用测试模板实现表格驱动测试:
*** Settings *** # 引入需要的库,Collections库可以简化字典操作,不需要可以不加 Library Collections # 声明测试模板,所有用例都会调用这个关键字执行 Test Template 单JSON字段校验 # 把JSON加载逻辑放到套件初始化,只执行一次,提升执行效率 Suite Setup 加载目标JSON文件 *** Variables *** ${JSON对象} ${{None}} *** Test Cases *** 待校验键名 预期取值 校验key字段 key bar 校验key2字段 key2 预期值2 校验key3字段 key3 123 # 剩余7个字段直接按格式新增行即可 *** Keywords *** 加载目标JSON文件 ${json文本} Get File foo.json encoding=utf-8 ${JSON对象} Evaluate json.loads($json_text) json 单JSON字段校验 [Arguments] ${键名} ${预期值} ${实际值} Get From Dictionary ${JSON对象} ${键名} Should Be Equal ${实际值} ${预期值}
注意:你原有代码里的
Evaluate | json.loads('''${json}''') | json写法有风险,若JSON内容包含三引号、特殊转义字符会触发语法错误,推荐用$变量名的形式直接传递变量给Evaluate,Robot Framework会自动处理类型转义。
内容的提问来源于stack exchange,提问作者NinjaGaiden
相关产品推荐
相关产品推荐

