起源
最近使用自建的测试平台时,发现 「批量创建 / 修改用例」 不够方便,故计划新增 「测试用例导入 / 导出」 功能。从易于编程的角度上考虑,决定使用 Excel 承载测试用例数据。
导出功能较为可控,但导入功能的输入数据完全由使用者主导。作为 QA,当然要对用户输入数据做到最全面、最深层次的校验。故笔者决定实现一个深度校验函数。
实现思路
计划该函数共接收 2 个参数:pre_validate_data、expected_structure。
其中 pre_validate_data 代表 预校验数据,expected_structure 则代表 期望的 结构。
函数返回则是一个布尔值,True 表示数据满足所期待的结构, False 则代表数据不满足期待的结构。
expected_structure 参数的结构经过思考后示例结构如下:
expected_structure = {'expectedTypeRange': [list],
'expectedValueRange':
[
{'expectedTypeRange':[dict], 'expectedDict':expect_dict},
{'expectedTypeRange':[dict], 'expectedDict':{}}
]
}
考虑到列表和字典较为特殊,expectedTypeRange