本发明涉及自动化测试,具体而言,涉及一种服务接口的自动化测试方法。
背景技术:
1、软件系统的服务接口(如dubbo)定义了软件系统与外部系统或者其他模块之间的通信协议和数据交互方式,能够使得不同系统或者模块之间进行有效的通信和数据共享。随着软件系统的复杂性不断提升,对服务接口进行高效、准确的测试十分必要。然而,目前,现有技术通常采用人工测试方法对服务接口进行测试,或者,现有的服务接口的自动化测试方法中,将测试数据维护在特定类(如@dataprovider类)中,使得测试数据与测试脚本耦合,导致需要编写大量的重复代码,也即,现有的服务接口的测试方法其可复用性与可维护性差、重复劳动导致测试成本高、测试效率低。
2、由上分析可知,针对上述现有技术提供的服务接口的测试方法将测试数据与测试脚本耦合导致测试方法的可复用性差、测试成本高、测试效率低的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本发明实施例提供了一种服务接口的自动化测试方法,以至少解决现有技术提供的服务接口的测试方法将测试数据与测试脚本耦合导致测试方法的可复用性差、测试成本高、测试效率低的技术问题。
2、根据本发明实施例的一个方面,提供了一种服务接口的自动化测试方法,包括:
3、利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定;利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果。
4、可选地,服务接口的自动化测试方法还包括:利用服务接口测试类调用预处理方法,对服务接口的测试环境进行预处理。
5、可选地,服务接口的自动化测试方法还包括:确定目标测试方法是否包含目标注解;响应于目标测试方法未包含目标注解,利用服务接口测试类为目标测试方法构建目标注解,得到更新后的目标测试方法。
6、可选地,利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果,包括:利用预设反射方式获取目标注解的第一属性和第二属性;基于第一属性,确定目标数据文件的测试用例;基于第二属性,确定待测数据对象;将测试用例和待测数据对象传递至目标测试方法,以执行目标测试方法,得到测试结果。
7、可选地,基于第一属性,确定目标数据文件的测试用例,包括:利用第一属性获取目标数据文件的路径;根据路径,读取目标数据文件;对目标数据文件进行解析,得到测试用例。
8、可选地,基于第二属性,确定待测数据对象,包括:利用第二属性获取待测数据对象的目标类型;对目标类型进行解析,得到第一解析结果;对第一解析结果进行反序列化,得到待测数据对象。
9、可选地,执行目标测试方法,得到测试结果,包括:在目标测试方法执行过程中,获取服务接口的返回值;对返回值进行解析,得到待测数据对象的测试值;对待测数据对象的测试值与预期数据对象的字段值进行断言,得到测试结果。
10、可选地,服务接口的自动化测试方法还包括:响应于目标数据文件的路径为空,确定目标数据文件存在异常,生成目标数据文件的异常反馈信息。
11、可选地,服务接口的自动化测试方法还包括:利用服务接口测试类调用目标监听器的监听接口,监听目标测试方法的执行过程;记录执行过程;响应于通过执行过程确定目标测试方法执行异常,利用预设异常解决办法对目标测试方法进行处理。
12、根据本发明实施例的另一方面,还提供了一种服务接口的自动化测试装置,包括:
13、构建模块,用于利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定;测试模块,用于利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果。
14、可选地,服务接口的自动化测试装置还包括:预处理模块,用于利用服务接口测试类调用预处理方法,对服务接口的测试环境进行预处理。
15、可选地,服务接口的自动化测试还包括:更新模块,用于确定目标测试方法是否包含目标注解;响应于目标测试方法未包含目标注解,利用服务接口测试类为目标测试方法构建目标注解,得到更新后的目标测试方法。
16、可选地,上述测试模块还用于:利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果,包括:利用预设反射方式获取目标注解的第一属性和第二属性;基于第一属性,确定目标数据文件的测试用例;基于第二属性,确定待测数据对象;将测试用例和待测数据对象传递至目标测试方法,以执行目标测试方法,得到测试结果。
17、可选地,上述测试模块还用于:利用第一属性获取目标数据文件的路径;根据路径,读取目标数据文件;对目标数据文件进行解析,得到测试用例。
18、可选地,上述测试模块还用于:利用第二属性获取待测数据对象的目标类型;对目标类型进行解析,得到第一解析结果;对第一解析结果进行反序列化,得到待测数据对象。
19、可选地,上述测试模块还用于:在目标测试方法执行过程中,获取服务接口的返回值;对返回值进行解析,得到待测数据对象的测试值;对待测数据对象的测试值与预期数据对象的字段值进行断言,得到测试结果。
20、可选地,服务接口的自动化测试装置还包括:生成模块,用于响应于目标数据文件的路径为空,确定目标数据文件存在异常,生成目标数据文件的异常反馈信息。
21、可选地,服务接口的自动化测试装置还包括:监听模块,用于利用服务接口测试类调用目标监听器的监听接口,监听目标测试方法的执行过程;记录执行过程;响应于通过执行过程确定目标测试方法执行异常,利用预设异常解决办法对目标测试方法进行处理。
22、根据本发明实施例的又一方面,还提供了一种存储介质,其特征在于,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行权利要求1至9中任意一项服务接口的自动化测试方法。
23、根据本发明实施例的又一方面,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行权利要求1至9中任意一项服务接口的自动化测试方法。
24、在本发明实施例中,先利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定,再利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果,通过为目标测试方法构建能够获取目标数据文件和待测数据对象的目标注解,达到了使测试方法与测试数据分离的目的,从而实现了提高目标测试方法的可复用性与测试效率、降低服务接口的测试成本的技术效果,进而解决了现有技术提供的服务接口的测试方法将测试数据与测试脚本耦合导致测试方法的可复用性差、测试成本高、测试效率低技术问题。