自动扩展接口测试用例的自动化测试系统与方法与流程

文档序号:11276222阅读:392来源:国知局
自动扩展接口测试用例的自动化测试系统与方法与流程

本发明涉及自动化测试技术领域,具体涉及一种自动扩展接口测试用例的自动化测试系统与方法。



背景技术:

在实现自动化测试的过程中,现有方法是使用一个可视化的自动化测试的框架,由框架完成脚本组织,执行流程控制,日志记录等相关工作,而测试人员的注意力主要集中在自动化脚本的编写和结果准确性复查方面。在这类框架下,虽然已经简化了测试人员的工作,但仍然存在如下问题:

1.针对某个接口编写的较全面覆盖的测试用例,将花费较大的人力和时间;

2.现有测试用例不能方便的迁移到其他接口,需要重新对各个用例进行内容修改,花费较大的人力和时间;

3.新进测试人员由于知识的局限性,不能充分考虑各类异常测试场景,从而导致构建的测试用例测试的不够全面。



技术实现要素:

本发明克服了现有技术的不足,提供一种自动扩展接口测试用例的自动化测试系统与方法,用于自动对测试用例进行扩展生成,自动输出响应内容和根据断言判定测试结果,并可对结果进行下载。

考虑到现有技术的上述问题,根据本发明公开的一个方面,本发明采用以下技术方案:

一种自动扩展接口测试用例的自动化测试系统,包括:

用户交互界面,用于输入测试内容,实现与用户的交互;

上传文件管理模块,用于读取上传的测试用例,并调用用例自动扩展模块进行扩展;

用例自动扩展模块,用于对用例进行自动扩展,针对参数化对象的类型,调用相应模块进行参数扩展;

用例运行模块,用于调用python库的方法进行封装,根据在用例扩展模块生成的用例数据分别执行测试用例;

结果处理模块,用于对用例执行结果进行断言判断、测试结果展示,以及提供测试结果下载。

根据本发明的一个实施方案,采用b/s架构,服务器后台基于python语言开发,用户交互前端使用html语言开发web。

根据本发明的另一个实施方案,包括多台测试服务器,多台测试服务器架设为nginx+tomcat配置的实现多并发测试操作的集群服务器。

根据本发明的另一个实施方案,所述用例自动扩展模块包括用于将测试内容分成若干大类,以及根据参数类型自动对基本用例进行扩展,生成测试用例。

为了更好地实现本发明,进一步的技术方案是:

一种自动扩展接口测试用例的自动化测试方法,包括:

步骤1:在用户交互界面中创建测试接口,配置该接口的url地址、请求方式、header内容和请求内容;

步骤2:在用户交互界面中对需要参数化的内容进行参数化,指定参数化对象类型,通过参数化对象,确定参数值所属类型,便于在后台处理时调用相应模块进行参数值构造,从而生成各种情况的测试用例;

步骤3:在用户交互界面中添加断言,用于对测试结果进行成功/失败判定;

步骤4:用户执行测试操作,提交执行测试命令到后台,后台立即调用相应模块进行测试数据的后台处理工作;

步骤5:服务器收到测试用户端传来的测试数据,调用用例扩展模块自动根据参数化内容和类型进行扩展,通过参数值替换来逐条生成相应的测试用例;

步骤6:服务器根据在步骤5扩展出的测试用例调用用例运行模块自动执行测试,得出结果并逐条对测试结果进行断言判定,将测试数据,测试结果,判定结果存入列表;

步骤7:服务器将测试数据、测试结果和判定结果通过结果处理模块推送到前端页面进行展示,用户选择是否导出测试结果。

根据本发明的另一个实施方案,所述步骤1的用户交互界面还提供对错误内容数据的检查和提供相应提示信息便于用户进行数据修正。

根据本发明的另一个实施方案,所述步骤3中还包括用户添加断言作为期望结果,从而判断测试结果的成功/失败。

本发明还可以是:

一种自动扩展接口测试用例的自动化测试方法,包括:

步骤1:在用户交互界面中下载测试用例模板excel,模板提供用例编写范例和编写说明;

步骤2:在excel中创建新的测试接口用例,配置该接口的url地址、请求方式、header内容和请求内容(data);

步骤3:对要参数化的内容进行参数化,并指定参数化对象类型;

