[发明专利]一种基于TestNG的软件自动化单元测试方法有效
申请号: | 202010247911.X | 申请日: | 2020-04-01 |
公开(公告)号: | CN111459821B | 公开(公告)日: | 2023-05-30 |
发明(设计)人: | 阮红梅;周海洋;周海冰 | 申请(专利权)人: | 汇通达网络股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 吴庭祥 |
地址: | 210008 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 testng 软件 自动化 单元测试 方法 | ||
1.一种基于TestNG的软件自动化单元测试方法,其特征在于,包括以下步骤:
步骤1,建立公共支撑模块;
步骤2,建立单元测试业务数据和测试脚本模块;
步骤3,建立结果处理引擎模块;
步骤4,建立报告管理模块,所述报告管理模块用于,针对待测试的软件,构建测试项目区分测试场景,并生成报告;
步骤1包括:建立公共支撑模块,公共支撑模块包括公共资源模块、依赖模块、业务处理模块和多数据源交叉连接模块;
步骤1中,所述公共资源模块用于,提供DTO数据传输模块和公共方法公共类;
其中,所述DTO数据传输模块用于传输不同渠道的数据;
所述公共方法公共类用于提供公共方法和公共类,其中,所述公共方法包括包装方法和公共比较方法;
所述公共类包括以下内容:
响应结果类:提供接口通用数据传输的数据传输对象的定义;
测试数据数据传输类:提供根据测试数据生成testng脚本数据传输对象的定义;
方法数据传输对象类:提供根据表格自动生成测试脚本数据传输对象的定义;
Xml数据传输对象类:提供生成测试脚本编排文件数据传输对象的定义;
方法监听类:提供根据表格自动生成测试用例脚本方法的定义与实现;
Xml监听类:提供根据测试数据和测试脚本自动生成测试统一调度文件编排脚本的方法;
扩展TestNG报告监听类:提供组织和生成测试报告方法和实现;
步骤1中,所述依赖模块用于提供软件自动化单元测试需要的各种依赖资源,所述各种依赖资源包括以下内容:
适配器依赖对各大中心资源依赖、io.dubbo分布式调度依赖、分布式注册中心调度客户端所需要的依赖、Testng测试框架所需要的依赖、电子表格操作模块easyexcel所需要的依赖模块和操作JSON协议的字符串的fastjson所需要的依赖模块;
步骤1中,所述业务处理模块用于,处理具体的项目中的测试业务,具体通过如下步骤实现:
步骤a1,新建项目命名native-cloud-integrate-test,用作业务中台接口断言;
步骤a2,采用横向分包方法新建分包,即按照业务划分;
步骤a3,创建测试类:测试类统一用Test开头,命名规则采用驼峰命名的形式,Test后面跟上服务名,业务中的每一个服务都有对应的Test服务进行对应;
步骤a4,在测试类下创建测试方法:测试方法名称采用以小写字母开头,以case开头,后面跟上测试用例编号;
步骤1中,所述多数据源交叉连接模块用于提供测试平台连接业务中台各个中心的数据中心的操作,在用例执行期间能够根据设置自由切换各个中心的数据库连接,从而达到对不同中心的业务数据库操作的目的;
步骤2包括:设置单元测试业务数据和测试脚本模块,所述设置单元测试业务数据和测试脚本模块用于完成对各自动化项目测试脚本活动之间关系的调用管理,具体实现方式有两种:第一种方式:采用编排文件方式,编排两个不同的脚本,编排文件能够根据场景,触发脚本之间按不同的优先级顺序执行管理;第二种方式:利用脚本之间的互相引用,能够根据用户场景,在脚本A的代码块中声明对代码B的引用,完成脚本A调用脚本B的目的;
单元测试业务数据和测试脚本模块包括单元测试脚本模块和数据文件模块,单元测试脚本模块用于完成脚本输出,数据文件模块用于完成测试验证数据输出;数据文件模块具有新增用例数据、编辑用例数据和修改测试数据的功能;
所述单元测试脚本模块具体执行如下步骤完成脚本输出:
步骤b1,在测试类下面建立测试方法,在测试方法下面建立接口脚本开发,并完成入参转化,对任意输入的字符串都能够转化成相应的类型的实体变量,包括带有泛型的类型;
步骤b2,期待值转化:如果期待值返回的是执行结果返回类型,执行结果返回类型泛型是字符串类型,先声明类型,然后在后面跟上相应的实体变量,然后跟上赋值符号,赋值符号右边是JSON提供的解析对象的方法,其中的一个参数是期待值,第二个参数是新建的类型引用的实体变量,类型引用的实体变量的泛型里面填上相应的调用接口返回的类型,从而将期待值转换成调用接口实际返回的实体变量的类型;
步骤b3,接口调用:声明一个接口调用返回的数据类型,然后后面紧接着跟上对应的类型的实体变量,然后后面跟上接口的服务类的实体变量,然后后面跟上点号,后紧接着跟上被测试的方法;接口的服务类的实体变量在测试脚本的文件上面声明,声明的时候实体变量的上一行需要加上引用注解,达到引用被测服务的目的,引用注解中包含可选参数,可选参数包括:
检查被测服务是否存在;
被测服务是否超时;
被测试服务的版本号;
步骤b4,结果比较:通过公共方法公共类中的比较方法,对测试者的期望返回值和接口调用返回值进行比较,其中比较方法的第一个参数就是测试框架调用被测试接口返回的返回值,第二个参数是测试者提供的预判值,即是测试者认为根据测试入参通过测试平台框架调用被测接口应该返回的值;通过公共工具提供的比较方法就能够判断出测试者认为的预期值和测试框架调用的实际返回值是否一致;
所述数据文件模块具体执行如下步骤完成测试验证数据输出并实现新增用例数据、编辑用例数据和修改测试数据的功能:
在数据文件模块中建立基线格式模板,模板的字段分为必填字段和选填字段,必填字段包含:测试用例编号、用例优先级、输入数据参数字符串、期待值、接口入参接口说明和接口路径;选填字段包含测试人、测试时间和备注;
在数据文件模块中能够根据用户场景和基线格式模板对用例字段内容进行调整和扩展;在新增测试用例过程中根据模板的内容自动匹配对应的测试用例;
步骤3中,所述结果处理引擎模块包括公共方法校验模块和特殊场景校验模块,
公共方法校验模块用于,通过公共方法公共类对接口的出参和期望值做全参数自动比对校验,保障每个公共的出参得到有效校验,减少单元测试脚本的开发工作量;
公共方法校验模块返回的结果分为以下五种类型:
第一种,字符串类型String;
第二种,Boolean类型;
第三种,执行结果类型,其中的泛型为字符串类型;
第四种,执行结果类型,其中的泛型为列表类型,列表类型中的类型为一个数据传输对象类型;
第五种,执行结果类型,其中的泛型为数据表格类型,数据表格类型中的类型为一个数据传输对象类型;
其中执行结果类型中包含状态码、结果消息、错误消息列表和执行结果;
公共方法校验模块通过两种方法对上述五种类型的结果进行断言,一种方法是通过公共方法公共类中提供的包装方法对上述五种类型的结果分别断言;另一种方法是对上述五种类型的结果进行统一处理,即通过公共资源模块提供的公共方法公共类中的公共比较方法,将调用结果返回值和测试者期待的值传入,然后进行比较;
所述包装方法用于,对公共方法校验模块返回的不同类型的结果分别断言;所述公共比较方法用于,对公共方法校验模块返回的不同类型的结果进行统一处理;
步骤4中,报告管理模块包括报告配置项和报告生成触发器;
所述报告配置项用于,根据不同配置系统输出不同的测试报告,具体包括:根据业务处理模块中的分包文件或者测试类文件,以及数据文件模块的具体字段选择自动比对输出测试报告;
所述报告生成触发器用于,根据测试数据生成测试报告,具体包括:
运行XmlWrite类中的simpleRead方法,根据测试业务数据生成对应的testng.xml文件;
运行testng.xml文件调用测试脚本生成测试报告,在testng.xml中增加扩展testng报告监听生成testng扩展测试报告;
在XmlWrite中提供根据EasyExcel操作测试业务数据表格方法读取和组合不同的测试者提供的测试业务数据最终生成testng.xml文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汇通达网络股份有限公司,未经汇通达网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010247911.X/1.html,转载请声明来源钻瓜专利网。