分类归档 » GAT框架

GAT框架介绍

1 GAT代码地址:  https://github.com/TeamcatCorp/GAT-CODE.git 2 GAT快速开始项目模板地址:https://github.com/TeamcatCorp/GAT-DEMO.git 2  有问题请添加qq群:5130251950251951302519

2.3 用例开发架构 开发架构从物理角度看如下图:稍后就图10中的目录用途做详细说明 图10 1) 公共目录 l Libs:对于接口自动化以及WebUI自动化所使用的所有第三方类库都放在此目录里。 2) 接口相关目录 l InterfaceAutomation:接口自动化用例,场景组件,测试数据,用例描述文件等均放置在此目录中。总之就是接口自动化相关的文件都在此目录中。 l DataFiles\Excels: 用于存放单描述接口用例的Excel文件,以及其他参数文件 l DataFiles\Xmls:用于存放描述多接口用例的Xml文件,一起其他参数文件 l GatRunner:用于生成单元测试的工具 l IATStepGroup:所有测试用例中使用到的场景组件 l IATTestProject:由GatRunner生成的单元测试项目 3) WebUI相关目录 l UIAutomation: WebUI自动化用例,场景组件,测试数据,用例描述文件等均放置在此目录中。WebUI自动化相关的文件都在此目录中。 l DataFiles\Xmls:用于存放描述用例的Xml文件,参数数据文件,页面元素信息文件等。 l GatRunner:用于生成单元测试的工具 l WUATStepGroup:所有测试用例中使用到的场景组件 l WUATProject:由GatRunner生成的单元测试项目   3 开始写用例 3.1接口用例开发 1) 准备工作 l 第一步:获取图10中所有目录以及目录下文件。(注意:图10中顶层目录MobildePlatformQA.AutomationTesting名称可以自定义。另外如果只是做接口测试可以不获取UIAutomation目录及目录下的文件) l 第二步:获取到所有目录及文件后,打开InterfaceAutomation->GatRunner目录下的gatCreator.properties文件,做如下修改: 图11 l 第三步:打开InterfaceAutomation->GatRunner目录下的startup.bat文件,做如下修改 图12 2) 开始单接口用例开发 单一接口的用例的数据以及用例描述文件是存储在Excel文件中的。下面就详细解释一下Excel中各个字段的含义以及注意事项。 字段名称 字段说明 可选值/实例 ID 唯一即可 DomainName 接口URL的域名 http://api.demo.com Path 域名后参数前的部分 /service/uerlist ParameterName url的参数,列名以$开头 ExpectResult 接口的期望结果   AssertType 断言方式 Equal:和期望结果相等 Contains:包含期望结果 Custom:需要自定义场景组件   AssertMethod 断言方式为自定义情况下需要提供场景组件方法 packagename.classname.methodname:场景组件的参数ID SetupType Custom   SetupContext 需要Setup情况下需要提供场景组件方法 packagename.classname.methodname:场景组件的参数ID   TearDownType Custom   TearDownContext packagename.classname.methodname:场景组件的参数ID   备注:空值必须以:$NULL代替,不能留空 l 第一步:在InterfaceAutomation->DataFiles->Excels目录下创建一个Excel文件。文件名称代表接口所属的模块,请起一个有意义的名字。 l 第二步:打开新创建的Excel文件,并把一个sheet的名字修改为接口的名字,注意一个sheet只能为一个接口写用例。Sheet名字请不要包含特殊字符等。 l 第三步:复制已经存在的excel文件中的各个列名,到新建的sheet中,并开始填写值。 图13 l 请注意一下几点: n 确保ID唯一,DomainName,Path等字段的值都正确。 n 如果接口没有参数请确保没有以$开头的列。 n 如果不想传某个参数,可以把该参数的值置成$EMP. n Excel中的一行代表一个用例 n 如果需要添加描述性的列,列名请以#开头即可 n 黄色背景字段为默认字段,名称必须保持与图片中的一致。 n 绿色背景字段为接口参数,每增加一个参数在绿色字段增加一列即可。列名称为$+参数名称.如果没有参数请不要保留任何参数字段。 n 图片中可为空字段,在为空是请以$NULL代替 n 如果字段值为数字,请将单元格格式设置为字符串   l 第四步:完成以上步骤后,保存Excel文件。然后进入InterfaceAutomation->GatRunner中,双击bat文件。在双击之前请确保已经关闭了Excel文件,否则有可能出错。等到提示press any key的时候,就意味着框架已经根据你的excel文件为你在InterfaceAutomation->IATTestProject中生成了相应的测试用例方法。   3) 运行用例 到这步的时候你已经成功的完成了第一个用例,接下来是运行你的用例。 l 第一步:打开eclipse将生成的IATTestProject导入。 l 第二步:导入成功后,在Project下找到gatconfig.properties文件。做如下修改: 图14 l 修改完gatconfig.properties文件并保存后,在src文件中找到excel文件名_sheet名称.java文件然后点击右键,run as Testng就可以了

