• 2024年测试程序员必看系列之自动化测试框架


    自动化测试框架概念

    自动化测试框架是一个集成体系,这个体系中包含测试功能的函数库、测试数据源、测试对象以及可重用的模块。

    框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。

    在软件工程中,框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;

    另一种定义认为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从目的方面给出的定义

    对于测试人员来说,线性脚本的自动化脚本在维护性和可用性上教差,就可以利用设计的框架来实现自动化测试

    自动化测试框架根据思想理念和深度不同,渐进式的分为以下几种:

    模块化思想 ==> 模块化测试脚本框架

    库思想 ==> 测试库框架

    数据驱动思想 ==> 数据驱动测试框架

    关键字驱动思想 ==> 关键字驱动或表驱动的测试框架

    上述思想融合完成企业实际自动化 ==> 混合测试自动化框架

    模块化测试脚本框架:

      需要创建独立的可描述的模块、程序片断以及待测试应用程序的脚本。这些小脚本进行组合,就能组成用来独立运行特定的测试的测试用例脚本。

    测试库框架:

      与模块化测试脚本框架很类似,并且具有同样的优点。不同的是测试库框架把待测应用程序分解为过程和函数而不是脚本。这个框架需要创建描述模块、片断以及待测应用程序的功能库文件。

    数据驱动测试框架:

      在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC源,CSV文件,EXCEL文件,Json文件,Yaml文件,ADO对象等)并且通过捕获工具生成或者手工生成的代码脚本被载入到变量中。在这个框架中,变量不仅被用来存放输入值还被用来存放输出的验证值。整个程序中,测试脚本来读取数值文件,记载测试状态和信息。这类似于表驱动测试,在表驱动测试中,它的测试用例是包含在数据文件而不是在脚本中,对于数据而言,脚本仅仅是一个“驱动器”,或者是一个传送机构。

     自动化测试相关教程推荐:

    2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

    2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

    测试开发相关教程推荐

    2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

    postman/jmeter/fiddler测试工具类教程推荐

    讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

    2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

    2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

    关键字驱动或表驱动的测试框架:

      这个框架需要开发数据表和关键字。这些数据表和关键字独立于执行它们的测试自动化工具,并可以用来“驱动"待测应用程序和数据的测试脚本代码,关键宇驱动测试看上去与手工测试用例很类似。在一个关键字驱动测试中,把待测应用程序的功能和每个测试的执行步骤一起写到一个表中。
      这个测试框架可以通过很少的代码来产生大量的测试用例。同样的代码在用数据表来产生各个测试用例的同时被复用。

    混合测试自动化框架:

      最普遍的执行框架是上面介绍的所有技术的一个结合,取其长处,弥补其不足。这个混合测试框架是由大部分框架随着时间并经过若干项目演化而来的。

    框架设计目标

      设计出来的框架是直接给测试人员,而且其他的测试人员只需要简单的向里面不断的补充测试用例即可;所以我们的框架设计必须三简化即操作简单,维护简单,扩展简单。
      设计框架的同时一定要结合业务流程,而不仅仅靠技术实现,其实技术实现不难,难点对业务流程的理解和把握。
      设计框架时要将基础的封装成公用的,如:get请求、post请求和断言封装成同基础通用类。
      测试用例要与代码分开,这样便于用例管理,采用数据驱动框架实现。

    如下图所示:

    通过在excel录入测试用例,框架运行后自动进行用例执行,产生html网页版本的测试报告。

    报告

    框架用到的技术点

    1、语言:python

    2、测试框架:unittest(assertEqual)/ pytest

    3、接口调用:requests(API非常简洁)

    4、数据驱动:paramunittest (组装一定的格式数据就可以参数化)

    5、数据管理:xlrd(读取excel文件数据)、configparser(读取配置文件)

    6、数据格式的转换:ast,json

    7、日志处理:logging ---清晰的执行过程,快速定位问题

    8、测试报表:HTMLTestReportCN(由网友制作设计,显示清晰美观)

    9、测试发送测试报告:smtplib(邮件内容格式设置)、email(收发邮件)

    10、持续集成:Jenkins(按策略执行接口测试脚本

     总结:

     光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

    如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

    如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

    在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

    我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

    测试开发视频教程、学习笔记领取传送门!!

  • 相关阅读:
    LabVIEW对Table中同一行数据分多次增加
    【Java】怎么处理Oracle的Clob类型字段
    算法刷题入门线性表|单调栈
    健身装备有哪些推荐?健身运动装备品牌排行榜
    分布式监控系统——Zabbix(3)配置
    六大排序(插入排序、希尔排序、冒泡排序、选择排序、堆排序、快速排序)未完
    SpringBoot整合Swagger
    Qt事件的详细介绍和原理
    数据集-特征降维
    python 虚拟环境搭建、打包成exe发布和所遇到的问题汇总
  • 原文地址:https://blog.csdn.net/MXB_1220/article/details/134533890