专利名称:一种报文测试的方法及装置
专利类型:实用新型专利
专利申请号:CN202011061448.6
专利申请(专利权)人:腾讯科技(深圳)有限公司
权利人地址:广东省深圳市南山区高新区科技中一路腾讯大厦35层
专利发明(设计)人:苏士杰,王鹏程,郭计伟,陈超,李鑫
专利摘要:本申请的实施例提供了一种报文测试的方法及装置。该报文测试的方法包括:通过预先在无噪的运行环境中,基于代码测试版本和请求报文生成第二应答报文,同时基于有噪的运行环境中基于代码测试版本和请求报文生成第三应答报文。在对代码开发版本进行测试时,先将请求报文输入第一运行环境下的代码开发版本中生成第一运行环境,再基于第一应答报文和第二应答报文之间的差异字段确定待定字段,通过对比待定字段和噪声字段,将待定字段中的噪声字段去除,最后得到代码开发版本对应的异常字段。避免了对较多的待定字段的处理,能基于预先生成的噪声字段降低运行环境对代码测试的影响,得到冗余度较低的异常字段,减少了数据处理量,提高了测试效率。
主权利要求:
1.一种报文测试的方法,其特征在于,包括:
将请求报文输入第一运行环境下的代码开发版本中,生成第一应答报文,其中,所述第一运行环境表示含有噪声的运行环境;
获取在视为无噪的第二运行环境中基于代码测试版本和所述请求报文生成的第二应答报文;
基于所述第一应答报文与所述第二应答报文之间的差异字段,确定待定字段;
获取通过所述第二应答报文与第三应答报文之间的差异字段生成的噪声字段,所述第三应答报文为在所述第一运行环境中基于所述代码测试版本和所述请求报文生成;
去除所述待定字段中存在的噪声字段,得到所述代码开发版本生成的异常字段。
2.根据权利要求1所述的方法,其特征在于,获取在视为无噪的第二运行环境中基于代码测试版本和所述请求报文生成的第二应答报文之前,所述方法还包括:将所述请求报文输入所述第二运行环境下的所述代码测试版本中,输出所述请求报文在第二运行环境下对应的无噪的所述第二应答报文。
3.根据权利要求1所述的方法,其特征在于,获取通过所述第二应答报文与第三应答报文之间的差异字段生成的噪声字段之前,所述方法还包括:将所述请求报文输入所述第一运行环境下的所述代码测试版本中,输出所述请求报文在所述第一运行环境下对应的第三应答报文;
基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段。
4.根据权利要求3所述的方法,其特征在于,基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段,包括:基于所述第二应答报文中的字段名和字段值、以及所述第三应答报文中的字段名和字段值,将字段值不同时对应的字段名识别为所述差异字段;
将所述差异字段添加至所述噪声字段中。
5.根据权利要求3所述的方法,其特征在于,基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段,包括:若在所述第三应答报文中,存在所述第二应答报文中不包含的字段,则将所述字段作为所述差异字段;
将所述差异字段添加至所述噪声字段中。
6.根据权利要求3所述的方法,其特征在于,在基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段之后,所述方法还包括:获取所述噪声字段对应的目标字段名;
对所述目标字段名进行标记。
7.根据权利要求3所述的方法,其特征在于,基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段之后,所述方法还包括如下至少一个步骤:基于获取到的字段删除指令中的选定字段名,从原有的所述噪声字段中删除所述选定字段名对应的噪声字段;
基于获取到的字段增加指令中的新增字段名,将所述新增字段名添加至所述噪声字段中。
8.根据权利要求1所述的方法,其特征在于,所述噪声字段包括以下字段中的至少一个:时间字段、地址字段或者账户标识字段。
9.根据权利要求1所述的方法,其特征在于,去除所述待定字段中存在的噪声字段,得到所述代码开发版本生成的异常字段之后,还包括:基于所述异常字段进行异常分析,确定发生异常的原因。
10.一种报文测试的装置,其特征在于,包括:
输入单元,用于将请求报文输入第一运行环境下的代码开发版本中,生成第一应答报文,其中,所述第一运行环境表示含有噪声的运行环境;
第一获取单元,用于获取在视为无噪的第二运行环境中基于代码测试版本和所述请求报文生成的第二应答报文;
待定单元,用于基于所述第一应答报文与所述第二应答报文之间的差异字段,确定待定字段;
第二获取单元,用于获取通过所述第二应答报文与第三应答报文之间的差异字段生成的噪声字段,所述第三应答报文为在所述第一运行环境中基于所述代码测试版本和所述请求报文生成;
去除单元,用于去除所述待定字段中存在的噪声字段,得到所述代码开发版本生成的异常字段。 说明书 : 一种报文测试的方法及装置技术领域[0001] 本申请涉及计算机及通信技术领域,具体而言,涉及一种报文测试的方法及装置。背景技术[0002] 在很多测试场景中,一般都是基于测试结果测评代码或者运行系统的状态。在实际应用中,由于代码的版本不同、测试的环境不同,因此,容易生成很多不同的测试结果,这些结果往往需要很多人力劳动去排查,以找到真正的异常数据。尤其是在输入数据或者输出数据量较大、数据类型较多的情况下,这种方式将需要较大的时间和成本,导致测试效率较低的问题。发明内容[0003] 本申请的实施例提供了一种报文测试的方法及装置,进而至少在一定程度上可以基于预先生成的噪声字段降低运行环境对代码测试的影响,得到冗余度较低的异常字段,减少了数据处理量,提高了测试效率。[0004] 本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。[0005] 根据本申请实施例的一个方面,提供了一种报文测试的方法,包括:将请求报文输入第一运行环境下的代码开发版本中,生成第一应答报文,其中,所述第一运行环境表示含有噪声的运行环境;获取在视为无噪的第二运行环境中基于代码测试版本和所述请求报文生成的第二应答报文;基于所述第一应答报文与所述第二应答报文之间的差异字段,确定待定字段;获取通过所述第二应答报文与第三应答报文之间的差异字段生成的噪声字段,所述第三应答报文为在所述第一运行环境中基于所述代码测试版本和所述请求报文生成;去除所述待定字段中存在的噪声字段,得到所述代码开发版本生成的异常字段。[0006] 在本申请的一些实施例中,基于前述方案,所述获取在视为无噪的第二运行环境中基于代码测试版本和所述请求报文生成的第二应答报文之前,所述方法还包括:将所述请求报文输入所述第二运行环境下的所述代码测试版本中,输出所述请求报文在第二运行环境下对应的无噪的所述第二应答报文。[0007] 在本申请的一些实施例中,基于前述方案,所述获取通过所述第二应答报文与第三应答报文之间的差异字段生成的噪声字段之前,所述方法还包括:将所述请求报文输入所述第一运行环境下的所述代码测试版本中,输出所述请求报文在所述第一运行环境下对应的第三应答报文;基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段。[0008] 在本申请的一些实施例中,基于前述方案,所述基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段,包括:基于所述第二应答报文中的字段名和字段值、以及所述第三应答报文中的字段名和字段值,将字段值不同时对应的字段名识别为所述差异字段;将所述差异字段添加至所述噪声字段中。[0009] 在本申请的一些实施例中,基于前述方案,所述基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段,包括:若在所述第三应答报文中,存在所述第二应答报文中不包含的字段,则将所述字段作为所述差异字段;将所述差异字段添加至所述噪声字段中。[0010] 在本申请的一些实施例中,基于前述方案,所述在基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段之后,所述方法还包括:获取所述噪声字段对应的目标字段名;对所述目标字段名进行标记。[0011] 在本申请的一些实施例中,基于前述方案,所述基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段之后,所述方法还包括如下至少一个步骤:基于获取到的字段删除指令中的选定字段名,从原有的所述噪声字段中删除所述选定字段名对应的噪声字段;基于获取到的字段增加指令中的新增字段名,将所述新增字段名添加至所述噪声字段中。[0012] 在本申请的一些实施例中,基于前述方案,所述噪声字段包括以下字段中的至少一个:时间字段、地址字段或者账户标识字段。[0013] 在本申请的一些实施例中,基于前述方案,所述基于预先生成的噪声字段,去除所述待定字段中存在的噪声字段,得到异常字段之后,还包括:基于所述异常字段进行异常分析,确定发生异常的原因。[0014] 根据本申请实施例的一个方面,提供了一种报文测试的装置,包括:输入单元,用于将请求报文输入第一运行环境下的代码开发版本中,成第一应答报文,其中,所述第一运行环境表示含有噪声的运行环境;第一获取单元,用于获取在视为无噪的第二运行环境中基于代码测试版本和所述请求报文生成的第二应答报文;待定单元,用于基于所述第一应答报文与所述第二应答报文之间的差异字段,确定待定字段;第二获取单元,用于获取通过所述第二应答报文与第三应答报文之间的差异字段生成的噪声字段,所述第三应答报文为在所述第一运行环境中基于所述代码测试版本和所述请求报文生成;去除单元,用于去除所述待定字段中存在的噪声字段,得到所述代码开发版本生成的异常字段。[0015] 在本申请的一些实施例中,基于前述方案,所述报文测试的装置还包括:第一输出单元,用于将所述请求报文输入所述第二运行环境下的所述代码测试版本中,输出所述请求报文在第二运行环境下对应的无噪的所述第二应答报文。[0016] 在本申请的一些实施例中,基于前述方案,所述报文测试的装置还包括:第二输出单元,用于将所述请求报文输入所述第一运行环境下的所述代码测试版本中,输出所述请求报文在所述第一运行环境下对应的第三应答报文;噪声确定单元,用于基于所述第二应答报文与所述第三应答报文之间的差异字段,确定所述噪声字段。[0017] 在本申请的一些实施例中,基于前述方案,所述噪声确定单元包括:第一差异识别单元,用于基于所述第二应答报文中的字段名和字段值、以及所述第三应答报文中的字段名和字段值,将字段值不同时对应的字段名识别为所述差异字段;第一字段添加单元,用于将所述差异字段添加至所述噪声字段中。[0018] 在本申请的一些实施例中,基于前述方案,所述噪声确定单元包括:第二差异识别单元,用于若在所述第三应答报文中,存在所述第二应答报文中不包含的字段,则将所述字段作为所述差异字段;第二字段添加单元,用于将所述差异字段添加至所述噪声字段中。[0019] 在本申请的一些实施例中,基于前述方案,所述报文测试的装置还包括:字段获取单元,用于获取所述噪声字段对应的目标字段名;字段标记单元,用于对所述目标字段名进行标记。[0020] 在本申请的一些实施例中,基于前述方案,所述报文测试的装置还用于执行如下至少一个步骤:基于获取到的字段删除指令中的选定字段名,从原有的所述噪声字段中删除所述选定字段名对应的噪声字段;基于获取到的字段增加指令中的新增字段名,将所述新增字段名添加至所述噪声字段中。[0021] 在本申请的一些实施例中,基于前述方案,所述噪声字段包括以下字段中的至少一个:时间字段、地址字段或者账户标识字段。[0022] 在本申请的一些实施例中,基于前述方案,所述报文测试的装置还包括:异常分析单元,用于基于所述异常字段进行异常分析,确定发生异常的原因。[0023] 根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的报文测试的方法。[0024] 根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的报文测试的方法。[0025] 根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的报文测试的方法。[0026] 在本申请的一些实施例所提供的技术方案中,通过预先在无噪的运行环境中,基于代码测试版本和请求报文生成第二应答报文,同时基于有噪的运行环境中,基于代码测试版本和请求报文生成第三应答报文,以分别得到在有噪和无噪环境下的测试数据。在对代码开发版本进行测试时,先将请求报文输入第一运行环境下的代码开发版本中生成第一运行环境,再基于第一应答报文和第二应答报文之间的差异字段,确定待定字段,通过对比待定字段和噪声字段,将待定字段中的噪声字段去除,最后得到代码开发版本对应的异常字段。避免了对较多的待定字段的处理,能基于预先生成的噪声字段降低运行环境对代码测试的影响,得到冗余度较低的异常字段,减少了数据处理量,提高了测试效率。[0027] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明[0028] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:[0029] 图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;[0030] 图2示意性示出了根据本申请的一个实施例的报文测试的方法的流程图;[0031] 图3示意性示出了根据本申请的一个实施例的在第一运行环境下生成应答报文的示意图;[0032] 图4示意性示出了根据本申请的一个实施例的在第二运行环境下生成应答报文的示意图;[0033] 图5示意性示出了根据本申请的一个实施例的确定待定字段的示意图;[0034] 图6示意性示出了根据本申请的一个实施例的确定噪声字段的流程图;[0035] 图7示意性示出了根据本申请的一个实施例的基于第一运行环境下生成应答报文的示意图;[0036] 图8示意性示出了根据本申请的一个实施例的生成噪声字段的示意图;[0037] 图9示意性示出了根据本申请的一个实施例的识别异常字段的示意图;[0038] 图10示意性示出了根据本申请的一个实施例的报文测试的装置的示意图;[0039] 图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。具体实施方式[0040] 现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。[0041] 此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。[0042] 附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。[0043] 附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。[0044] 图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。[0045] 如图1所示,系统架构可以包括终端设备(如图1中所示智能手机101、平板电脑102和便携式计算机103中的一种或多种,当然也可以是台式计算机等等)、网络104和服务器105。网络104用以在终端设备和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线通信链路、无线通信链路等等。[0046] 应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。[0047] 用户可以使用终端设备通过网络104与服务器105交互,以接收或发送消息等。服务器105可以是提供各种服务的服务器。例如用户利用终端设备103(也可以是终端设备101或102)向服务器105上传了请求报文,服务器105可以将请求报文输入第一运行环境下的代码开发版本中,生成第一应答报文,其中,第一运行环境表示含有噪声的运行环境;获取在视为无噪的第二运行环境中基于代码测试版本和请求报文生成的第二应答报文;基于第一应答报文与第二应答报文之间的差异字段,确定待定字段;获取通过第二应答报文与第三应答报文之间的差异字段生成的噪声字段,第三应答报文为在第一运行环境中基于代码测试版本和请求报文生成;去除待定字段中存在的噪声字段,得到代码开发版本生成的异常字段。[0048] 上述方案,通过预先在无噪的运行环境中,基于代码测试版本和请求报文生成第二应答报文,同时基于有噪的运行环境中,基于代码测试版本和请求报文生成第三应答报文,以分别得到在有噪和无噪环境下的测试数据。在对代码开发版本进行测试时,先将请求报文输入第一运行环境下的代码开发版本中生成第一运行环境,再基于第一应答报文和第二应答报文之间的差异字段,确定待定字段,通过对比待定字段和噪声字段,将待定字段中的噪声字段去除,最后得到代码开发版本对应的异常字段。避免了对较多的待定字段的处理,能基于预先生成的噪声字段降低运行环境对代码测试的影响,得到冗余度较低的异常字段,减少了数据处理量,提高了测试效率。[0049] 需要说明的是,本申请实施例所提供的报文测试的方法一般由服务器105执行,相应地,报文测试的装置一般设置于服务器105中。但是,在本申请的其它实施例中,终端设备也可以与服务器具有相似的功能,从而执行本申请实施例所提供的报文测试的方法。[0050] 以下对本申请实施例的技术方案的实现细节进行详细阐述:[0051] 图2示出了根据本申请的一个实施例的报文测试的方法的流程图,该报文测试的方法可以由服务器来执行,该服务器可以是图1中所示的服务器。参照图2所示,该报文测试的方法至少包括步骤S210至步骤S250,详细介绍如下:[0052] 在步骤S210中,将请求报文输入第一运行环境下的代码开发版本中,生成第一应答报文,其中,第一运行环境表示含有噪声的运行环境。[0053] 图3为本申请实施例提供的一种基于在第一运行环境下生成应答报文的示意图。[0054] 如图3所示,在本申请的一个实施例中,获取到请求报文320之后,通过测试工具310将请求报文320输入到第一运行环境中的代码开发版本330中,以生成第一应答报文340。[0055] 具体的,本实施例中的第一运行环境表示含有噪声的运行环境,而有噪声的运行环境中,噪声也会在代码开发版本中生成对应的噪声结果,噪声结果为冗余数据,而扰乱对代码开发版本的分析。本实施例中的噪声用于表示在接口服务测试之中返回的结果值,会随著测试环境和时间的不同而返回不同的值,如时间戳或调用IP值,但是字段的返回值并不影响测试结果的正确性。[0056] 本实施例中请求报文中包括运行代码开发版本的请求信息。第一应答报文包括在运行代码开发版本之后生成的运行数据,例如:RespX:VX;RespY:VY2;RespZ:VZ1,其中,应答报文中包括字段名和字段值,例如字段名为RespX、RespY以及RespZ,对应的字段值分别为VX、VY2以及VZ1。[0057] 在本申请的一个实施例中,在步骤S220中获取在视为无噪的第二运行环境中基于代码测试版本和请求报文生成的第二应答报文的过程之前,方法还包括:将请求报文输入第二运行环境下的代码测试版本中,输出请求报文在第二运行环境下对应的无噪的第二应答报文。[0058] 图4为本申请实施例提供的一种基于在第二运行环境下生成应答报文的示意图。[0059] 如图4所示,在本申请的一个实施例中,第二运行环境430与第一运行环境相对应,表示无噪的运行环境。本实施例中预先在无噪的第二运行环境中,基于用户请求410,通过代码测试版本430和请求报文420生成第二应答报文440。本实施例中生成的第二应答报文440为不携带噪声的应答报文。[0060] 示例性的,本实施例中第二应答报文440中的字段名和字段值可以包括:RespX:VX;RespY:VY;RespZ:VZ。[0061] 在步骤S220中,获取在视为无噪的第二运行环境中基于代码测试版本和请求报文生成的第二应答报文。[0062] 在本申请的一个实施例中,在生成第一应答报文之后,获取第二应答报文。如上所示,本实施例中的第二应答报文为在视为无噪的第二运行环境中基于代码测试版本和请求报文生成。[0063] 本实施例中可以将第二应答报文存储于测试工具、数据库中,以便于测试工具直接调用第二应答报文,以确定第一应答报文中的噪声字段。[0064] 在步骤S230中,基于第一应答报文与第二应答报文之间的差异字段,确定待定字段。[0065] 在本申请的一个实施例中,在生成第一应答报文并获取到第二应答报文之后,将第一应答报文与第二应答报文进行对比,确定两者之间的差异字段,作为待定字段。[0066] 图5为本申请实施例提供的一种确定待定字段的示意图。[0067] 如图5所示,本实施例中生成的第一应答报文510为:RespX:VX;RespY:VY2;RespZ:VZ1,获取到的第二应答报文520为:RespX:VX;RespY:VY;RespZ:VZ。将第一应答报文510与第二应答报文520进行对比,确定两者之间的差异字段RespY:VY2//VY以及RespZ:VZ1//VZ,本实施例中将RespY和RespZ作为待定字段。[0068] 上述方案中,本实施例通过将有噪环境下的代码开发版本生成的第一应答报文,与无噪环境下的代码测试版本生成的第二应答报文进行对比,确定不同的报文作为待定字段,即确定发生变化的运行结果,这些运行结果中可能存在正常的运行结果,也可能存在异常的运行结果,在之后的步骤中通过噪声识别,确定其中的噪声字段,进而,便可以确定其中的异常字段。[0069] 在本申请的一个实施例中,如图6所示,在步骤S240中获取通过第二应答报文与第三应答报文之间的差异字段生成的噪声字段的过程之前,方法还包括步骤S241~步骤S242:[0070] 在步骤S241中,将请求报文输入第一运行环境下的代码测试版本中,输出请求报文在第一运行环境下对应的第三应答报文。[0071] 图7为本申请实施例提供的一种基于第一运行环境下生成应答报文的示意图。[0072] 如图7所示,在本申请的一个实施例中,基于请求报文720,通过测试工具710在第一运行环境中730运行代码测试版本,生成对应的第三应答报文740。本实施例中生成的第三应答报文740可以包括:RespX:VX;RespY:VY2;RespZ:VZ。[0073] 在步骤S242中,基于第二应答报文与第三应答报文之间的差异字段,确定噪声字段。[0074] 在本申请的一个实施例中,在步骤S241中基于第二应答报文与第三应答报文之间的差异字段,确定噪声字段的过程,具体包括:基于第二应答报文中的字段名和字段值、以及第三应答报文中的字段名和字段值,将字段值不同时对应的字段名识别为差异字段;将差异字段添加至噪声字段中。[0075] 图8为本申请实施例提供的一种生成噪声字段的示意图。[0076] 如图8所示,在本申请的一个实施例中,在生成个第三应答报文之后,将第三应答报文810与第二应答报文820进行对比,确定两者之间的差异字段RespY:VY2//VY(830),本实施例中将RespY作为噪声字段。[0077] 上述方案中,通过基于相同的代码版本,即代码测试版本;在不同的运行环境中,得到不同的应答报文,即第二应答报文和第三应答报文;再将两个报文进行对比,确定其中的差异字段,便可以通过差异字段来确定出两个运行环境之间的差异性,即我们将第二运行环境作为无噪环境时,对应的有噪的第一运行环境中的运行结果与第二运行环境的运行结果之间的差异字段,即为噪声字段。[0078] 在本申请的一个实施例中,噪声字段包括以下字段中的至少一个:时间字段、地址字段或者账户标识字段等等,噪声字段可能由于运行环境、运行时间等不同,而发生不同,但是这些不同并非测试过程中的主要研究对象,因此将其剔除,以降低测试数据的冗余度。[0079] 在本申请的一个实施例中,在步骤S241中基于第二应答报文与第三应答报文之间的差异字段,确定噪声字段的过程,具体包括:若在第三应答报文中,存在第二应答报文中不包含的字段,则将字段作为差异字段;将差异字段添加至噪声字段中。通过上述方式,以将新生成的字段也作为噪声字段。[0080] 在本申请的一个实施例中,在步骤S241中基于第二应答报文与第三应答报文之间的差异字段,确定噪声字段的过程之后,还包括:获取噪声字段对应的目标字段名;对目标字段名进行标记。通过对噪声字段的字段名进行标记,可以在之后的测试过程中,当生成的测试结果中存在噪声字段时,直接将噪声字段标识出来,以便于测试人员确定其中的噪声字段。[0081] 在本申请的一个实施例中,在步骤S241中基于第二应答报文与第三应答报文之间的差异字段,确定噪声字段的过程之后,还包括:基于获取到的字段删除指令中的选定字段名,从原有的噪声字段中删除选定字段名对应的噪声字段;基于获取到的字段增加指令中的新增字段名,将新增字段名添加至噪声字段中。[0082] 在本申请的一个实施例中,当生成的噪声字段较多,且其中存在误判的情况时,可以认为的删除其中的某些字段,即选定字段名,进而从原有的噪声字段中删除选定字段名对应的噪声字段。除此之外,当计算机未识别出测试结果中的某些噪声,或者某些字段也无需作为异常字段进行处理时,则将这些字段作为噪声字段,即通过增加这些字段对应的新增字段名,将其添加至噪声字段中,以在之后的测试数据中可以直接剔除这些数据。通过上述方式,以保证噪声库的正确性和精确性,进而提高噪声识别的精确性,以及测试数据处理的准确性。[0083] 在步骤S240中,获取通过第二应答报文与第三应答报文之间的差异字段生成的噪声字段,第三应答报文为在第一运行环境中基于代码测试版本和请求报文生成。[0084] 在本申请的一个实施例中,在第一运行环境中基于代码测试版本和请求报文生成第三应答报文,并通过第二应答报文与第三应答报文之间的差异字段生成噪声字段之后,获取这些噪声字段。[0085] 本实施例中可以将噪声字段存储于测试工具、数据库中,以便于测试工具直接调用噪声字段。[0086] 在步骤S250中,去除待定字段中存在的噪声字段,得到代码开发版本生成的异常字段。[0087] 在本申请的一个实施例中,在获取到噪声字段之后,基于待定字段,确定其中存在的噪声字段,并去除待定字段中存在的噪声字段,将剩余的字段作为代码开发版本生成的异常字段。[0088] 在本申请的一个实施例中,步骤S250中去除待定字段中存在的噪声字段,得到代码开发版本生成的异常字段的过程之后,还包括:基于异常字段进行异常分析,确定发生异常的原因。[0089] 在本申请的一个实施例中,在将待定字段中的噪声字段去除之后,剩下了待定字段中的异常字段,以针对这些异常字段对代码开发版本进行测试分析,得到具体是哪里出现问题导致生成异常字段的异常原因。[0090] 图9为本申请实施例提供的一种识别异常字段的示意图。[0091] 如图9所示,在现网环境录制过程中,即正式环境下的录制版本930中,我们会录制用户请求910对应的完整的请求报文920和回应报包,应答报文会包括字段名和字段值,如图中应答报文A(940)的字段RespX、RespY、RespZ对应的值VX、VY、VZ,数据集A存储于数据库,将此用例作为测试用例。[0092] 将第1步录制的现网请求报文在测试环境960对现网录制版本程序以测试工具950回放一次,我们将应答报文B(970)存储于数据库中。一一比对应答报文A(940)、应答报文B(970)的每一个应答字段和应答字段的返回值,如果有字段值不同,则该字段为为噪声字段,如图中的应答报文A(940)、应答报文B(970)我们比对RespX、RespY、RespZ发现VX、VZ是一样的,但是RespY对应的值不同是VY1,VY,所以记录RespY为噪声字段,因为回放的版本是都是录制版本但是环境和时间不一致的,如果请求都是成功的,那么二者的差异字段为噪音字段。如果在应答报文B(970)出现在应答报文A(940)没有的应答字段,也视为噪音字段。[0093] 将录制的现网请求报文在测试环境新开发版本程序980版回放一次,将应答报文C(990)存储于数据库中。比对应答报文A(940)、应答报文C(940)的请求回应包中的差异字段,再和噪声字段比对,如果不在噪声字段之内即为异常字段。如图所示我们比对应答报文A(940)、应答报文RespX、RespY、RespZ发现VX值一样,但是VY2、VZ1值不一样,因为RespY在已经被标示为噪音字段,所以判定RespZ的值VZ1为异常字段。在本实施例中藉由自动比对找到噪音字段,可以节省在不同接口测试中人工标记噪音字段的成本;另外因为是自动识别的,如果当接口协议改变时,可以自动调整噪音字段识别,不需要人工再次标记。[0094] 上述方案,通过预先在无噪的运行环境中,基于代码测试版本和请求报文生成第二应答报文,同时基于有噪的运行环境中,基于代码测试版本和请求报文生成第三应答报文,以分别得到在有噪和无噪环境下的测试数据。在对代码开发版本进行测试时,先将请求报文输入第一运行环境下的代码开发版本中生成第一运行环境,再基于第一应答报文和第二应答报文之间的差异字段,确定待定字段,通过对比待定字段和噪声字段,将待定字段中的噪声字段去除,最后得到代码开发版本对应的异常字段。避免了对较多的待定字段的处理,能基于预先生成的噪声字段降低运行环境对代码测试的影响,得到冗余度较低的异常字段,减少了数据处理量,提高了测试效率。[0095] 以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的报文测试的方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的报文测试的方法的实施例。[0096] 图10示出了根据本申请的一个实施例的报文测试的装置的框图。[0097] 参照图10所示,根据本申请的一个实施例的报文测试的装置1000,包括:输入单元1010,用于将请求报文输入第一运行环境下的代码开发版本中,生成第一应答报文,其中,第一运行环境表示含有噪声的运行环境;第一获取单元1020,用于获取在视为无噪的第二运行环境中基于代码测试版本和请求报文生成的第二应答报文;待定单元1030,用于基于第一应答报文与第二应答报文之间的差异字段,确定待定字段;第二获取单元1040,用于获取通过第二应答报文与第三应答报文之间的差异字段生成的噪声字段,第三应答报文为在第一运行环境中基于代码测试版本和请求报文生成;去除单元1050,用于去除待定字段中存在的噪声字段,得到代码开发版本生成的异常字段。[0098] 在本申请的一些实施例中,基于前述方案,报文测试的装置1000还包括:第一输出单元,用于将请求报文输入第二运行环境下的代码测试版本中,输出请求报文在第二运行环境下对应的无噪的第二应答报文。[0099] 在本申请的一些实施例中,基于前述方案,报文测试的装置1000还包括:第二输出单元,用于将请求报文输入第一运行环境下的代码测试版本中,输出请求报文在第一运行环境下对应的第三应答报文;噪声确定单元,用于基于第二应答报文与第三应答报文之间的差异字段,确定噪声字段。[0100] 在本申请的一些实施例中,基于前述方案,噪声确定单元包括:第一差异识别单元,用于基于第二应答报文中的字段名和字段值、以及第三应答报文中的字段名和字段值,将字段值不同时对应的字段名识别为差异字段;第一字段添加单元,用于将差异字段添加至噪声字段中。[0101] 在本申请的一些实施例中,基于前述方案,噪声确定单元包括:第二差异识别单元,用于若在第三应答报文中,存在第二应答报文中不包含的字段,则将字段作为差异字段;第二字段添加单元,用于将差异字段添加至噪声字段中。[0102] 在本申请的一些实施例中,基于前述方案,报文测试的装置1000还包括:字段获取单元,用于获取噪声字段对应的目标字段名;字段标记单元,用于对目标字段名进行标记。[0103] 在本申请的一些实施例中,基于前述方案,报文测试的装置1000还用于执行如下至少一个步骤:基于获取到的字段删除指令中的选定字段名,从原有的噪声字段中删除选定字段名对应的噪声字段;基于获取到的字段增加指令中的新增字段名,将新增字段名添加至噪声字段中。[0104] 在本申请的一些实施例中,基于前述方案,噪声字段包括以下字段中的至少一个:时间字段、地址字段或者账户标识字段。[0105] 在本申请的一些实施例中,基于前述方案,报文测试的装置1000还包括:异常分析单元,用于基于异常字段进行异常分析,确定发生异常的原因。[0106] 图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。[0107] 需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。[0108] 如图11所示,计算机系统1100包括中央处理单元(CentralProcessingUnit,CPU)1101,其可以根据存储在只读存储器(Read‑OnlyMemory,ROM)1102中的程序或者从储存部分1108加载到随机访问存储器(RandomAccessMemory,RAM)1103中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM1103中,还存储有系统操作所需的各种程序和数据。CPU1101、ROM1102以及RAM1103通过总线1104彼此相连。输入/输出(Input/Output,I/O)接口1105也连接至总线1104。[0109] 以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CathodeRayTube,CRT)、液晶显示器(LiquidCrystalDisplay,LCD)等以及扬声器等的输出部分1107;包括硬盘等的储存部分1108;以及包括诸如LAN(LocalAreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入储存部分1108。[0110] 特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本申请的系统中限定的各种功能。[0111] 需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ErasableProgrammableReadOnlyMemory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(CompactDiscRead‑OnlyMemory,CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。[0112] 附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0113] 描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。[0114] 根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。[0115] 作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。[0116] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。[0117] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。[0118] 本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。[0119] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
专利地区:广东
专利申请日期:2020-09-30
专利公开日期:2024-06-18
专利公告号:CN114338846B