1背景 1.1  项目背景 开发GAT(General Automation Testing)的最初目的是公司同时需要做Web前端自动化,以及服务端的接口自动化。可能很多人觉得服务端接口测试和Web前端测试的方式差别的太大,所以应该各自写框架做测试。这种想法是很自然的想法,如果按照这种方法做了,写自动化测试用例的人就要分成两类,如果想互相备份那么就会形成相应的成本。基于我多年的Web开发,接口开发经验,以及4年多Web,接口自动化测试经验,决定将接口测试框架与Web前端自动化框架集成,统一接口用例开发,以及Web前端开发的方式,运行的方式等。降低测试人员开发自动化用例的门槛。 1.2  框架适用范围 1) 服务端接口 l 基于Rest协议的接口(移动端调用的接口基本都是此类接口) l Web Service类接口 2) Web UI 自动化 l 框架基于Web Driver封装 3) Android l To Do 1.3  使用要求 1) 支持的语言:Java 2) 必备软件:Eclipse,JDK 7.0+

2 GAT框架 2.1 GAT介绍 GAT框架目前支持两种类型的自动化测试,接口自动化,以及Web UI自动化测试。未来计划添加对Android Native App的自动化支持。使用框架的用例最终以Testng 的TestMethod来展现,因此支持与jenkins的无缝集成。 2.2 框架特点 1) 接口自动化 l 提供多种接口测试方式。即单一接口测试,多接口业务流程测试。目前多见的为单一接口的测试。 l 根据用户需求不同,不同的接口测试方式,用例开发难易度不同。 l 用例开发门槛低,用户只需要将接口用例数据填入格式化文件即可自动通过工具生成用例。 l 对于高级需求,框架提供自定义配置包括数据构造,精确匹配测试结果等。 l 框架对于不同域名下的相同接口支持自定义配置,只需要简单修改测试平台配置即可轻松将用例应用在不同平台上。 l 框架对于不同协议接口的支持,近乎无缝连接。 l 框架支持可配置 2) Web UI自动化 l 用例开发实现页面元素,测试用例数据,测试用例分离,实现了参数化与数据驱动 l 用例开发模式一致,语句编写一致,降低维护成本 l 更高粒度上的关键字实现 l 关键字模型化,模型数据驱动化,通过数字驱动化的关键字的组合可以拥有千变万化的用例,但是需要维护的代码降低到了最少、 2.3框架整体组成 图1 对于Web UI自动化和接口自动化来说,图1 中表示的功能可能会有少许差异,下面我将分别做说明。   1) 公共部分 l 单元测试集生成工具:根据用例描述文件来生成Testng 的TestMethod l 公共类库:包含了访问数据库,XML文件等各种公共类 l 单元测试集:由代码生成工具根据用例描述文件自动生成,一个Testmehod为一个用例。 l 核心框架:包含操作用例描述文件,测试数据文件,以及数据构造,接口调用,结果验证等功能 2) 接口测试部分 l 场景组件:场景组件是由用例开发人员开发的具有特定格式的方法,场景组件方法是定义在用户自定义的一个类中。场景组件作为用例的重要组成部分,在用例执行时由核心框架通过反射的方式逐个执行。分为3种。具体形式看下图。 图2 a) 红圈1代表了第一种场景组件,用来做断言的断言类组件 b) 红圈2 代表了第二种场景组件,用来作为用例其中一个步骤的步骤组件 c) 红圈3 代表了在用例执行前需要执行的组件 l 用例数据:对于接口测试来说,用例测试数据由于接口测试用例类型的不同分别存储在Excel文件和xml文件中。形式如下: a) 存储在excel中的数据 图3 b) 存储在xml中的数据 图 4 以上数据无论是存储在什么文件中,都是一个段格式化的数据,分别对应着框架中的一个类。 l 用例描述文件:用来描述用例使用了哪些数据或者由哪些场景组件组成等信息。对于接口测试来说用例描述文件根绝测试用例类型也分为两种。形式如下: a) 存储在excel中(这种形式的用例,用例描述和用例数据是放在一起的具体形式查看数据小结) b) 存储在xml中,这种类型的用例是由多个测试场景组件组成的,xml文件中保存了测试场景组件的必要信息。形式如下: 图6 1) Web UI部分 l 场景组件:场景组件是由用例开发人员开发的具有特定格式的方法,场景组件方法是定义在用户自定义的一个类中。场景组件作为用例的重要组成部分,在用例执行时由核心框架通过反射的方式逐个执行。分为3种。具体形式看下图。 图7 a) 红圈1代表了第一种场景组件,用来做断言的断言类组件,断言类组件方法有三个参数本组件用到的数据的ID,以及期望结果,实际结果 b) 红圈2 代表了第二种场景组件,用来作为用例其中一个步骤的步骤组件(仅有一个参数) c) 红圈3 代表了在用例执行前需要执行的组件(仅有一个参数) l 用例数据:对于Web UI自动化测试来说测试用例数据全部存储在xml文件中 形式如下:   图8 以上数据和接口用例数据一样,都是一个段格式化的数据,分别对应着框架中的一个类。 l 用例描述文件:用来描述用例使用了哪些数据或者由哪些场景组件组成等信息。对于Web UI自动化来说用例描述文件只有xml一种,这种类型的用例是由多个测试场景组件组成的,xml文件中保存了测试场景组件的必要信息。形式如下: 图-9