如何建立自动化测试框架

2024-05-13

1. 如何建立自动化测试框架

测试结果的分析也是很重要的,一般也要求在自动化测试框架中得到解决。最重要的是易用,将各个工具集成起来,并能很好地使用这些工具。
例如,openqa.org社区提供了一个工具Bromine,它集成了Selenium Core/RC,非常容易跟踪和管理测试项目、需求、测试计划、测试用例和缺陷,可以监控缺陷的提交和将缺陷分派给相应的开发人员,浏览和分析测试结果。又如泽众软件(spasvo.com)自主研发的
测试管理工具TestCenter
,实现测试用例的过程管理,对测试需求过程、测试用例设计过程、业务组件设计实现过程等整个测试过程进行管理。实现测试用例的标准化即每个测试人员都能够理解并使用标准化后的测试用例,降低了测试用例对个人的依赖;提供测试用例复用,用例和脚本能够被复用,以保护测试人员的资产;提供可伸缩的测试执行框架,提供自动测试支持;提供测试数据管理,帮助用户同意管理测试数据,降低测试数据和测试脚本之间的耦合度。
一个理想的自动化测试框架能解决上述问题,提供一个分布式的通讯平台、友好的人机交互界面和开放式架构,将自动化测试中所需要的各个关键部分有机地集成起来,形成一个为自动化测试服务的、完整的、层次清楚的开发平台和运行环境,包括:
1)综合管理平台,可以将自动化测试中所有的工作内容管理起来,相当于一个统一的入口(Portal),可以浏览每部分的内容;
2)基于业务驱动的脚本集成开发环境,这样比较容易构造关键字驱动的脚本,为此要建立软件系统的对象库,并将这些对象映射为脚本中的逻辑对象,以减少软件需求变化对脚本的影响。这个集成开发环境还包括脚本录制、编辑等功能,并能和CVS、Ant等工具集成。其中库函数可以看作是关键字列表和关键字实现,而对象映射可以看作对象库和映射关系构成的。
3)安排(schedule)测试任务,使任务可以定时启动,自带执行测试任务;
4)在测试过程中,能够监控测试资源,并及时发现问题,发出警告,并保留(记录)相关数据;
5)控制中心(控制器),驱动测试工具
,可以调用测试任务,并能将测试任务、测试脚本等分发给远程机器;
6)远程机器执行测试任务,通过代理实现,而代理由控制中心来控制。

如何建立自动化测试框架

2. 如何搭建python自动化测试框架

Auty文件夹结构介绍
1. actions文件夹:包含了和业务相关的包含可复用方法的脚本文件,根据业务的不同可以在actions文件夹下创建不同的业务文件夹;
2. constants文件夹:包含了常量初始化的python脚本文件,根据业务划分可以再创建子文件夹或多个常量文件;
3. data文件夹:包含了测试用的数据;
4. lib文件夹:包含了支持框架运行的python文件;
5. log文件夹:包含了运行测试过程中生成的日志文件;
6. results文件夹:包含了测试结果文件;
7. scripts文件夹:包含了scripts文件夹和selections文件夹;
1)scripts文件夹下包含了测试脚本(可根据业务划分成多个子目录);
2)selections文件夹下包含了suite文件(包含了需要执行的脚本路径集合);
8. utils文件夹:包含了和业务逻辑无关的包含可复用方法的脚本文件;
Auty文件结构介绍
1. Auty文件夹下:
1)__init__.py文件:包结构所必需文件(以下所有涉及可调用脚本的文件夹下均需有此文件);
2)config.txt文件:Auty框架配置说明文件;
3)recovery.py文件:垃圾代码回收文件(用来回收执行测试过程中因故障未能自动删除的自动生成的代码);
4)requirements文件:包含了框架所需要安装的python库信息;
5)setup.py文件:执行脚本以安装requirements文件中所包含的python库;
6)start.py文件:执行脚本以启动接口自动化测试;
2. lib文件夹下:
1)exe_deco.py文件:包含修饰脚本运行时方法的文件;
2)execute_selection.py文件:包含运行suite集合下脚本方法的文件;
3)generate_html.py文件:包含根据生成的csv格式测试结果文件生成html类型测试结果文件方法的文件;
4)generate_result.py文件:包含生成csv格式测试结果方法的文件;
5)read_selection.py文件:包含读取可执行的脚本列表方法的文件;
6)recovery_code.py文件:包含垃圾代码回收方法的文件;
7)write_log.py文件:包含生成日志文件方法的文件;
3. scripts文件夹下:
1)create_selection.py文件:包含创建suite文件(all_scripts_selection.txt)方法的文件;
Auty使用步骤
1. 运行Auty/setup.py文件;
2. 编写接口测试python脚本并放到Auty/scripts/scripts目录(或子目录)下;
3. 运行Auty/scripts/create_selection.py文件生成Auty/scripts/all_scripts_selection.txt文件;
4. 修改Auty/scripts/all_scripts_selection.txt文件自定义test_selection.txt文件(名字随意起)并放到Auty/scripts/selections文件夹下;
5. 运行Auty/start.py文件开始接口自动化测试;
6. 在Auty/results文件夹下生成的测试结果文件中查看测试结果。
Auty编写过程
这个框架里scripts、utils、actions、contants四个文件夹中的内容是根据实际工作内容可以随意替换的,其他为Auty接口自动化测试框架必需的组成部分

