`
ruilin215
  • 浏览: 1148013 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

自动化测试框架:自己的框架

阅读更多

这段时间一直在为公司内部开发自动化测试框架,简称GTF。这些代码都是公司的财产,不方便共享。当然了,如果公司愿意,我倒愿意开源了。

不说这些了,因为这个框架现在还属于开发阶段,很多事都是言之过早。最近几个博文中,我会持续将我在架构过程中的想法写下来。供自己和大家一起分享。

这些想法,并不属于我一个人,我工作中的同事们给了我很大的帮助。

这一篇主要说明架构方面的考虑。

在现有的提供自动化测试解决方案的产品很多,包括:Robot,TestComplete,WinRunner等等。我只接触过这些,公司里也进行过很大的尝试,但是结果往往总是不竟如人意。

这中间,排除那些人员方面的原因,也总结这些自动化工具,在使用过程中的不方便的地方:

  1. 定位控件不方便。标准控件还好,非标准控件就只能靠很多非正常方法去获取。而且,控件的识别往往和界面布局相关。
  2. 验证数据不方便。这点更是针对非标准控件(什么?你不用非标准控件?),数据的检测,甚至夸张到使用图片检测。
  3. 代码维护不方便。由于在编写过程中,大量的和界面相关的代码,导致最后在需求变更的时候,代码的维护,成为测试人员的负担。

针对这些情况,我们经过讨论,何不自己做一个测试框架。当然了,这是基于我们的丰富的知识积累的决策。大家不需要关心这个决策的情况。不过,可以多关注一些我们在做的过程中的分析结果。

通过分析流行的测试框架,有多种方式:

第一、最典型的就是消息驱动,自动化工具通过脚本录制和编写,保存为测试脚本。在回放的过程中,将这些脚本转换成为Windows消息,发送给我们应用程序的窗体和各种控件。

这种方式的好处在于,自动化工具和应用程序之间能够做到完全的隔离。但是,由于使用了Windows消息,它也拥有了一个非常致命的缺点。那就是消息队列的异步性与程序的顺序性之间的矛盾。很多消息发送给了应用程序,但是应用程序的处理可能已经和消息队列错位了。有一些关于代码的时间片等待,就是因为这个问题。

另外,就是由于完全的隔离,对于操纵控件数据的能力大大降低。毕竟,拥有大量数据的控件都不是标准控件。

第二、嵌入式。TestComplete就是这类工具。它有支持不同语言的版本。大概思路,就是在程序编译的时候,注入自己的控件代理。脚本的回放,直接可以通过代理,操纵到应用程序。

可惜的是,这类软件开发的时候,更多的是考虑平台的兼容性。对于特有平台上的支持不是十分完美。特别是对自定义控件(比如Delphi中,除了VCL的标准控件)支持也没有做到最好。不过,我这里必须承认,TC的内部实现机制可能十分强大,我不能窥探所有。如果有人清晰,可以指点一二。

针对上面的两种,我们想到的第三种方式:一体式。这种方式中,通过给程序在打包的过程中,添加额外的框架代码,是的程序自动提供控件的访问方式。自动化的模块也会作为测试程序的一部分运行。

应用程序在执行脚本的时候,自动通过脚本,控制各控件界面的显示和关闭。它应该是第二种方式的变种。但是由于是自己实现的,所以在对各类自定义控件支持的都非常好。

针对一开始提出的几个自动化测试的难题,我们提出了,自动封装窗体上所有控件的概念(这些概念后面会详细介绍),对于测试人员,只要关心真正的业务操作流程。而业务流程中涉及到的控件,已经为他们自动提供好。这样,脚本也自然只成了业务流程的脚本。其复杂度也就大大降下来了。

按照这个思路,最主要的是可以充分发挥“程序是我们自己的”的优势,对于测试人员,开发人员是他们的最好的访问控件的工具。有什么控件找不到,开发人员可以快速地给他们适配一个访问方式。这也大大降低了测试人员对软件系统内部的了解程度。

因此,自定义的测试框架,最大的优势来源于其无限的扩充能力,以及简洁的封装界面。相信这个框架一定能给我们自动化测试方面带来很多优势。

分享到:
评论

相关推荐

    自己动手写Web自动化测试框架.doc

    【自己动手写Web自动化测试框架】的文档是一个指导如何构建基于C#的Web自动化测试工具的教程。这个框架旨在帮助测试人员高效编写自动化测试代码,并在出现错误时快速定位问题。文档提到了两个主要的非托管类库:...

    MT:美团'Mario'自动化测试框架.pdf

    文档中提到的“MT:美团'Mario'自动化测试框架”就是美团公司在自动化测试领域自主研发的一套自动化测试框架,从美团内部的业务需求和实际应用出发,旨在提高测试效率,保障软件质量。 Mario测试框架的核心特点包括...

    chromedriver.exe【版本:120.0.6073.0、谷歌浏览器驱动,自动化测试框架,Web自动化,浏览器交互】

    【内容概述】 chromedriver.exe是一个用于自动化控制和管理谷歌Chrome浏览器的执行文件,通常作为Selenium测试框架的一部分。...3. 自动化测试框架:通常与Selenium等自动化测试框架一起使用,提供更高级的浏览器自动化

    C简易自动化测试框架

    本文将详细解析一个以C语言为基础的简易自动化测试框架,旨在帮助开发者理解和构建自己的测试解决方案。 首先,我们要理解"自动化测试框架"的概念。自动化测试框架是一个系统,它提供了一种结构化的方法来编写和...

    Android自动化测试框架

    1. 选择合适的测试框架:根据项目需求和技术栈,选择最适合的自动化测试框架。 2. 编写测试用例:根据应用的功能,编写详细的测试用例,包括正常流程和异常情况。 3. 安装和配置:安装所选框架,设置必要的环境变量...

    千锋软件测试教程:自动化测试框架-HPUFT精解

    本节课程从自动化测试概述、UFT(QTP)脚本增强、VBscript脚本编程及Python等,扣丁学堂软件测试技术交流群:338750406 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    WEB自动化测试框架文档.doc

    【文档标题】:“WEB自动化测试框架文档.doc” 【文档描述】:该文档详细阐述了WEB自动化测试的关键思路、编码基础和框架介绍,旨在提供一套有效的自动化测试解决方案。 【标签】:“WEB自动化测试框架文档.doc” ...

    自动化测试框架

    ### 自动化测试框架 #### 涉及技术的简介 在现代软件开发过程中,自动化测试已成为确保软件质量的关键组成部分。本文将详细介绍一种基于CODEUI的自动化测试框架的设计与实现,该框架采用文本模板引擎(T4)来生成...

    Jmeter接口自动化测试框架

    Jmeter接口自动化测试框架 Jmeter是一款功能强大且广泛应用于接口自动化测试的工具,它提供了丰富的测试功能和插件,能够满足各种测试需求。本文档主要介绍了如何使用Jmeter实现接口自动化测试,包括安装Jmeter和...

    webUI自动化测试框架(Python+selenium)

    【Python+Selenium构建WebUI自动化测试框架】 在软件开发过程中,测试是不可或缺的一环,而自动化测试能够极大地提高测试效率,降低人工出错的概率。本文将深入探讨如何使用Python结合Selenium库构建一个WebUI自动...

    java自动化测试框架

    Java自动化测试框架是软件开发过程中不可或缺的一部分,它能够帮助开发者高效、准确地验证代码功能,提高软件质量。本文将深入探讨Java自动化测试框架的核心概念、常用工具以及如何构建一个基本的自动化测试流程。 ...

    高效自动化测试框架:基于Wilsonic RemoteAPI的Python源码实现

    项目概述:高效自动化测试框架 本项目采用Python作为主要开发语言,集成了C、HTML、JavaScript、CSS、Lua和C++等多种编程语言,共包含15,431个文件。文件类型丰富,主要包括: - Python编译文件(pyc):6,303个 -...

    自动化测试框架基础指南.pdf

    在选择自动化测试框架前,需要问自己多种问题,包括需要进行哪个层级的自动化测试、如何管理测试数据、如何选择测试工具和资源等。 六、常见的开源和商业自动化工具 常见的开源和商业自动化工具包括Selenium、...

    基于Springboot+Mybatis打造接口自动化测试框架-全网最新最全最具技术含量的接口自动化测试及框架编写

    在构建一个基于Springboot+Mybatis的接口自动化测试框架时,我们需要深入了解这两个核心技术和接口测试的基本原理。Springboot以其简洁的配置和快速的开发能力,成为现代Java Web应用的首选框架,而Mybatis则提供了...

    接口自动化测试项目实战已经框架源码

    通过这个项目实战,我们可以学习到如何构建一个完整的接口自动化测试流程,包括选择合适的自动化测试框架、编写测试用例、执行测试和生成报告,这对于提升测试技能和理解软件测试生命周期至关重要。同时,对Python...

    python+UI自动化测试框架

    Python UI自动化测试框架是软件测试领域中一种高效、灵活的工具,它可以帮助测试人员实现对图形用户界面(GUI)的自动化测试。本框架基于Python编程语言,结合了Selenium WebDriver库,unittest测试框架,...

    自动化测试框架,支持接口自动化、WEB UI自动化、APP UI自动化

    【标题】中的“自动化测试框架,支持接口自动化、WEB UI自动化、APP UI自动化”涉及到的是软件测试领域的一个重要话题。这个框架集成了多种自动化测试的能力,涵盖了从后端API到前端UI的全方位测试。 首先,接口...

    基于java的ui自动化测试框架

    Java UI自动化测试框架是软件开发过程中的重要工具,主要用于提高测试效率,确保应用程序用户界面的稳定性和可靠性。本文将深入探讨基于Java的UI自动化测试框架,包括其核心组件、使用的技术以及如何应用于Android ...

    selenium+python自动化测试框架:Excel用例读取+多用例自动运行+多浏览器+测试结果生成+失败case截图+log日志记录

    Excel用例读取+多用例自动运行+多浏览器+测试结果生成+失败case截图+log日志记录,具体介绍详见https://blog.csdn.net/wei92130/article/details/113810096

Global site tag (gtag.js) - Google Analytics