步骤4:对用例添加断言,用于对测试结果进行成功/失败判定;

步骤5:用户通过用户交互界面上传excel;

步骤6:用户在用户交互界面执行测试操作,提交执行测试命令到后台,后台立即调用相应模块进行测试数据的后台处理工作;

步骤7:服务器收到测试用户端传来的测试数据,调用用例扩展模块自动根据参数化内容和类型进行扩展,通过参数值替换来逐条生成相应的测试用例;

步骤8:服务器根据在步骤5扩展出的测试用例调用用例运行模块自动执行测试,得出结果并逐条对测试结果进行断言判定,将测试数据,测试结果,判定结果存入列表;

步骤9:服务器将测试数据,测试结果,判定结果等数据通过结果处理模块推送到前端页面进行展示,用户选择是否导出测试结果。

与现有技术相比,本发明的有益效果之一是:

本发明的一种自动扩展接口测试用例的自动化测试系统与方法,具有:1)有效减少了编写用例耗费的人力成本与时间成本;2)有效减少了对新进员工进行业务培训、用例编写培训所花费的人力成本与时间成本;3)减少了用例迁移带来的逐个修改测试用例内容耗费的人力成本与时间成本;4)可通过自动执行用例来节省手工测试所花费的人力成本与时间成本。

附图说明

为了更清楚的说明本申请文件实施例或现有技术中的技术方案,下面将对实施例或现有技术的描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅是对本申请文件中一些实施例的参考,对于本领域技术人员来讲,在不付出创造性劳动的情况下,还可以根据这些附图得到其它的附图。

图1示出了根据本发明一个实施例的测试系统架构框图。

图2示出了根据本发明一个实施例的利用web配置测试数据进行测试的流程框图。

图3示出了根据本发明一个实施例的通过模板excel编写测试用例集进行测试的流程框图。

具体实施方式

下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。

如图1所示,一种自动扩展接口测试用例的自动化测试系统,其使用b/s架构,提供可视化界面,后台基于python语言,前端使用html语言,包含了用户交互界面(web)、上传文件管理、用例自动扩展模块、用例运行模块、结果处理模块,具体地:

用户交互界面:通过web界面实现与用户进行交互的功能,用户可以在该界面输入测试内容(如url地址、header内容、请求方式、请求内容(data)、参数化对象、断言等);

上传文件管理模块:实现对上传的批量测试用例进行读取,并调用用例扩展模块进行逐个扩展;

用例自动扩展模块:实现对用例进行自动扩展,针对参数化对象的类型,调用相应模块进行参数扩展,从而构造出各种情况(边界值、特殊值、异常值等)的测试用例;

用例运行模块:调用python官方库的方法进行封装,根据在用例扩展模块生成的用例数据分别执行测试用例。

结果处理模块:用于对用例执行结果进行断言判断、测试结果展示,并提供测试结果下载等功能。

作为对本测试系统的优化改进,还提供了对错误数据的容错处理,在用户输入错误的测试数据时,会根据错误内容提供反馈给用户进行修正;

本发明可包括多台测试服务器,多台测试服务器架设为nginx+tomcat配置的实现多并发测试操作的集群服务器。

以上方案中可以将测试内容分成几个大类(电话号码,邮箱地址,各类字符串等),然后再根据参数类型自动对基本用例进行扩展,测试人员仅需输入一个基本用例,即可通过本发明系统构造出各类边界值,特殊值,异常值的测试用例,有效减少了测试人员编写用例的时间,提高了工作效率。可以通过系统自动执行自动扩展生成的测试用例,得出测试结果。以及可以通过断言对所产生的测试结果进行判定成功/失败,并将结果反馈给用户,用户可以下载包含有测试用例及其执行响应、断言判定结果等内容的测试结果。

如图2所示,利用web配置测试数据进行测试:

步骤1:在用户交互界面(web)中创建新的测试接口,配置该接口的url地址、请求方式、header内容、请求内容(data)等必要内容,页面提供对错误内容数据的检查和提供相应提示信息便于用户进行数据修正;

步骤2:在用户交互界面(web)中对需要参数化的内容进行参数化,指定参数化对象类型(如:电话号码,邮箱地址,字符串等)。通过参数化对象,确定参数值所属类型,便于在后台处理时调用相应模块进行参数值构造,从而生成各种情况的测试用例;

