测试工具链——Python实现文件的两两比对校验

测试工具链——Python实现文件的两两比对校验

在测试过程中,经常会遇到比对实际结果文件与期望结果文件一致性的测试场景,比如在Hadoop集群的MR(map/reduce)功能测试中,实际运行结果文件与期望结果文件的比对。

测试工具链——Python实现文件的两两比对校验

接下来我们就分享如何利用Python实现结果文件的两两校验。

程序设计

首先校验内容包含数据一致性校验、数量一致性校验。其次还需考虑一些特殊情况:

  • 支持多值列,某列包含多个值,且值顺序不固定
  • 支持多文件的比对,如,程序每次运行产生的实际结果文件数量不固定,需要先进行文件合并在校验
  • 支持过滤指定列不进行校验,如某些列是变值,如时间,则不校验
  • 支持选择指定列校验,如只需要校验某一列

整体实现设计划分为三个层次,基础设施层、中间件层、服务层。

  • 基础设施层:文件读取、文件预处理
  • 中间件层:List选择过滤器、List比对
  • 服务层:完全性校验、过滤性校验、选择性校验
测试工具链——Python实现文件的两两比对校验

开发实现

基础设施层-文件读取

测试工具链——Python实现文件的两两比对校验

基础设施层-文件预处理

测试工具链——Python实现文件的两两比对校验

中间件层-List比对

测试工具链——Python实现文件的两两比对校验

中间件层-List选择过滤器

测试工具链——Python实现文件的两两比对校验

服务层-完全性校验

测试工具链——Python实现文件的两两比对校验

服务层-选择性校验

测试工具链——Python实现文件的两两比对校验

服务层-过滤性校验

测试工具链——Python实现文件的两两比对校验

若对你有所帮助,欢迎大家评论、留言。


分享到:


相關文章: