公开/公告号CN112948272A
专利类型发明专利
公开/公告日2021-06-11
原文格式PDF
申请/专利权人 西安京迅递供应链科技有限公司;
申请/专利号CN202110412744.4
发明设计人 杨攀;
申请日2021-04-16
分类号G06F11/36(20060101);
代理机构11438 北京律智知识产权代理有限公司;
代理人孙宝海;袁礼君
地址 710100 陕西省西安市国家民用航天产业基地东长安街666号航天城中心广场5号楼
入库时间 2023-06-19 11:22:42
技术领域
本发明涉及系统功能测试的技术领域,具体而言,涉及一种基于生产环境的数据测试系统功能方法、装置及相关设备。
背景技术
在系统开发完成之后,系统功能测试是必不可少的一个环节。系统内部的功能测试可以通过单测去完成,系统间的功能测试需要数据协调多方的人力去完成。例如,在对系统一功能测试时,需要调用多个接口来完成对该功能的测试。在这种情况下,需要协调各个接口的提供者来完成对该功能的测试,这样降低系统功能测试的效率。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施例的目的在于提供一种基于生产环境的数据测试系统功能方法、装置及相关设备,进而至少可以在一定程度上提升系统功能测试的效率,并且还可以通过拦截并保存生产环境的接口数据,为后续系统功能测试提供完整的、真实可靠的数据场景,使得测试结果的质量更高。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明实施例的第一方面,提供了一种基于生产环境的数据测试系统功能的方法,应用于系统的生产环境,生产环境中部署有第一接口拦截组件,该方法包括:从测试场景服务器中获取接口配置表,接口配置表中的接口为被拦截接口;当生产环境中的业务逻辑发生调用时,利用第一接口拦截组件检测当前调用接口是否为接口配置表中的接口;如果当前调用接口为接口配置表中的接口,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理;将处理结果和调用请求的id发送至测试场景服务器,以使得测试场景服务器根据调用请求的id将处理结果存储到数据库。
在本发明的一些实施例中,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理包括:利用第一接口拦截组件,对当前调用接口的调用返回结果以预设数据格式进行序列化处理,得到预设格式的字符串。
在本发明的一些实施例中,在将处理结果和调用请求的id发送至测试场景服务器之前,该方法还包括:利用第一接口拦截组件检测当前的线程中是否存在唯一的调用请求的id;如果存在唯一的调用请求的id,获取调用请求的id;或者如果不存在唯一的调用请求的id,则生成唯一的调用请求的id,并获取调用请求的id。
根据本发明实施例的第二方面,提供了一种基于生产环境的数据测试系统功能的方法,应用于系统的测试环境,测试环境中部署有第二接口拦截组件,该方法包括:从测试场景服务器中获取测试场景配置表,测试场景配置表中包含业务测试场景的id;将测试场景配置表中的业务测试场景的id配置到当前线程中;根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据,测试数据是通过第一接口拦截组件拦截生产环境中的数据进行序列化后的字符串,第一接口拦截组件与第二接口拦截组件不同,第一接口拦截组件部署在系统的生产环境中;利用第二接口拦截组件,对测试数据进行处理,并将处理结果作为返回值;在测试环境中,基于返回值测试系统的功能。
在本发明的一些实施例中,在根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据之前,该方法还包括:优先利用第二接口拦截组件,根据当前线程中业务测试场景的id,从本地数据库中查询与业务测试场景的id对应的测试数据。
在本发明的一些实施例中,根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据包括:通过测试环境的内部接口,向测试场景服务器发送当前线程中业务测试场景的id,以使得测试场景服务器基于业务测试场景的id,从数据库中匹配与业务测试场景的id相对应的调用请求的id,并根据匹配到的调用请求的id,获取与业务测试场景的id对应的测试数据测,向测试环境中返回测试数据;以及通过测试环境的内部接口,接收测试数据。
在本发明的一些实施例中,利用第二接口拦截组件,对测试数据进行处理,并将处理结果作为返回值包括:利用第二接口拦截组件,根据测试数据的数据类型,对测试数据进行反序列化处理,得到测试数据中的对象,并将对象作为返回值。
根据本发明实施例的第三方面,提供了一种基于生产环境的数据测试系统功能的装置,应用于系统的生产环境,生产环境中部署有第一接口拦截组件,该装置包括:接口配置表获取模块,用于从测试场景服务器中获取接口配置表,接口配置表中的接口为被拦截接口;接口检测模块,当生产环境中的业务逻辑发生调用时,利用第一接口拦截组件检测当前调用接口是否为接口配置表中的接口;处理模块,如果当前调用接口为接口配置表中的接口,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理;发送模块,用于将处理结果和调用请求的id发送至测试场景服务器,以使得测试场景服务器根据调用请求的id将处理结果存储到数据库。
在本发明的一些实施例中,上述处理模块被配置为:利用第一接口拦截组件,对当前调用接口的调用返回结果以预设数据格式进行序列化处理,得到预设格式的字符串。
在本发明的一些实施例中,在将处理结果和调用请求的id发送至测试场景服务器之前,该装置还包括:线程检测模块,利用第一接口拦截组件检测当前的线程中是否存在唯一的调用请求的id;请求id获取模块,如果存在唯一的调用请求的id,获取调用请求的id;或者如果不存在唯一的调用请求的id,则生成唯一的调用请求的id,并获取调用请求的id。
根据本发明实施例的第四方面,提供了一种基于生产环境的数据测试系统功能的装置,应用于系统的测试环境,测试环境中部署有第二接口拦截组件,该装置包括:测试场景配置表获取模块,用于从测试场景服务器中获取测试场景配置表,测试场景配置表中包含业务测试场景的id;配置模块,用于将测试场景配置表中的业务测试场景的id配置到当前线程中;第一查询模块,用于根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据,测试数据是通过第一接口拦截组件拦截生产环境中的数据进行序列化后的字符串,第一接口拦截组件与第二接口拦截组件不同,第一接口拦截组件部署在系统的生产环境中;处理模块,利用第二接口拦截组件,对测试数据进行处理,并将处理结果作为返回值;测试模块,在测试环境中,基于返回值测试系统的功能。
在本发明的一些实施例中,在根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据之前,该装置还包括:第二查询模块,用于优先利用第二接口拦截组件,根据当前线程中业务测试场景的id,从本地数据库中查询与业务测试场景的id对应的测试数据。
在本发明的一些实施例中,第一查询模块被配置为:通过测试环境的内部接口,向测试场景服务器发送当前线程中业务测试场景的id,以使得测试场景服务器基于业务测试场景的id,从数据库中匹配与业务测试场景的id相对应的调用请求的id,并根据匹配到的调用请求的id,获取与业务测试场景的id对应的测试数据测,向测试环境中返回测试数据;以及通过测试环境的内部接口,接收测试数据。
在本发明的一些实施例中,处理模块被配置为:利用第二接口拦截组件,根据测试数据的数据类型,对测试数据进行反序列化处理,得到测试数据中的对象,并将对象作为返回值。
根据本发明实施例的第五方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的基于生产环境的数据测试系统功能的方法或第二方面所述的基于生产环境的数据测试系统功能的方法。
根据本发明实施例的第六方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的基于生产环境的数据测试系统功能的方法或第二方面所述的基于生产环境的数据测试系统功能的方法。
本发明实施例提供的技术方案可以包括以下有益效果:
在本发明的一些实施例所提供的技术方案中,从测试场景服务器中获取接口配置表,当生产环境中的业务逻辑发生调用时,利用第一接口拦截组件检测当前调用接口是否为接口配置表中的接口,如果当前调用接口为接口配置表中的接口,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理,根据调用请求的id将处理结果存储到测试场景服务器,这样在后续对系统功能进行测试时,无需协调多个外部接口来调用数据,只需通过测试环境的内部接口从测试场景服务器获取数据,提升系统功能测试的效率。而且通过拦截并保存生产环境的接口数据,可以为后续系统功能测试提供完整的、真实可靠的数据场景,使得测试结果的质量更高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本发明实施例的基于生产环境的数据测试系统功能的方法或基于生产环境的数据测试系统功能的装置的示例性系统架构的示意图;
图2示意性示出了根据本发明的实施例的应用于生产环境中基于该生产环境的数据测试系统功能的方法的流程图;
图3示意性示出了根据本发明的另一个实施例的应用于生产环境中基于该生产环境的数据测试系统功能的方法的流程图;
图4示意性示出了根据本发明的实施例的应用于测试环境中基于生产环境的数据测试系统功能的方法的流程图;
图5示意性示出了根据本发明的另一个实施例的应用于测试环境中基于生产环境的数据测试系统功能的方法的流程图;
图6示意性示出了根据本发明的实施例的应用于生产环境中基于该生产环境的数据测试系统功能的装置的方框图;
图7示意性示出了根据本发明的另一个实施例的应用于生产环境中基于该生产环境的数据测试系统功能的装置的方框图;
图8示意性示出了根据本发明的实施例的应用于测试环境中基于生产环境的数据测试系统功能的装置的方框图;
图9示意性示出了根据本发明的另一个实施例的应用于测试环境中基于生产环境的数据测试系统功能的装置的方框图;
图10示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本发明实施例的基于生产环境的数据测试系统功能的方法或基于生产环境的数据测试系统功能的装置的示例性系统架构的示意图。
如图1所示,系统架构可以包括生产环境服务器100、测试环境服务器200和测试场景服务器300。其中,生产环境服务器100部署有系统的生产环境,测试环境服务器200部署有系统的测试环境,测试场景服务器300中包含预先配置的测试场景配置表和接口配置表,测试场景服务器300还包含生产环境数据表,用于存储从生产环境拦截的生产环境数据。
在本发明人的一些实施例中,向生产环境服务器100和测试环境服务器200中配置接口拦截组件。例如,向生产环境服务器100的业务工程中配置第一接口拦截组件,用于拦截生产环境的数据。再例如,向测试环境服务器200的业务工程中配置第二接口拦截组件,用于解析上述拦截的生产环境数据。其中,第一接口拦截组件与第二接口拦截组件不同。
在本发明人的一些实施例中,当系统在生产环境服务器100中上线之后,可以从测试场景服务器300中获取接口配置表,该接口配置表中的接口为被拦截接口,当生产环境服务器100的业务逻辑发生调用时,利用第一接口拦截组件检测当前调用接口是否为接口配置表中的接口,如果当前调用接口为接口配置表中的接口,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理;将处理结果和调用请求的id发送至测试场景服务器300,以使得测试场景服务器300根据调用请求的id将处理结果存储到测试场景服务器300的生产环境数据表中,这样在后续对系统功能进行测试时,无需协调多个外部接口来调用数据,只需通过测试环境的内部接口从测试场景服务器300获取数据,提升系统功能测试的效率。而且通过拦截并保存生产环境的接口数据,可以为后续系统功能测试提供完整的、真实可靠的数据场景,使得测试结果的质量更高。
在本发明人的一些实施例中,如果当前调用接口为接口配置表中的接口,利用第一接口拦截组件拦截该当前调用接口的调用返回结果。例如,拦截的方式可以为基于本地工程类的切面拦截,还可以是基于微服务的接口拦截。具体地,接口拦截包括基于微服务RPC接口的过滤器(默认拦截所有的接口)实现或通过的AOP拦截器(默认拦截service包路径)。
在本发明人的一些实施例中,在系统开发完成之后,该系统可以在测试环境服务器200中完成功能的测试。例如,从测试场景服务器300中获取测试场景配置表,测试场景配置表中包含业务测试场景的id,将测试场景配置表中的业务测试场景的id配置到当前线程中,根据当前线程中业务测试场景的id,从测试场景服务器300中的数据库查询与业务测试场景的id对应的测试数据,以此方式调用测试数据无需协调多个接口的提供者,节省时间成本和人力成本,然后对测试数据进行处理,并将处理结果作为返回值,在测试环境服务器200中,基于返回值测试系统的功能,这样提升系统功能的测试效率。在本实施例中,上述测试数据是通过第一接口拦截组件拦截生产环境中的数据进行序列化后的字符串。
在本发明人的一些实施例中,当对测试环境服务器300中的系统功能进行测试时,可以优先利用第二接口拦截组件加载测试场景服务器300的本地测试数据来测试系统功能,该本地测试数据可以是预先自定义的。
在本发明人的一些实施例中,生产环境服务器100可以用于实现图2和图3描述的基于生产环境的数据测试系统功能的方法。测试环境服务器200可以用于实现图4和图5描述的基于生产环境的数据测试系统功能的方法。
图2示意性示出了根据本发明的实施例的应用于生产环境中基于该生产环境的数据测试系统功能的方法的流程图。
如图2所示,应用于生产环境中基于该生产环境的数据测试系统功能的方法可以包括步骤S210~步骤S240。
在步骤S210中,从测试场景服务器中获取接口配置表,接口配置表中的接口为被拦截接口。
在步骤S220中,当生产环境中的业务逻辑发生调用时,利用第一接口拦截组件检测当前调用接口是否为接口配置表中的接口。
在步骤S230中,如果当前调用接口为接口配置表中的接口,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理。
在步骤S240中,将处理结果和调用请求的id发送至测试场景服务器,以使得测试场景服务器根据调用请求的id将处理结果存储到数据库。
该方法可以从测试场景服务器中获取接口配置表,当生产环境中的业务逻辑发生调用时,利用第一接口拦截组件检测当前调用接口是否为接口配置表中的接口,如果当前调用接口为接口配置表中的接口,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理,根据调用请求的id将处理结果存储到测试场景服务器,这样在后续对系统功能进行测试时,无需协调多个外部接口来调用数据,只需通过测试环境的内部接口从测试场景服务器获取数据,提升系统功能测试的效率。而且通过拦截并保存生产环境的接口数据,可以为后续系统功能测试提供完整的、真实可靠的数据场景,使得测试结果的质量更高。
在本发明的一些实施例中,上述接口配置表可以根据实际业务测试需求预先配置。该接口配置表中用于存储被拦截接口,例如,被拦截接口可以为生产环境的调用接口。在本实施例中,可以将配置好的接口配置表下发到第一接口拦截组件的工程中。接口的配置格式为:[类全名.接口/方法名…]。
在本发明的一些实施例中,当生产环境中的业务逻辑发生调用时,利用第一接口拦截组件检测当前调用接口是否为接口配置表中的接口。例如,当生产环境中的业务逻辑发生调用时,利用第一接口拦截组件,基于当前调用接口的标识从接口配置表中匹配与其相同的接口标识,如果匹配成功,通过第一接口拦截组件拦截当前调用接口的调用返回结果。
在本发明的一些实施例中,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理包括:利用第一接口拦截组件,对当前调用接口的调用返回结果以预设数据格式进行序列化处理,得到预设格式的字符串。例如,利用第一接口拦截组件,对当前调用接口的返回对象以json格式进行序列化处理,得到json格式的字符串。在本实例中,预设数据格式可以根据实际情况设置。
在本发明的一些实施例中,将处理结果和调用请求的id发送至测试场景服务器,以使得测试场景服务器根据调用请求的id将处理结果存储到数据库。例如,处理结果为上述json格式的字符串,将json格式的字符串和调用请求的id打印到日志中,通过日志收集器,将包含有json格式的字符串和调用请求的id的日志发送到测试场景服务器,当测试场景服务器接收到该日志时,对其进行解析,得到json格式的字符串和调用请求的id。测试场景服务器根据调用请求的id作为业务主键,将json格式的字符串存储到mysql数据库中,这样便于后续在测试系统功能时查询和使用该mysql数据库的数据。
图3示意性示出了根据本发明的另一个实施例的应用于生产环境中基于该生产环境的数据测试系统功能的方法的流程图。
如图3所示,在步骤S240之前,该方法还包括步骤S310和步骤S320。
在步骤S310中,利用第一接口拦截组件检测当前的线程中是否存在唯一的调用请求的id。
在步骤S320中,如果存在唯一的调用请求的id,获取调用请求的id;或者如果不存在唯一的调用请求的id,则生成唯一的调用请求的id,并获取调用请求的id合。
该方法可以利用第一接口拦截组件检测当前的线程中是否存在唯一的调用请求的id,如果存在唯一的调用请求的id,获取调用请求的id;或者如果不存在唯一的调用请求的id,则生成唯一的调用请求的id,并获取调用请求的id合,这样便于后续在测试系统功能时可以根据与唯一的调用请求的id相同的测试场景id从上述mysql数据库中获取测试数据,保证了数据的准确性。
在本发明的一个实施例中,按照正常的单元测试或者整体测试功能即可测试系统的功能,如果需要不同的场景做覆盖条件测试或者回归测试,可以按照需求重新设定全局的业务测试场景id。
在本发明的一个实施例中,通过拦截生产环境指定的接口,根据调用请求唯一id可以形成数据集合。然后,将完整的数据集合作为测试的场景用于开发环境的接口模拟和回归测试。这样可以达到提升测试质量和效率的目的。
图4示意性示出了根据本发明的实施例的应用于测试环境中基于生产环境的数据测试系统功能的方法的流程图。
如图4所示,应用于测试环境中基于生产环境的数据测试系统功能的方法包括步骤S410~步骤S450。
在步骤S410中,从测试场景服务器中获取测试场景配置表,测试场景配置表中包含业务测试场景的id。
在步骤S420中,将测试场景配置表中的业务测试场景的id配置到当前线程中。
在步骤S430中,根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据。
在步骤S440中,利用第二接口拦截组件,对测试数据进行处理,并将处理结果作为返回值。
在步骤S450中,在测试环境中,基于返回值测试系统的功能。
该方法可以从测试场景服务器中获取测试场景配置表,将测试场景配置表中的业务测试场景的id配置到当前线程中,根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据,以此方式调用测试数据无需协调多个接口的提供者,节省时间成本和人力成本,然后对测试数据进行处理,并将处理结果作为返回值,在测试环境中,基于返回值测试系统的功能,这样提升系统功能的测试效率。
在本发明的一个实施例中,上述测试场景配置表可以根据实际的业务请求进行设定。例如,将测试场景配置表中的测试场景id与调用业务数据的调用请求id设置为相同的id,这样可以基于测试场景id从测试场景服务器的mysql数据库中匹配到与其相同的调用请求id,从而根据调用请求id从mysql数据库中获取测试数据。
在本发明的一个实施例中,将测试场景配置表中的业务测试场景的id配置到当前线程中。例如,在测试环境对系统功能进行测试时,将预设配置的测试场景id配置到系统运行时的环境中,即将测试场景id配置到当前线程中,用于声明测试场景。
在本发明的一个实施例中,根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据。例如,在测试环境中,当调用外部接口或者内部接口时,第二接口拦截组件会可以先查询是否有本地匹配的数据文件,然后根据当前线程中业务测试场景的id,从测试场景服务器中查询数据。如果查询到数据,则根据接口的返回类型,对测试数据进行反序列化,生成的对象作为返回值,而不会进行正常的接口/方法调用。
在本发明的一个实施例中,上述测试数据是通过第一接口拦截组件拦截生产环境中的数据进行序列化后的字符串,第一接口拦截组件与第二接口拦截组件不同,第一接口拦截组件部署在系统的生产环境中。
在本发明的一些实施例中,在根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据之前,该方法还包括:优先利用第二接口拦截组件,根据当前线程中业务测试场景的id,从本地数据库中查询与业务测试场景的id对应的测试数据。例如,当调用外部接口或者内部接口时,第二接口拦截组件可以优先根据当前线程中业务测试场景的id查询是否有本地匹配的数据文件。如果匹配成功,基于本地测试数据测试系统功能,这样进一步加快测试效率。在本实施例中,本地测试数据可以根据实际测试的需求进行编写,然后将编写的测试数据存储到本地默认的存储路径。例如,将编写的json文件,根据默认classpath路径存储到本地磁盘。本地测试数据用于补充或者替换测试场景服务器中的数据。本地配置的测试数据文件命名格式是[类全名.接口/方法]。
在本发明的一些实施例中,利用第二接口拦截组件,对测试数据进行处理,并将处理结果作为返回值包括:利用第二接口拦截组件,根据测试数据的数据类型,对测试数据进行反序列化处理,得到测试数据中的对象,并将对象作为返回值。
图5示意性示出了根据本发明的另一个实施例的应用于测试环境中基于生产环境的数据测试系统功能的方法的流程图。
如图5所示,上述步骤S430具体可以包括步骤S510和步骤S520。
在步骤S510中,通过测试环境的内部接口,向测试场景服务器发送当前线程中业务测试场景的id,以使得测试场景服务器基于业务测试场景的id,从数据库中匹配与业务测试场景的id相对应的调用请求的id,并根据匹配到的调用请求的id,获取与业务测试场景的id对应的测试数据测,向测试环境中返回测试数据。
在步骤S520中,通过测试环境的内部接口,接收测试数据。
该方法可以通过测试环境的内部接口调用测试系统功能的测试数据,而无需依赖外部接口,开发人员也不需要协调多个接口的提供者。简化了测试过程,进而提升了测试效率。
在本发明的一些实施例中,在测试系统功能时,优先利用第二接口拦截组件加载本地预先配置的测试数据,如果在本地没有匹配到测试数据,则基于测试环境内部的接口,根据向测试场景服务器发送当前线程中业务测试场景的id,以使得测试场景服务器基于业务测试场景的id,从数据库中匹配与业务测试场景的id相对应的调用请求的id(例如,业务测试场景的id与调用请求的id相同),并根据匹配到的调用请求的id,获取与业务测试场景的id对应的测试数据测,向测试环境中返回测试数据,以此方式可以模拟不同接口的调用结果,不再强依赖外部系统和环境。
图6示意性示出了根据本发明的实施例的应用于生产环境中基于该生产环境的数据测试系统功能的装置的方框图。
如图6所示,应用于生产环境中基于该生产环境的数据测试系统功能的装置600包括接口配置表获取模块610、接口检测模块620、处理模块630和发送模块640。
具体地,接口配置表获取模块610,用于从测试场景服务器中获取接口配置表,接口配置表中的接口为被拦截接口。
接口检测模块620,当生产环境中的业务逻辑发生调用时,利用第一接口拦截组件检测当前调用接口是否为接口配置表中的接口。
处理模块630,如果当前调用接口为接口配置表中的接口,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理。
发送模块640,用于将处理结果和调用请求的id发送至测试场景服务器,以使得测试场景服务器根据调用请求的id将处理结果存储到数据库。
该应用于生产环境中基于该生产环境的数据测试系统功能的装置600可以从测试场景服务器中获取接口配置表,当生产环境中的业务逻辑发生调用时,利用第一接口拦截组件检测当前调用接口是否为接口配置表中的接口,如果当前调用接口为接口配置表中的接口,利用第一接口拦截组件对当前调用接口的调用返回结果进行处理,根据调用请求的id将处理结果存储到测试场景服务器,这样在后续对系统功能进行测试时,无需协调多个外部接口来调用数据,只需通过测试环境的内部接口从测试场景服务器获取数据,提升系统功能测试的效率。而且通过拦截并保存生产环境的接口数据,可以为后续系统功能测试提供完整的、真实可靠的数据场景,使得测试结果的质量更高。
据本发明的实施例,该应用于生产环境中基于该生产环境的数据测试系统功能的装置600可以用于实现图2实施例描述的应用于生产环境中基于该生产环境的数据测试系统功能的方法。
在本发明的一个实施例中,上述处理模块630被配置为:利用第一接口拦截组件,对当前调用接口的调用返回结果以预设数据格式进行序列化处理,得到预设格式的字符串。
图7示意性示出了根据本发明的另一个实施例的应用于生产环境中基于该生产环境的数据测试系统功能的装置的方框图。
如图7所示,应用于生产环境中基于该生产环境的数据测试系统功能的装置600还可以包括线程检测模块650和请求id获取模块660。
具体地,线程检测模块650,利用第一接口拦截组件检测当前的线程中是否存在唯一的调用请求的id。
请求id获取模块660,如果存在唯一的调用请求的id,获取调用请求的id;或者如果不存在唯一的调用请求的id,则生成唯一的调用请求的id,并获取调用请求的id。
该应用于生产环境中基于该生产环境的数据测试系统功能的装置600可以利用第一接口拦截组件检测当前的线程中是否存在唯一的调用请求的id,如果存在唯一的调用请求的id,获取调用请求的id;或者如果不存在唯一的调用请求的id,则生成唯一的调用请求的id,并获取调用请求的id合,这样便于后续在测试系统功能时可以根据与唯一的调用请求的id相同的测试场景id从上述mysql数据库中获取测试数据,保证了数据的准确性。
根据本发明的实施例,该应用于生产环境中基于该生产环境的数据测试系统功能的装置600可以用于实现图3实施例描述的应用于生产环境中基于该生产环境的数据测试系统功能的方法。
由于本发明的示例实施例的应用于生产环境中基于该生产环境的数据测试系统功能的装置600的各个模块可以用于实现上述2~图3描述的应用于生产环境中基于该生产环境的数据测试系统功能的方法的示例实施例的步骤,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的应用于生产环境中基于该生产环境的数据测试系统功能的方法的实施例。
可以理解的是,接口配置表获取模块610、接口检测模块620、处理模块630、发送模块640、线程检测模块650、以及请求id获取模块660可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,接口配置表获取模块610、接口检测模块620、处理模块630、发送模块640、线程检测模块650、以及请求id获取模块660中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,接口配置表获取模块610、接口检测模块620、处理模块630、发送模块640、线程检测模块650、以及请求id获取模块660中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图8示意性示出了根据本发明的实施例的应用于测试环境中基于生产环境的数据测试系统功能的装置的方框图。
如图8所示,应用于测试环境中基于生产环境的数据测试系统功能的装置800可以包括测试场景配置表获取模块810、配置模块820、第一查询模块830、处理模块840和测试模块850。
具体地,测试场景配置表获取模块810,用于从测试场景服务器中获取测试场景配置表,测试场景配置表中包含业务测试场景的id。
配置模块820,用于将测试场景配置表中的业务测试场景的id配置到当前线程中。
第一查询模块830,用于根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据,测试数据是通过第一接口拦截组件拦截生产环境中的数据进行序列化后的字符串,第一接口拦截组件与第二接口拦截组件不同,第一接口拦截组件部署在系统的生产环境中。
处理模块840,利用第二接口拦截组件,对测试数据进行处理,并将处理结果作为返回值。
测试模块850,在测试环境中,基于返回值测试系统的功能。
该应用于测试环境中基于生产环境的数据测试系统功能的装置800可以从测试场景服务器中获取测试场景配置表,将测试场景配置表中的业务测试场景的id配置到当前线程中,根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据,以此方式调用测试数据无需协调多个接口的提供者,节省时间成本和人力成本,然后对测试数据进行处理,并将处理结果作为返回值,在测试环境中,基于返回值测试系统的功能,这样提升系统功能的测试效率。
根据本发明的实施例,该应用于测试环境中基于生产环境的数据测试系统功能的装置800可以用于实现图4实施例描述的应用于测试环境中基于生产环境的数据测试系统功能的方法。
在本发明的一些实施例中,第一查询模块830被配置为:通过测试环境的内部接口,向测试场景服务器发送当前线程中业务测试场景的id,以使得测试场景服务器基于业务测试场景的id,从数据库中匹配与业务测试场景的id相对应的调用请求的id,并根据匹配到的调用请求的id,获取与业务测试场景的id对应的测试数据测,向测试环境中返回测试数据;以及通过测试环境的内部接口,接收测试数据。
在本发明的一些实施例中,处理模块840被配置为:利用第二接口拦截组件,根据测试数据的数据类型,对测试数据进行反序列化处理,得到测试数据中的对象,并将对象作为返回值。
图9示意性示出了根据本发明的另一个实施例的应用于测试环境中基于生产环境的数据测试系统功能的装置的方框图。
如图9所示,应用于测试环境中基于生产环境的数据测试系统功能的装置800还可以包括第二查询模块860。
具体地,第二查询模块860,用于优先利用第二接口拦截组件,根据当前线程中业务测试场景的id,从本地数据库中查询与业务测试场景的id对应的测试数据。
该应用于测试环境中基于生产环境的数据测试系统功能的装置800可以优先根据当前线程中业务测试场景的id查询是否有本地匹配的数据文件。如果匹配成功,基于本地测试数据测试系统功能,这样进一步加快测试效率。
由于本发明的示例实施例的应用于测试环境中基于生产环境的数据测试系统功能的装置800的各个模块可以用于实现上述4~图5描述的应用于测试环境中基于生产环境的数据测试系统功能的方法的示例实施例的步骤,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的应用于测试环境中基于生产环境的数据测试系统功能的方法的实施例。
可以理解的是,测试场景配置表获取模块810、配置模块820、第一查询模块830、处理模块840、测试模块850、以及第二查询模块860可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,测试场景配置表获取模块810、配置模块820、第一查询模块830、处理模块840、测试模块850、以及第二查询模块860中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,测试场景配置表获取模块810、配置模块820、第一查询模块830、处理模块840、测试模块850、以及第二查询模块860中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
下面参考图10,其示出了适于用来实现本发明实施例的电子设备的计算机系统1000的结构示意图。图10示出的电子设备的计算机系统1000仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有系统操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的应用于生产环境中基于该生产环境的数据测试系统功能的方法或应用于测试环境中基于生产环境的数据测试系统功能的方法。
例如,所述的电子设备可以实现如图4中所示的:在步骤S410中,从测试场景服务器中获取测试场景配置表,测试场景配置表中包含业务测试场景的id。在步骤S420中,将测试场景配置表中的业务测试场景的id配置到当前线程中。在步骤S430中,根据当前线程中业务测试场景的id,从测试场景服务器中的数据库查询与业务测试场景的id对应的测试数据。在步骤S440中,利用第二接口拦截组件,对测试数据进行处理,并将处理结果作为返回值。在步骤S450中,在测试环境中,基于返回值测试系统的功能。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
机译: 健康数据测试和监视系统,包括一个用户界面,包括一个屏幕和一个输入设备,以及一个自主属性,为用户提供访问健康数据信息的选项;提供这些系统的相关方法。
机译: 用于基于主图像数据测试打印图像的图像测试装置,图像测试系统和图像测试方法
机译: 能够暴露于副产物碳质材料生产环境的设备和相关方法