本发明涉及通信技术领域,尤其涉及一种接口测试方法及数据接口测试系统。
背景技术:
接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等,现有系统的接口测试都是基于系统本身执行相关测试,而使用者需要对多个第三方系统中的某一接口执行测试时,需分别提供第三方的测试系统对应的测试单元执行测试,在开发的程序中如果依赖多个第三方系统时,就需要花更多的精力来完成运行环境,因此给使用者的测试带来诸多不便。
技术实现要素:
针对现有技术中对第三方系统的接口执行检测存在的上述问题,现提供一种旨在可模拟第三方系统的接口执行测试,不依赖第三方系统,提高测试效率的接口测试方法及数据接口测试系统。
具体技术方案如下:
一种接口测试方法,应用于各类待测系统的接口测试,每个所述待测系统中包括至少一个待测试接口;其中,于一测试系统中,针对每个所述待测试接口预先设定多个参数集合,每个所述参数集合中包括一个请求参数以及对应所述请求参数的一个模拟数据;
包括以下步骤:
步骤s1、获取一待测试接口的请求参数;
步骤s2、对所述请求参数进行解析以获取所述待测试接口;
步骤s3、根据所述请求参数于所述待测试接口中调用与所述请求参数对应的测试数据,并且根据所述请求参数调用对应的所述参数集合中的所述模拟数据;
步骤s4、判断所述测试数据与被调用的所述模拟数据是否相同;
若是,则表示当前的所述待测试接口测试通过;
若否,则表示当前的所述待测试接口测试不通过。
优选的,对所述待测试接口预先配置所述参数集合的方法具体包括:
步骤a、获取所述待测系统中的一打包程序;
步骤b、对所述打包程序进行解析以获取所述打包程序中的所有接口数据并保存;
步骤c、于所有的所述接口数据中选择一需要测试的所述接口数据,并将选择的所述接口数据定义的接口确认为所述待测试接口;
步骤d、对所述待测试接口配置至少一个所述请求参数,以及分别配置与每个所述请求参数一一对应的所述模拟数据,以形成所述参数集合并保存。
优选的,在预先配置形成所述参数集合后,还包括一对所述待测试接口进行注册的方法,具体包括:
步骤e、读取所述待测试接口;
步骤f、于所述测试系统中加载读取的所述待测试接口;
步骤g、将加载的所述待测试接口注册到所述测试系统的接口调用数据库中。
优选的,所述打包程序为jar(jar(javaarchive,java归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件)包。
优选的,于所述测试系统中提供一数据库,用以保存所述待测试接口以及每个所述待测试系统的所述参数集合;
所述步骤s3中,于所述数据库中获取对应所述待测试接口的所述参数集合。
还包括一种数据接口测试系统,应用于各类待测系统的接口测试,每个所述待测系统中包括至少一个待测试接口;其中,所述测试系统中,针对每个所述待测试接口预先设定多个参数集合,每个所述参数集合中包括一个请求参数以及对应所述请求参数的一个模拟数据;
所述测试系统还包括:
获取模块,用以获取一待测试接口的请求参数;
第一解析模块,与所述获取模块连接,用以对所述请求参数进行解析以获取所述待测接口;
处理模块,与所述第一解析模块连接,用以于所述待测接口中获取与所述请求参数对应的一测试数据,并且根据所述请求参数调用对应的所述参数集合中的所述模拟数据;
判断模块,与所述处理模块连接,用以判断所述测试数据与被调用的所述模拟数据是否相同;
若是,则表示当前的所述待测试接口测试通过;
若否,则表示当前的所述待测试接口测试不通过。
优选的,还包括:
第二解析模块,用以对外部获取的所述待测系统中的一打包程序进行解析,以获取所述打包程序中的所有接口数据并保存;
配置模块,与所述第二解析模块连接,于所有的所述接口数据中选择一需要测试的所述接口数据,并将选择的所述接口数据定义的接口确认为所述待测试接口;
对所述待测试接口配置至少一个所述请求参数,以及分别配置与每个所述请求参数一一对应的所述模拟数据,以形成所述参数集合并保存。
优选的,还包括一数据库,与所述获取模块以及所述配置模块连接,用以保存所述待测试接口,以及每个所述待测试系统的所述参数集合;
所述获取模块用以于所述所数据库中获取对应所述待测试接口的所述参数集合。
优选的,所述打包程序为jar包。
优选的,还包括:
读取模块,与所述数据库连接,用以于所述数据库中读取所述待测试接口;
加载模块,与所述读取模块连接,用以加载所述待测试接口;
注册模块,与所述加载模块连接,用以将加载的所述待测试接口注册到所述注册模块包括的一存储模块中;
上述技术方案具有如下优点或有益效果:可模拟第三方系统的接口,对接口进行模拟测试,降低对第三方系统的依赖性,克服了现有在开发程序中依赖多个第三方系统时,需要花更多的时间与精力来完成运行环境的缺陷。
附图说明
参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。
图1为本发明一种接口测试方法实施例的流程图;
图2为本发明一种接口测试方法实施例中,关于配置参数集合方法的流程图;
图3为本发明一种接口测试方法实施例中,关于对待测试接口进行注册的方法的流程图;
图4为本发明一种接口测试系统实施例的结构示意图:
附图标记表示:
1、获取模块;2、第一解析模块;3、处理模块;4、判断模块;5、第二解析模块;6、配置模块;7、数据库;8、读取模块;9、加载模块;10、注册模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明的技术方案中包括一种接口测试方法
一种接口测试方法的实施例,应用于各类待测系统的接口测试,每个待测系统中包括至少一个待测试接口;其中,于一测试系统中,针对每个待测试接口预先设定多个参数集合,每个参数集合中包括一个请求参数以及对应请求参数的一个模拟数据;
如图1所示,包括以下步骤:
步骤s1、获取一待测试接口的请求参数;
步骤s2、对请求参数进行解析以获取待测试接口;
步骤s3、根据请求参数于待测试接口中调用与请求参数对应的测试数据,并且根据请求参数调用对应的参数集合中的模拟数据;
步骤s4、判断测试数据与被调用的模拟数据是否相同;
若是,则表示当前的待测试接口测试通过;
若否,则表示当前的待测试接口测试不通过。
针对现有的对第三方系统的接口进行测试时,需要根据系统提供对应的测试单元存在的测试不便,不易操作的问题;
本发明中,可对多个第三方系统的接口执行测试,当需要对第三方系统中的某一接口执行测试时,具体是通过对获取的待测试接口的请求参数进行解析,以获取待测试接口并根据请求参数于待测试接口中调用与请求参数对应的测试数据,以及参数集合中的对应请求参数的模拟数据,判断测试数据与一模拟数据是否相同;
若是,则表示当前的待测试接口测试通过;
若否,则表示当前的待测试接口测试不通过。
上述对接口的测试,并不依赖第三系统提供的测试单元,可对不同的待测试系统提供的待测试接口分别进行测试,不仅测试方便而且还提高了测试效率。
在一种较优地实施方式中,如图2所示,
对待测试接口预先配置参数集合的方法具体包括:
步骤a、获取待测系统中的一打包程序;
步骤b、对打包程序进行解析以获取打包程序中的所有接口数据并保存;
步骤c、于所有的接口数据中选择一需要测试的接口数据,并将选择的接口数据定义的接口确认为待测试接口;
步骤d、对待测试接口配置至少一个请求参数,以及分别配置、与每个请求参数一一对应的模拟数据,以形成参数集合并保存。
上述技术方案中,解析打包程序获取interface类型的class文件,然后列出接口名称以及请求参数,如:
接口名称为,com.hpay.userservice.query(stringid,stringname);
配置请求参数,设置请求参数中的编号id=1000,对应返回的模拟数据为,success;
配置请求参数,设置请求参数中的编号id=1111,对应返回的模拟数据为,failed;
若当前配置请求id=1000,返回的测试数据不是success,则表示当前的测试接口没有通过。
在一种较优的实施方式中,如图3所示,在预先配置形成参数集合后,还包括一对待测试接口进行注册的方法,具体包括:
步骤e、读取待测试接口;
步骤f、于测试系统中加载读取的待测试接口;
步骤g、将加载的待测试接口注册到测试系统的接口调用数据库中。
在一种较优的实施方式中,打包程序为jar包。
上述技术方案中,具体的注册测试接口的方法为,读取待测接口,创建一个代理类的实例(instance),并声明为spring的bean,将所有测试接口类信息(class信息)加载到jvm环境中,声明接口为dubbo类型的服务,并且将所有dubbo接口的服务实现逻辑,都指向上面声明的接口代理类;将dubbo服务都注册到系统配置好的zookeeper中初始化完成。
其中,zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是google的chubby一个开源的实现,是hadoop和hbase的重要组件。
在一种较优的实施方式中,于测试系统中提供一数据库,用以保存待测试接口以及每个待测试系统的参数集合;
步骤s3中,于数据库中获取对应待测试接口的参数集合。
本发明的技术方案中还包括一种数据接口测试系统。
如图4所示,一种数据接口测试系统的实施例,应用于各类待测系统的接口测试,每个待测系统中包括至少一个待测试接口;其特征在于,测试系统中,针对每个待测试接口预先设定多个参数集合,每个参数集合中包括一个请求参数以及对应请求参数的一个模拟数据;
测试系统还包括:
获取模块1,用以获取一待测试接口的请求参数;
第一解析模块2,与获取模块1连接,用以对请求参数进行解析以获取待测接口;
处理模块3,与第一解析模块2连接,用以于待测接口中获取与请求参数对应的一测试数据,并且根据请求参数调用对应的参数集合中的模拟数据;
判断模块4,与处理模块3连接,用以判断测试数据与被调用的模拟数据是否相同;
若是,则表示当前的待测试接口测试通过;
若否,则表示当前的待测试接口测试不通过。
针对现有的对第三方系统的接口进行测试时,需要根据系统提供对应的测试单元存在的测试不便,不易操作的问题;
本发明中,可对多个第三方系统的接口执行测试,当需要对第三方系统中的某一接口执行测试时,具体是通过对获取的待测试接口的请求参数进行解析,以获取待测试接口并根据请求参数于待测试接口中调用与请求参数对应的测试数据,以及参数集合中的对应请求参数的模拟数据,判断测试数据与一模拟数据是否相同;
若是,则表示当前的待测试接口测试通过;
若否,则表示当前的待测试接口测试不通过。
上述对接口的测试,并不依赖第三系统提供的测试单元,可对不同的待测试系统提供的待测试接口分别进行测试,不仅测试方便而且还提高了测试效率。
在一种较优的实施方式中,还包括:
第二解析模块5,用以对外部获取的待测系统中的一打包程序进行解析,以获取打包程序中的所有接口数据并保存;
配置模块6,与第二解析模块5连接,于所有的接口数据中选择一需要测试的接口数据,并将选择的接口数据定义的接口确认为待测试接口;
对待测试接口配置至少一个请求参数,以及分别配置与每个请求参数一一对应的模拟数据,以形成参数集合并保存。
在一种较优的实施方式中,
还包括一数据库7,与获取模块1以及配置模块6连接,用以保存待测试接口,以及每个待测试系统的参数集合;
获取模块1用以于所数据库7中获取对应待测试接口的参数集合。
上述技术方案中,解析打包程序获取interface类型的class文件,然后列出接口名称以及请求参数,如:
接口名称为,com.hpay.userservice.query(stringid,stringname);
通过配置模对请求参数进行配置如下所示:
配置请求参数,设置请求参数中的编号id=1000,对应返回的模拟数据为,success;
配置请求参数,设置请求参数中的编号id=1111,对应返回的模拟数据为,failed;
若当前配置请求id=1000,返回的测试数据不是success,则表示当前的测试接口没有通过。
在一种较优的实施方式中,打包程序为jar包。
在一种较优的实施方式中,还包括一数据库7,与获取模块1以及配置模块6连接,用以保存待测试接口,以及每个待测试系统的参数集合;
在一种较优的实施方式中,还包括:
读取模块8,与数据库7连接,用以于数据库7中读取待测试接口;
加载模块9,与读取模块8连接,用以加载待测试接口;
注册模块10,与加载模块9连接,用以将加载的待测试接口注册到注册模块10包括的一存储模块中。
上述技术方案中,具体的注册测试接口的方法为,读取待测接口,创建一个代理类的实例(instance),并声明为spring的bean,将所有测试接口类信息(class信息)加载到jvm环境中,声明接口为dubbo类型的服务,并且将所有dubbo接口的服务实现逻辑,都指向上面声明的接口代理类;将dubbo服务都注册到系统配置好的zookeeper中初始化完成。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。