如今,随着敏捷和 DevOps 软件方法论的发展,以及企业寻求更快发布和高质量产品的需求,它需要比手动测试方法更快,更高效的软件测试方法。微型,小型和中型企业(SME)使其测试过程自动化变得越来越必要,但是最关键的方面是选择正确的测试自动化框架。网上各式各样的介绍是否让你眼花缭乱?接下来,让我从实践出发,介绍一下什么是自动化测试框架。
什么是框架?
让我们从一个例子出发,而不是直接提供一个框架的粗俗定义。你应该参加过研讨会/讲座/会议,参与者会被要求遵守一些指导原则:
- 参加者应在讲座开始前 5 分钟就座
- 提前阅读摘要,以便您对演示文稿有一个大概的了解
- 手机应设为静音
- 如果您需要在讲座进行中离开,请使用扬声器对面的出口
- 会议结束时可以提出问题
你认为可以在不遵守这些准则的情况下参加 研讨会吗?
答案是肯定的!当然,你可以在没有上述指导的情况下进行研讨会/讲座/会议/演示,我们中的某些人也不会遵循。但是,如果遵循这些指导方针,将会产生有益的结果,例如减少演讲过程中的听众分心,增加参与者对主题的保留和理解。
基于上述内容,可以将框架定义为一组准则,遵循这些准则可以产生有益的结果。
什么是测试自动化框架?
我们知道,软件测试分为手工测试和自动化测试,一般只有自动化测试才有框架的概念。我们要进行自动化测试,就会用到很多工具,怎么去管理好这些代码,工具和数据呢?用框架把它们放在一起就是一种很好的方式。
测试自动化框架是为自动化测试脚本提供执行环境而搭建的支架,它是一套准则,例如编码标准,测试数据处理,对象库处理等,在自动化脚本编写过程中遵循这些准则可产生有益的结果,例如增加代码重用,更高的可移植性,降低的脚本维护成本等。准则而非规则;它们不是强制性的,你仍然可以在不遵循准则的情况下编写脚本。但是你会错过拥有框架的优势。
使用测试框架的好处主要有:
- 提高测试效率
- 降低维护成本
- 最少的人工干预
- 最大测试范围
- 代码的可重用性
公司的需求是什么?
我们学习自动化测试的最终目标都是为了提升公司产品的价值。那么,让我们再深入一些,从公司的角度思考为什么需要自动化测试框架。
企业通常面临着平衡成本和管理资源的难题,选择能够覆盖其所有业务场景以交付高质量应用程序的自动化框架。显然,通过选择和实施最佳的测试自动化框架,企业可以显着提高测试执行速度和测试过程的准确性,以提供更高的投资回报率(ROI)和高质量的产品。因此,我们应该选择有效的自动化框架类型,以确保对其应用程序进行有效的测试。
常见的自动化测试框架
我接下来会站在实践角度,来说说常见的自动化测试框架。现在用的最多的就是,Web UI 自动化和接口自动化两块,下面是我整理的内容:
1、接口自动化框架:
① java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL
② python+unittest/pytest+Git+Jenkins+MySQL
③ python+rebot framework+unittest/pytest+Git+Jenkins+MySQL
④ jmeter+Maven/Ant+Jenkins+MySQL
2、UI自动化测试框架
① java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL
② python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL
③ python+robot framework+unittest/pytest+Git+Jenkins+MySQL
需要大家注意的是,常见的 Robot Framework,Selenium 也可以单独称为框架,也可以称为工具。这些都是概念和术语,大家不必特别纠结。
通过上面的一些常见框架,你发现了什么?
它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具,可以根据需求进行相应调整。之后我也会展开介绍,比如常见框架的实践、单元测试框架是什么、测试工具有哪些等等,现在简单了解一下就好。
驱动模式
最常见的是按照驱动模式给框架进行分类,主要有以下几点
1.数据驱动
在自动化或测试任何应用程序时,有时您可能会使用不同的输入数据集多次测试相同的功能。在这种情况下,我们无法在测试脚本本身中嵌入测试数据。数据驱动测试框架可帮助用户将测试脚本逻辑和测试数据彼此隔离。测试数据保存在外部存储资源中,例如xml文件,excel文件,文本文件,CSV文件等。
我也专门写了一篇文章介绍数据驱动测试,感兴趣的朋友可以去看看。
好处
- 测试用例可以用多组数据执行
- 更改脚本不会影响测试数据
- 通过更快地执行测试,您将节省大量时间
缺点
- 建立数据驱动的框架需要花费大量时间
- 您将需要高超的技术专长,精通各种编程语言来编写这些脚本
2.关键字驱动
在某些方面,此框架是数据驱动测试框架的扩展。它不仅将测试数据与脚本分离,而且还将属于测试脚本的特定代码集保存到外部数据文件中。在这里,我们使用表格格式为要执行的每种方法定义关键字或操作词。设置完表格后,您要做的就是根据关键字编写将触发必要动作的代码。
好处
- 需要最少的脚本知识
- 提供高度的代码可重用性
- 可以独立于被测软件编写测试脚本
缺点
- 建立框架的初期投资很高
- 需要高级技术专家
3.混合型驱动框架
顾名思义,混合测试框架是上述多个框架的组合。这种设置的最好之处在于,它利用了各种关联框架的优势。关于此框架的最好的事情是可以根据您的特定需求和要求对其进行自定义。您可以选择适合每个需求的每个框架的功能。
4.行为驱动(lettuce)测试框架
TDD中的BDD内容即测试驱动开发,它允许用户以最少的软件代码干预就可以处理多个测试数据,从而有助于提高代码的可重用性,这是软件开发/测试自动化中的一种省时机制。
如何选择测试自动化框架
由于不同的企业有不同的需求,因此很难在测试自动化框架中确定您想要的所有内容。但是,大多数组织会在测试自动化框架中寻找一些关键标准:
1.易于脚本开发:测试框架必须支持敏捷过程和快速迭代。
2.跨团队兼容性:由于软件测试不限于单个部门,因此测试框架必须在各个角色之间兼容,并要求开发人员和质量检查人员提供输入。
3.支持多种语言:框架应包括对不同应用程序平台的语言支持。
4.对最新平台功能的支持:开源测试框架应定期更新,并应与最新的操作系统功能兼容,以避免围绕测试的框架空白。
最后
回顾一下,今天整体介绍了什么是测试框架,有哪些常见的测试框架,之后我会单独就最实用,最热门的接口自动化和 Web UI 自动化进行进一步的介绍。
不过,我们要知道,自动化测试框架只是辅助工具,自动化测试的核心在自动化测试用例,如何设计和实现高效和有效的自动用例才是自动化成功的关键,当然,这需要你对业务和需求有非常好的理解。我们下次见!