一直以来,对“框架”这个概念很模糊,对于自动化,从来都是只想过怎么用代码来代替手工,没有想过跑出问题和日志该怎么通知存放,也没有想过怎么管理用例集。因最近有机会参与自动化测试框架搭建过程,所以写下自己一点微薄的理解,主要来源于前辈们。
一、什么是自动化测试框架?
1、提供可重用的基础自动化测试模块,如:selenium 、watir等,它们主要提供最基础的自动化测试功能,比如打开一个程序,模拟鼠标和键盘来点击或操作被测试对象,最后验证被测对象的属性以判断程序的正确性;
2、可以提供自动化测试执行和管理功能的架构模块,如:Phoenix Framework,robot ,STAF 等,它们本身不提供基础的自动化测试支持,只是用于组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果,通常这类框架一般都会集成一个基础自动化测试模块,如:robot框架就可以集成selenium 框架,Phoenix Framework集成的也是selenium框架。(百度百科)
从百度的解释没有很好的理解到底什么是测试框架,只知道提供自动化功能测试,提供自动化执行和管理。
按我自己的理解,自动化测试框架本身并不能完成一套自动化执行过程,它是管理工具。能够管理用例,导出日志,自动生成测试报告,而关键的执行部分是通过一个个组件来完成的,例如需要测试“微信”应用,那么它应该分为两个部分,一部分为基础业务逻辑,也就是我们所说的功能,一部分为应用性能,及内存泄漏常驻等代码层面的性能。
自动化测试框架定义:为了解决某些特定问题约束测试边界,找到解决问题方案,从而开发解决问题的组件
我们为什么要自动化,为什么需要搭建自动化测试框架?
1、目前业务大部分为客户在我们的定制基础上再定制,虽然版本分支众多,但核心功能没有改变,仍然是我们的定制系统加上客户的一些小定制,验收反复,测试人员技术无根本上的增长,同时也增加公司成本
2、对于测试中产生的随机性BUG(非用例集、非必现、测试手法冷门)没有有效反馈
3、搭建自动化测试框架管理测试用例集,保存测试日志及报告,使用组件分模块跑通主要测试业务,使测试更加高效专业
二、自动化测试框架
构成框架的组件,最起码应该具备以下的功能:
Log:日志记录和管理功能,针对不同的情况,设置不同的日志级别,方便定位问题;
Report:测试报告生成和管理以及即时通知,测试结果快速响应;
Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;
Common:公共函数、方法以及通用操作的管理,遵循高内聚低耦合原则;
TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽可能的提高覆盖率;
TestData:测试数据管理功能,数据与脚本分离,降低维护成本,提高可移植性;
TestSuite:测试组件管理功能,针对不同场景不同需求,组装构建不同的测试框架,遵循框架的灵活性和扩展性;
Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;
Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心!
三、自动化框架组成
编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。
编程语言:编写测试脚本、日志记录和输出;
单元测试框架:提供测试脚本运行、异常校验等一些列的配置;
扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;
持续集成工具:Jenkins,经典的持续集成工具;
数据库:测试数据管理;
项目管理工具:测试结果统计管理;
四、自动化架构图
说明:原文来源:http://www.cnblogs.com/imyalost/p/9034194.html
架构来源:https://note.youdao.com/share/?id=8ca31ea686143bc45d1c531e87ac3e05&type=note#/