如何用Robot Framework高效测试字典列表的指定键值对应关系?
用Robot Framework批量验证字典列表的键值对应关系
完全可以用Robot Framework便捷实现这类批量验证,核心思路是数据驱动测试——把20个验证规则做成测试数据,只写一套通用验证逻辑即可。以下是具体实现步骤:
1. 准备依赖与数据加载
先导入必要库,并将你的JSON数据解析为Robot可操作的字典列表:
*** Settings *** Library Collections Library BuiltIn *** Variables *** # 你的原始JSON数据 ${JSON_SOURCE} [{"foo":"fooval1a","type":"xfs"},{"foo":"fooval2a","type":"ext2"},{"foo":"fooval3a","type":"nfs"},{"foo":"fooval4a","type":"ntfs"}] *** Suite Setup *** # 解析JSON为字典列表,设为套件全局变量 ${dict_list} Evaluate json.loads('''${JSON_SOURCE}''') json Set Suite Variable ${dict_list}
2. 封装通用验证关键字
编写一次验证逻辑,所有测试用例复用:
*** Keywords *** Validate Foo-Type Pair [Arguments] ${target_foo} ${expected_type} # 筛选出foo值匹配的字典项 ${matching_dicts} Get Filtered Items ${dict_list} foo == '${target_foo}' # 确保找到唯一匹配项(业务允许多个的话可删除此步骤) Length Should Be ${matching_dicts} 1 未找到或找到多个foo为${target_foo}的项 # 获取并验证对应的type值 ${actual_type} Get From Dictionary ${matching_dicts[0]} type Should Be Equal ${actual_type} ${expected_type} Foo值${target_foo}对应的type不符合预期:实际为${actual_type},期望为${expected_type}
3. 批量执行测试用例
用测试模板+表格形式,快速列出所有验证规则:
*** Test Cases *** [Template] Validate Foo-Type Pair 验证fooval1a对应type fooval1a xfs 验证fooval2a对应type fooval2a ext2 验证fooval3a对应type fooval3a nfs 验证fooval4a对应type fooval4a ntfs # 继续添加剩下的16个验证规则...
进阶优化:外部文件管理测试数据
如果20个规则数量较多,可将测试数据存入CSV文件(如foo_type_mappings.csv):
test_name,target_foo,expected_type 验证fooval1a,fooval1a,xfs 验证fooval2a,fooval2a,ext2 验证fooval3a,fooval3a,nfs 验证fooval4a,fooval4a,ntfs
然后导入DataDriver库读取CSV,更便于维护:
*** Settings *** Library Collections Library BuiltIn Library DataDriver file=foo_type_mappings.csv dialect=unix *** Test Cases *** [Template] Validate Foo-Type Pair
这种方式只需维护CSV里的测试数据,无需修改Robot代码,批量处理20个测试非常高效。
内容的提问来源于stack exchange,提问作者NinjaGaiden
相关产品推荐
相关产品推荐

