zoukankan      html  css  js  c++  java
  • 批次测试

    批次处理batch:一次性把数据库表中符合某一条件(或多个条件)的数据拿出来集中处理的过程。其优点是高效、节省资源,缺点是在批次期间无法做业务。

    了解系统的批次架构

    • 批次入口
    • 批次配置文件路径,配置规则
    • 运行主类入口
    • 了解批次执行顺序
    • 了解批次处理什么业务,知道批次前后数据变化规则

    批次分类

    • 主批、辅批
    • 早批、晚批
    • 全量批次、单步批次

    批次测试要点

    静态测试

    • 检查批次xml配置文件
    • 检查批次路由顺序
    • 检查批次单元失败后设置是否忽略(如涉及生成文件要检查生成文件的配置字段、文件名称、文件路径)

    新增批次(正常类)

    • 批次调度,新增批次必须通过测试环境调度平台成功后方可投产
    • 新增批次涉及配置开关,需要验证无开关参数、打开开关、关闭开关时批次程序控制是否正确
    • 新增批次运行成功后要正确更新批次记录表批次运行状态(1.成功,2.失败)
    • 新增批次是否和其他批次有依赖关系
      如下一个批次依赖上一个批次的数据,则下一个批次需要设置合理的等待时间,如下一个批次必须等待数据时,可设置最大等待时间后批次中断后发送预警短信
      如下一个批次只是一个单元等待的数据不是很重要时,可根据情况设置等待N次后跳出等待,继续下一个单元
    • 批次运行成功后,检查业务数据加工的正确性
    • 批次运行失败后,检查业务数据加工情况
      是否部分数据已经进行了处理,批次重新执行时已处理的数据如何处理
    • 新增单独批次,批次日期表单独新增的,批次运行成功后要考虑切日(或批次运行前切日)
    • 如新增批次涉及批次中调用接口,要进行接口类的相关测试
      接口调用失败 、超时等情况对批次的影响(接口调用失败是否会断批可以根据业务实际场景设置)
    • 涉及多线程处理的单元,要检查每个线程处理的数据之间是否存在影响
      如果多线程的各线程处理的数据存在依赖关系,要调整为单线程
    • 批次数据全流程验证
      从数据源头系统到数据最终归档系统,保证每一个系统流转数据的正确性
    • 需要分析测试是否影响特殊日期批次或是特殊日期批次测试
      节假日批次、计息计提日批次、年终决算批次、月末、季末、年末等批次
    • 新增、修改批次作业,对于定时任务涉及一天内可以多次调起,需要验证至少2次调起,保证多次调起处理正确
    • 投产当天不同系统的投产时序是否合理,是否影响批次时序
    • 检查轮询批次批次处理数据的正确性
    • 检查轮询间隔时间是否合理
    • 检查达到时间间隔后能否继续处理数据
    • 检查轮询批次可正常清空数据
    • 如涉及新增批次单元,尽量放在批次的最后,避免影响其他单元

    修改批次(正常类)

    • 修改批次单元时是否和其他批次有依赖关系
      如有则需要设置合理的等待时间,避免出现异常情况时批次运行失败,需要细化场景进一步说明批次的数据处理有无时间冲突
    • 修改批次单元运行成功后要检查改单元批次记录表运行状态是否更新正确
    • 修改批次是否和其他批次有依赖关系
      如下一个批次依赖上一个批次的数据,则下一个批次需要设置合理的等待时间,如下一个批次必须等待数据时,可设置最大等待时间后批次中断后发送预警短信
      如下一个批次只是一个单元等待的数据不是很重要时,可根据情况设置等待N次后跳出等待,继续下一个单元
    • 新增、修改、删除批次单元,执行全批时,不影响其他作业或是整批的执行效率
    • 修改批次单元运行成功后,检查业务数据加工情况
    • 修改批次单元运行失败后,检查业务数据加工情况
    • 涉及批次时序调整的,要验证关联批次影响,以及业务数据的先后处理时序是否合理

    删除批次

    异常类测试

    • 作业可执行断点续跑功能(重新调批后已执行成功的单元跳过处理)
    • 要考虑批次单元失败后支持重跑
    • 对于批次中不重要的单元可设置成该单元运行失败后忽略处理,不断批
    • 空跑批可以正常运行,不断批
    • 两个批次A/B之间的时序关系从同步变为异步(批次之前存在联系或者共用表)
      测试批次A先结束,批次B后结束对整体批次的影响
      测试批次B先结束,批次A后结束对整体批次的影响
      测试批次A先跑,批次B后跑对整体批次的影响
      测试批次B先跑,批次A后跑对整体批次的影响
    • 批次中可支持处理重复数据
    • 批次对于异常数据的容错处理
    • 轮询时间间隔内未处理完成数据,下一阶段轮询能否正常处理
    • 第一次轮询失败时,第二次能否正确处理数据
    • 轮询的数据有依赖关系,首个轮询未完成时,第二个轮询应该等待
    • 如何处理文件过多,轮询处理时是否按文件顺序处理
    • 轮询处理数据失败时,能否跳过继续处理下一批数据
    • 轮询多线程处理整组数据的时候,数据类型不足时能否正常处理

    性能

    批次处理数据过大

    • 日志打印要控制时间间隔,或减少不必要的日志输出,避免日志打印过快,占用磁盘空间

    批次大数据量量测试

    • 数据量级
      存量数据可查询生产上的表数据量
      新增业务根据业务预测数量在测试环境造同样量级的数据
      对于业务增长快的数据要预测未来1-3年数据量进行测试
    • 涉及更新数据库表的数据量
      全表的数据量
      符合更新或查询条件关联关系的数据量
    • 大数据量测试批次运行时间要发给项目组、业务人员和相关测试人员确认

    SQL

    sql复杂,查询关联多张表,sql了多个子查询

    • 优化sql
    • 优化表索引字段
    • 优化设计方案
    • 新增中间表或临时表
  • 相关阅读:
    MySql 分页存储过程
    Wireshark图解教程
    Android全局变量使用
    Memcache存储大数据的问题
    论这场云盘大战,以及各网盘的优劣
    [MySQL CPU]线上飙升800%,load达到12的解决过程
    一步一步写算法(之排序二叉树)
    platform_device与platform_driver
    SPOJ 130
    Java实现 蓝桥杯VIP 算法训练 奇偶判断
  • 原文地址:https://www.cnblogs.com/Uni-Hoang/p/13661409.html
Copyright © 2011-2022 走看看