在测试过程中,经常会遇到比对实际结果文件与期望结果文件一致性的测试场景,比如在Hadoop集群的MR(map/reduce)功能测试中,实际运行结果文件与期望结果文件的比对。
接下来我们就分享如何利用Python实现结果文件的两两校验。
程序设计
首先校验内容包含数据一致性校验、数量一致性校验。其次还需考虑一些特殊情况:
- 支持多值列,某列包含多个值,且值顺序不固定
- 支持多文件的比对,如,程序每次运行产生的实际结果文件数量不固定,需要先进行文件合并在校验
- 支持过滤指定列不进行校验,如某些列是变值,如时间,则不校验
- 支持选择指定列校验,如只需要校验某一列
整体实现设计划分为三个层次,基础设施层、中间件层、服务层。
- 基础设施层:文件读取、文件预处理
- 中间件层:List选择过滤器、List比对
- 服务层:完全性校验、过滤性校验、选择性校验
开发实现
基础设施层-文件读取
基础设施层-文件预处理
中间件层-List比对
中间件层-List选择过滤器
服务层-完全性校验
服务层-选择性校验
服务层-过滤性校验
若对你有所帮助,欢迎大家评论、留言。
閱讀更多 測試開發技術棧 的文章