步骤3:在用户交互界面(web)中添加断言,用于对测试结果进行成功/失败判定,用户可以添加断言作为期望结果,从而判断测试结果的成功/失败;

步骤4:用户执行测试操作,提交执行测试命令到后台,后台立即调用相应模块进行测试数据的后台处理工作;

步骤5:服务器收到测试用户端传来的测试数据,调用用例扩展模块自动根据参数化内容和类型进行扩展,通过参数值替换来逐条生成相应的测试用例。比如:参数化对象是手机号码类型,则可根据其内容自动扩展出移动、联通、电信、数据卡电话号码、虚拟运营商号码、不满足11位数字的号码、包含有特殊字符的号码、包含有字母的号码、前后含有空格符合的号码等类型的参数值,然后通过将这些值替换参数化对象,从而扩展生成新的测试用例,完成对参数化对象的健壮性测试;

步骤6:服务器根据在步骤5扩展出的测试用例调用用例运行模块自动执行测试,得出结果并逐条对测试结果进行断言判定,将测试数据,测试结果,判定结果存入列表;

步骤7:服务器将测试数据,测试结果,判定结果等数据通过结果处理模块推送到前端页面进行展示,用户可以通过按钮选择是否导出测试结果(excel方式)。

如图3所示,通过模板excel编写测试用例集进行测试:

步骤1:在用户交互界面(web)中下载测试用例模板excel,模板提供用例编写范例和编写说明;

步骤2:在excel中创建新的测试接口用例,配置该接口的url地址、请求方式、header内容、请求内容(data)等必要内容;

步骤3:对要参数化的内容进行参数化,并指定参数化对象类型(如:电话号码,邮箱地址,字符串等)。通过参数化对象,确定参数值所属类型,便于在后台处理时调用相应模块进行参数值构造,从而生成各种情况的测试用例;

步骤4:对用例添加断言,用于对测试结果进行成功/失败判定,用户可以添加断言作为期望结果,从而判断测试结果的成功/失败;

步骤5:用户通过用户交互界面(web)上传excel

步骤6:用户在用户交互界面(web)执行测试操作,提交执行测试命令到后台,后台立即调用相应模块进行测试数据的后台处理工作;

步骤7:服务器收到测试用户端传来的测试数据,调用用例扩展模块自动根据参数化内容和类型进行扩展,通过参数值替换来逐条生成相应的测试用例。比如:参数化对象是手机号码类型,则可根据其内容自动扩展出移动、联通、电信、数据卡电话号码、虚拟运营商号码、不满足11位数字的号码、包含有特殊字符的号码、包含有字母的号码、前后含有空格符合的号码等类型的参数值,然后通过将这些值替换参数化对象,从而扩展生成新的测试用例,完成对参数化对象的健壮性测试;

步骤8:服务器根据在步骤5扩展出的测试用例调用用例运行模块自动执行测试,得出结果并逐条对测试结果进行断言判定,将测试数据,测试结果,判定结果存入列表;

步骤9:服务器将测试数据,测试结果,判定结果等数据通过结果处理模块推送到前端页面进行展示,用户可以通过按钮选择是否导出测试结果(excel方式)。

综上,本发明在后台选用python脚本来驱动测试,采用excel表格管理测试数据,封装了excel文件数据处理的类、上传数据处理的类、以及三个用于扩展用例的类,同时封装接口库调用http接口,采用python封装好的api,并对测试需要的http组装字符可进行json转化处理。本发明系统实现接口测试自动化,融合用例自动扩展的功能,提高测试执行效率并且降低人工回归的成本。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分相互参见即可。

在本说明书中所谈到的“一个实施例”、“另一个实施例”、“实施例”、等,指的是结合该实施例描述的具体特征、结构或者特点包括在本申请概括性描述的至少一个实施例中。在说明书中多个地方出现同种表述不是一定指的是同一个实施例。进一步来说,结合任一实施例描述一个具体特征、结构或者特点时,所要主张的是结合其他实施例来实现这种特征、结构或者特点也落在本发明的范围内。

尽管这里参照本发明的多个解释性实施例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开和权利要求的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变型和改进外,对于本领域技术人员来说,其他的用途也将是明显的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1