3. 自动化测试框架的介绍

自动化测试框架1,即是应用于自动化测试所用的框架。按照框架的定义,自动化测试框架要么是提供可重用的基础自动化测试模块,如:selenium2、watir等,它们主要提供最基础的自动化测试功能,比如打开一个程序,模拟鼠标和键盘来点击或操作被测试对象,最后验证被测对象的属性以判断程序的正确性;要么是可以提供自动化测试执行和管理功能的架构模块,如:Phoenix Framework,robot3,STAF4等,它们本身不提供基础的自动化测试支持,只是用于组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果,通常这类框架一般都会集成一个基础自动化测试模块,如:robot框架就可以集成selenium5框架,Phoenix Framework集成的也是selenium框架。

自动化测试框架的介绍

4. 自动化测试框架都有哪些?

自动化测试框架主要分为以下几种,可以根据项目需要进行选择
1.模块化框架(test script modularity)。
2.函数库结构框架(test library architecture)。
3.关键字驱动测试框架(keyword-driven/table-driven testing)。
4.数据驱动测试框架(data-driven testing)。
5.混合型框架(hybrid test automation)。

5. 什么是自动化测试框架?


什么是自动化测试框架?

6. 自动化测试:为什么需要框架

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。其实目前为止,框架还没有统一定义,我比较喜欢Ralph Johnson所给出的定义:
一个框架是一个可复用设计,它是由一组抽象类及其实例间协作关系来表达的 【Johnson 98】。这个定义是从框架内涵的角度来定义框架的,当然也可以从框架用途的角度来给出框架的定义:一个框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现【Bosch 97】。
又是一个理所当然的问题。因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

7. 自动化测试框架有哪几种?

冒昧的说一句,您这个问题问的可能比较大。
因为从自动化测试角度讲的测试框架有很多种;而且并没有什么固定的条条框框。全部是根据测试需要及公司产品开发现状进行搭建的。从通俗的 整体的角度讲只要满足:测试输入(脚本编写)-》测试执行-》结果输出  这种模式的都可称之为自动化测试框架。
而从不同的角度分析框架又可根据不同筛选条件分为多类:
如:1.脚本语言方面分析,很多种语言提供了多种自动化测试的基础框架:
     1)ruby的Watir开源自动化测试框架、Test::Unit单元测试框架、开源测试框架Ruby on Rails 等等
          2)java的junit回归测试框架、Mockito、TestNG、easyb等等等等
     3)Perl的perl Mechanize、Test::Base数据驱动测试等等等等
     4)Python的PyUnit、PAMIE等等等等
          5)基于Tcl/Tk的swift 自动化测试框架,ATF/VTP自动化测试框架
           以上仅列举自动化测试常用的几种脚本语言的测试框架,当然不仅仅是这些
         2.从测试体系角度分又分为:
        1)单元测试框架.
                2)系统测试框架
        3)集成测试框架
         。。。。。
     3.基于测试目的的划分
        1)GUI自动化测试框架
        2)网络协议自动化测试框架
        3)基于web的自动化测试框架
        。。。。。
          4.从实现深度和角度分类:
        1)简单的录制回放测试框架(或工具)
        2)关键字驱动的测试框架
        3)关键字驱动及结果输出分析的自动化测试框架
        4)智能匹配功能及具备快速脚本生成功能的自动化测试框架
        。。。。。。
          5.从测试工具角度分:
         有些测试工具是许多大型公司结合了很多测试经验及数据后进行开发的自动化测试软件或者称之为测试管理软件的自动化管理部分及自动化测试部分;也有人称之为自动化测试框架或自动化测试工具。比如QTP;LoadRunner;Quality Center、selenium等等。都具有一定的自动化测试及管理功能。

