自动化测试框架之设计思路

    xiaoxiao2025-03-28  9

    一、为什么要进行自动化测试

    提高测试效率和降低测试成本实现快速的回归测试,加快车速进度从而加快产品发布进度更多的测试,提高测试覆盖率保证一致性提高测试的可靠性,避免人为因素

    掌握了某个自动化测试工具,脚本的编写技术,并不能达到自动化的要求,完全通过脚本方式实现,工作量巨大且可维护性极差,不能复用。在正式实施自动化之前,必须搭建一套适合的自动化框架,将脚本能够有效地组织,连贯应用起来,提高测试脚本的可维护性和可读性。

    二、自动化测试框架的要求

    高复用性高可维护性稳定性快速编写脚本自动执行正确输出结果能够不断提升自动化测试比例

    三、实现思路

    分层设计:业务流程,功能点,操作组件

    首先验证各个页面,各个字段的正确性,到验证功能点的正确性,再结合各个功能点进行业务逻辑、业务流程的验证,最终确保系统满足业务需求。

    对于自动化脚本,采用分层的思想,先实现最底层的操作组件,通过调用操作组件、及业务逻辑实现对功能点的验证,再通过调用业务逻辑组合功能点对业务流程的验证。不同的业务流程,对于底层的操作组件、中间层的功能点函数是完全可以复用的,只是调用的业务逻辑的茶几,或是测试数据的差异性。

    尽可能做到各脚本之间具备独立性,不相互依赖,便于更基本场景的组合运行。

    脚本分离设计:对象、操作、测试数据、业务逻辑相互剥离、灵活调用

    对某个功能进行自动化测试,实际上就是对这个功能涉及的对象进行操作,输入测试数据来验证其结果的正确性,复杂的验证点需要编写业务逻辑。

    为了达到可维护性、可复用性,将对象、操作、测试数据、业务逻辑剥离、分开管理,通过调用关系去实现不同的测试用例。

    封装基础函数、基础的业务逻辑、验证点

    通过对基本业务逻辑、验证点的封装、调用,实现快速的脚本开发。

    有效的执行体系

    批量、定制执行、自动运行

    自动化真正达到提升测试效率,需要实现无人值守的情况下批量自动执行,并且可以定制执行。

    异常处理机制

    脚本执行过程中,因程序错误或环境问题、脚本自身问题经常会出现非预期的错误,在不影响后续用例执行的,需要支持异常处理机制,终止当然用例,或跳过,继续执行后续操作,并输出当前的错误报告。

    业务数据还原初始状态

    自动化测试需要循环执行,执行完成后,需要回复初始状态(主要是业务数据),以使得程序重新提高版本后能够循环执行,不断地对新版本进行回归验证。

    版本管理

    随着待验证版本的不一致,自动化测试脚本也会不断地更新,维护,同样需要进行版本管理。

    结果体系

    针对每条用例,输出用例执行结果

    针对每个检查点,输出详细的检查点执行结果

    输出执行日志

    结构化管理

    对象、操作组件、基础函数、测试数据、功能脚本、业务流程组合,如此多的层级、调用关系,必须进行结构化管理,采用高度组织化的目录结构,分级管理,方便进行正确及快速的调用,方便能够快速定位,查找问题。

    四、测试框架的功能

    结构:

    #app:存放测试包

    #conf:存放appium-android配置设置,以及App页面元素配置文件;

    #logs:存放日志以及截图;

    #data:存放测试数据;

    #common:存放工具类的脚本;

    #tests:存放测试脚本;

    #result:存放测试结果

    业务功能的封装测试用例的封装测试包的管理截图处理断言处理日志获取测试报告生成数据驱动数据配置:yaml配置、日志配置等

    五、流程

    无论在什么事情之前先要掌握流程,流程不清晰,效率低,方向也不清晰。注意排期,控制项目进度,也为了向领导汇报进度;

    需求了解和分析:分析需求或系统的哪些模块适合做自动化,怎么做?带来的好处是什么?方案选择:根据项目的需求选择更加适合的框架,实现需求利益最大化环境准备:考虑的是appium的版本,持续集成,代码管理等问题系统设计:设计各个代码模块的功能划分,以便协作开发编码:根据事先写好的用例编写代码(一般自动化测试分成两个组:开发测试框架,写自动化测试用例)执行:自动化成果展示

     

     

     

     

     

    最新回复(0)