所以总的来看,测试框架分为很多种;不知提问者问的是哪个具体方面的。
笔者水平有限,仅能做个基本介绍,希望能有所帮助。也祝愿所有从事自动化测试相关工作的同志事业顺利。欢迎沟通交流

自动化测试框架有哪几种?

8. 如何从零开始构建公司的自动化测试

首先,想从事自动化测试,必须先了解What/Why/How,也就是常说的去了解什么是自动化测试、为什么要进行自动化测试、该如何进行自动化测试,这类的资料在网上有很多,这里就不做重复了;   其次,需要根据项目的特点,选择合适的自动化测试工具,并了解工具的特性。以QTP为例,该如何去掌握它呢?对于初学者,大多数都是通过录制的方式来生成脚本,这个阶段应该掌握的基础知识有:  1)     QTP是如何去识别对象的,对于新手经常会出现录制的脚本回放的时候报错的现象,这个时候就应该考虑为什么呢?如果很了解QTP识别对象的原理啊,我想就能很快定位到原因了  2)     去掌握一些QTP对象的方法,如GetROPreperty、GetTOPreperty、ChildObjects等等,对于相似的方法应该去搞清楚到底区别在哪?像GetROPreperty、GetTOPreperty有什么区别等  3)     什么是Action参数、什么又是Test参数?两者有什么区别,又有什么联系,在同一Test和不同Test间这些参数如何工作  4)     什么是环境变量?环境变量是如何建立和使用的,环境变量在参数传递中和action参数、test参数有什么不同  5)     了解检查点的知识,明白什么是内置检查点,什么又是自定义检查点。并搞清楚在什么时候该如何使用检查点  6)     掌握对象库的操作,了解对象库对于测试的意义,象是否启用智能识别对测试脚本有何影响、为什么同一对象识别起来会有_1、_2之类的后缀等都是需要去研究清楚的问题  这几个问题都搞清楚的话,那基本就能够利用QTP生成正确的脚本了,当然以上只是部分必须掌握的内容,其实还是很多细节的设置,就需要在实际运用中去掌握了。  接下来,就可以进一步提升自己的QTP运用水平了,这个阶段就需要去学习vbs知识和如何运用描述性编程实现脚本了,同时在这个过程中还需要去学习html知识、DOM、XML、以及像excel、word等的API知识了,总的来说,这个阶段应该掌握的内容大体上包括:  1)     VBscrīpt的基础知识,熟悉常用的方法和函数,掌握文件对象的操作等  2)     熟练掌握XML技术;excel、word等API对象,可以根据需要创建日志等  3)     熟练掌握DOM和HTML知识,能够结合这些技术对Web页面进行解析  4)     掌握数据库的基本操作语句,能够利用ADO对象进行数据操纵  5)     熟练掌握正则表达式,很多时候处理对象问题相当方便  6)     掌握如何调用dll进行工作  7)     能够利用QTP的自动化对象模型创建出需要的运行模式  8)     掌握WMI知识  以上只是我考虑到的部分,并不全面,呵呵,供大家参考,当然这些技术主要是针对Web系统运行,因为我们的系统就是B/S的,呵呵。如果这些知识都能够扎实的掌握的话,个人认为,基本上能够处理自动化过程中的绝大多数问题了,这个时候你对自动化测试的技术应该是有一定积累了。  接下来就需要考虑自动化测试框架问题了。当脚本规模到了一定的程度,就会面临一些问题,如:  1)     如何有效的管理并调度脚本  2)     如何实现脚本运行的无人值守,测试过程中能够自动进行错误处理并进行日志记录  3)     如何生成简介明确的测试报告  4)     如何能够更加高效的维护测试脚本  5)     实现框架代码和业务代码的分层、业务脚本和业务数据的分离  这个阶段主要体现的是测试人员的测试思想,是可以脱离工具独立存在的过程。当然各个公司项目的实际情况不同,导致设计出来的思想不同,但总体上来说一般包括数据驱动和关键字驱动两种模式。后者实现的技术难度大于前者,大多数公司目前都采用的数据驱动模式。这个阶段不应局限于技术运用上,而需要从测试全局考虑,进行分层设计、模块化实现,减少代码之间的耦合。  如果以上三个方面都能够做的很好的话,那么恭喜你,你已经可以独立负责项目的自动化测试建立工作了,呵呵!  总之,学习自动化测试需要在实际项目中进行,这样提高的会比较快,项目中运用了很多种技术,自动化实施过程会碰见各种各样的问题,是很好的学习机会,关键要善于总结、积累经验,只要能够把各个细节做好,那么你一定能够成为一名优秀的自动化测试工程师。