专利名称:一种异常测试方法及装置
专利类型:实用新型专利
专利申请号:CN202110026186.8
专利申请(专利权)人:腾讯科技(深圳)有限公司
权利人地址:广东省深圳市南山区高新区科技中一路腾讯大厦35层
专利发明(设计)人:邹影超,高寅,秦梅,李丽,刘坚
专利摘要:本申请实施例公开了一种异常测试方法及装置,该方法包括:获取测试平台中第一测试用例对应的模块调用链路,所述第一测试用例为所述测试平台中目标测试任务所对应的测试用例;获取所述目标测试任务中异常类型的调整内容,所述异常类型的调整内容用于调整所述第一测试用例对应的异常类型;将所述异常类型的调整内容关联于所述模块调用链路,以组合所述第一测试用例与所述异常类型的调整内容为第二测试用例;基于所述第二测试用例对所述目标测试任务进行异常类型测试,得到所述目标测试任务对应于目标异常类型的测试结果。本申请的实施例有效提升测试平台对于异常类型的支持能力,满足多样的个性化异常测试需求。
主权利要求:
1.一种异常测试方法,其特征在于,包括:
获取测试平台中第一测试用例对应的模块调用链路,所述第一测试用例为所述测试平台中目标测试任务所对应的测试用例;
获取所述目标测试任务中异常类型的调整内容,所述异常类型的调整内容用于调整所述第一测试用例对应的异常类型;其中,所述异常类型的调整内容包括调整操作及对应的调整时机;所述获取所述目标测试任务中异常类型的调整内容,包括:获取用户定义的所述目标测试任务中异常类型的调整内容,并获取所述异常类型的调整内容所对应的调整内容模板;比较用户定义的所述异常类型的调整内容与所述调整内容模板中的内容,得到用户定义的所述异常类型调整内容与所述调整内容模板中的内容的匹配分值;当所述匹配分值大于预定阈值时,将用户定义的所述异常类型的调整内容作为获取到的异常类型的调整内容;
将所述异常类型的调整内容关联于所述模块调用链路,以组合所述第一测试用例与所述异常类型的调整内容为第二测试用例;其中,包括:在所述模块调用链路中确定目标链路节点;根据所述调整时机将所述调整操作关联于所述目标链路节点,得到组合了所述第一测试用例与所述异常类型的调整内容的第二测试用例;
所述根据所述调整时机将所述调整操作关联于所述目标链路节点,包括:确定所述目标链路节点中符合所述调整时机的位置,在所述位置添加所述调整操作的调用接口,以在符合所述调整时机时通过调用接口调用所述调整操作;
基于所述第二测试用例对所述目标测试任务进行异常类型测试,得到所述目标测试任务对应于目标异常类型的测试结果;所述目标异常类型为对所述目标测试任务个性化设置得到的异常类型。
2.根据权利要求1所述的异常测试方法,其特征在于,所述异常类型调整内容包括第一调整内容,所述第一测试用例包括所述目标异常类型对应的异常信息;
所述基于所述第二测试用例对所述目标测试任务进行异常类型测试,得到所述目标测试任务对应于目标异常类型的测试结果,包括:执行所述第二测试用例,以调用所述第一调整内容用于在所述模块调用链路中调整所述目标异常类型对应的异常信息,得到异常调整后的第一测试用例;
执行所述异常调整后的第一测试用例进行异常测试,得到所述目标测试任务对应于目标异常类型的测试结果。
3.根据权利要求2所述的异常测试方法,其特征在于,所述异常类型调整内容还包括第二调整内容;
所述执行所述异常调整后的第一测试用例进行异常测试,得到所述目标测试任务对应于目标异常类型的测试结果之后,所述方法还包括:调用所述第二调整内容用于在所述模块调用链路中,恢复异常调整后的所述目标异常类型对应的异常信息为异常调整之前的异常信息。
4.根据权利要求1所述的异常测试方法,其特征在于,所述第一测试用例包括所述目标异常类型对应的异常信息;所述基于所述第二测试用例对所述目标测试任务进行异常类型测试,得到所述目标测试任务对应于目标异常类型的测试结果,包括:执行所述第二测试用例,以调用所述第一测试用例进行执行,并在执行至所述目标链路节点且符合所述调整时机时,执行所述调整操作在所述模块调用链路中调整所述目标异常类型对应的异常信息,得到异常调整后的第一测试用例;
执行所述异常调整后的第一测试用例进行异常测试,得到所述目标测试任务对应于目标异常类型的测试结果。
5.根据权利要求4所述的异常测试方法,其特征在于,所述调整操作对应的指令保存于所述测试平台的预定位置,所述预定位置关联于代理组件,所述在执行至所述目标链路节点且符合所述调整时机时,执行所述调整操作在所述模块调用链路中调整所述目标异常类型对应的异常信息,包括:在执行至所述目标链路节点且符合所述调整时机时,调用所述代理组件,以通过所述代理组件从所述预定位置调用所述调整操作对应的指令进行执行,在所述模块调用链路中调整所述目标异常类型对应的异常信息。
6.根据权利要求2或4所述的异常测试方法,其特征在于,所述执行所述第二测试用例,包括:获取所述第二测试用例的用例信息,并确定所述用例信息所对应的测试环境信息;
在所述测试环境信息所对应的测试模块中,执行所述第二测试用例进行测试。
7.根据权利要求2或4所述的异常测试方法,其特征在于,所述执行所述异常调整后的第一测试用例进行异常测试,得到所述目标测试任务对应于目标异常类型的测试结果,包括:获取所述第二测试用例的预期执行结果;
执行所述异常调整后的第一测试用例进行异常测试,得到当前执行结果;
比较所述预期执行结果与所述当前执行结果,得到所述测试结果。
8.一种异常测试装置,其特征在于,包括:
第一获取模块,用于获取测试平台中第一测试用例对应的模块调用链路,所述第一测试用例为所述测试平台中目标测试任务所对应的测试用例;
第二获取模块,用于获取所述目标测试任务中异常类型的调整内容,所述异常类型的调整内容用于调整所述第一测试用例对应的异常类型;其中,所述异常类型的调整内容包括调整操作及对应的调整时机;第二获取模块,具体用于:获取用户定义的所述目标测试任务中异常类型的调整内容,并获取所述异常类型的调整内容所对应的调整内容模板;比较用户定义的所述异常类型的调整内容与所述调整内容模板中的内容,得到用户定义的所述异常类型调整内容与所述调整内容模板中的内容的匹配分值;当所述匹配分值大于预定阈值时,将用户定义的所述异常类型的调整内容作为获取到的异常类型的调整内容;
生成模块,用于将所述异常类型的调整内容关联于所述模块调用链路,以组合所述第一测试用例与所述异常类型的调整内容为第二测试用例;其中,包括:在所述模块调用链路中确定目标链路节点;根据所述调整时机将所述调整操作关联于所述目标链路节点,得到组合了所述第一测试用例与所述异常类型的调整内容的第二测试用例;
所述根据所述调整时机将所述调整操作关联于所述目标链路节点,包括:确定所述目标链路节点中符合所述调整时机的位置,在所述位置添加所述调整操作的调用接口,以在符合所述调整时机时通过调用接口调用所述调整操作;
测试模块,用于基于所述第二测试用例对所述目标测试任务进行异常类型测试,得到所述目标测试任务对应于目标异常类型的测试结果;所述目标异常类型为对所述目标测试任务个性化设置得到的异常类型。 说明书 : 一种异常测试方法及装置技术领域[0001] 本申请涉及测试技术领域,具体涉及一种异常测试方法及装置。背景技术[0002] 随着测试技术的发展,在测试时通常可以基于测试平台实现自动化测试,测试平台可以提供通用的异常类型,例如入包篡改、出包篡改及固定错误码等,来实现对不同测试场景的业务进行安全异常测试。[0003] 但是,通常不同测试场景下的异常类型需求随着业务需求不断变化,而测试平台只能支持部分通用的异常类型,针对测试平台不支持的非通用异常类型,需要进行手工测试或者形成自动化脚本进行测试,测试平台的异常类型支持能力较弱,难以满足个性化的异常测试需求。发明内容[0004] 本申请实施例提供一种异常测试方法及相关装置,旨在提高测试平台对于异常类型的支持能力,满足多样的个性化异常测试需求。[0005] 为解决上述技术问题,本申请实施例提供以下技术方案:[0006] 根据本申请的一个实施例,一种异常测试方法,包括:获取测试平台中第一测试用例对应的模块调用链路,所述第一测试用例为所述测试平台中目标测试任务所对应的测试用例;获取所述目标测试任务中异常类型的调整内容,所述异常类型的调整内容用于调整所述第一测试用例对应的异常类型;将所述异常类型的调整内容关联于所述模块调用链路,以组合所述第一测试用例与所述异常类型的调整内容为第二测试用例;基于所述第二测试用例对所述目标测试任务进行异常类型测试,得到所述目标测试任务对应于目标异常类型的测试结果。[0007] 根据本申请的一个实施例,一种异常测试装置,其包括:第一获取模块,用于获取测试平台中第一测试用例对应的模块调用链路,所述第一测试用例为所述测试平台中目标测试任务所对应的测试用例;第二获取模块,用于获取所述目标测试任务中异常类型的调整内容,所述异常类型的调整内容用于调整所述第一测试用例对应的异常类型;生成模块,用于将所述异常类型的调整内容关联于所述模块调用链路,以组合所述第一测试用例与所述异常类型的调整内容为第二测试用例;测试模块,用于基于所述第二测试用例对所述目标测试任务进行异常类型测试,得到所述目标测试任务对应于目标异常类型的测试结果。[0008] 在本申请的一些实施例中,所述异常类型调整内容包括第一调整内容,所述第一测试用例包括所述目标异常类型对应的异常信息;所述测试模块包括:第一执行单元,用于执行所述第二测试用例,以调用所述第一调整内容用于在所述模块调用链路中调整所述目标异常类型对应的异常信息,得到异常调整后的第一测试用例;第二执行单元,用于执行所述异常调整后的第一测试用例进行异常测试,得到所述目标测试任务对应于目标异常类型的测试结果。[0009] 在本申请的一些实施例中,所述异常类型调整内容还包括第二调整内容;所述测试模块还包括:恢复模块,用于调用所述第二调整内容用于在所述模块调用链路中,恢复异常调整后的所述目标异常类型对应的异常信息为异常调整之前的异常信息。[0010] 在本申请的一些实施例中,所述异常类型的调整内容包括调整操作及对应的调整时机;所述生成模块包括:确定单元,用于在所述模块调用链路中确定目标链路节点;组合单元,用于根据所述调整时机将所述调整操作关联于所述目标链路节点,得到组合了所述第一测试用例与所述异常类型的调整内容的第二测试用例。[0011] 在本申请的一些实施例中,所述第一测试用例包括所述目标异常类型对应的异常信息;所述测试模块包括:第三执行单元,用于执行所述第二测试用例,以调用所述第一测试用例进行执行,并在执行至所述目标节点且符合所述调整时机时,执行所述调整操作在所述模块调用链路中调整所述目标异常类型对应的异常信息,得到异常调整后的第一测试用例;第四执行单元,用于执行所述异常调整后的第一测试用例进行异常测试,得到所述目标测试任务对应于目标异常类型的测试结果。[0012] 在本申请的一些实施例中,所述调整操作对应的指令保存于所述测试平台的预定位置,所述预定位置关联于代理组件,所述第三执行单元还用于:在执行至所述目标节点且符合所述调整时机时,调用所述代理组件,以通过所述代理组件从所述预定位置调用所述调整操作对应的指令进行执行,在所述模块调用链路中调整所述目标异常类型对应的异常信息。[0013] 在本申请的一些实施例中,所述第一执行单元或所述第三执行单元包括:获取子单元,用于获取所述第二测试用例的用例信息,并确定所述用例信息所对应的测试环境信息;执行子单元,用于在所述测试环境信息所对应的测试模块中,执行所述第二测试用例进行测试。[0014] 在本申请的一些实施例中,所述第二执行单元或所述第四执行单元,包括:预期子单元,用于获取所述第二测试用例的预期执行结果;当前子单元,用于执行所述异常调整后的第一测试用例进行异常测试,得到当前执行结果;比较子单元,用于比较所述预期执行结果与所述当前执行结果,得到所述测试结果。[0015] 在本申请的一些实施例中,所述第二获取模块,包括:准备单元,用于获取用户定义的所述目标测试任务中异常类型的调整内容,并获取所述异常类型的调整内容所对应的调整内容模板;内容比较单元,用于比较用户定义的所述异常类型的调整内容与所述调整内容模板中的内容,得到用户定义的所述异常类型调整内容与所述调整内容模板中的内容的匹配分值;筛选单元,用于当所述匹配分值大于预定阈值时,将用户定义的所述异常类型的调整内容作为获取到的异常类型的调整内容。[0016] 根据本申请的另一实施例,一种电子设备可以包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行本申请实施例所述的异常测试方法。[0017] 根据本申请的另一实施例,一种计算机可读介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行本申请实施例所述的异常测试方法。[0018] 根据本申请的另一实施例,一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例所述的各种可选实现方式中提供的异常测试方法。[0019] 本申请实施例通过获取测试平台中第一测试用例对应的模块调用链路,该第一测试用例为测试平台中目标测试任务所对应的测试用例;然后,获取目标测试任务中异常类型的调整内容,该异常类型的调整内容用于调整第一测试用例对应的异常类型;然后,将异常类型的调整内容关联于该模块调用链路,以组合第一测试用例与异常类型的调整内容为第二测试用例;最后,基于第二测试用例对该目标测试任务进行异常类型测试,得到该目标测试任务对应于目标异常类型的测试结果。[0020] 进而,通过对测试平台中已有的第一测试用例对应的模块调用链路关联异常类型的调整内容,可以根据目标异常类型需求对第一测试用例对应的异常类型进行调整,获取目标测试任务对应于目标异常类型的测试结果,实现个性化扩展测试平台中的异常类型,有效提升测试平台的异常类型支持能力,使得测试任务中的异常构造更开放、更便捷,有效满足个性化异常测试需求。附图说明[0021] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0022] 图1示出了可以应用本申请实施例的系统的示意图。[0023] 图2示出了根据本申请的一个实施例的异常测试方法的流程图。[0024] 图3示出了根据本申请的一个实施例的获取调整内容的方法的流程图。[0025] 图4示出了根据本申请的一个实施例的组合第二测试用例的方法的流程图。[0026] 图5示出了根据本申请的一个实施例的执行第二测试用例的方法的流程图。[0027] 图6示出了根据本申请的一个实施例的获取测试结果的方法的流程图。[0028] 图7示出了根据本申请的一个实施例的执行第二测试用例的方法的流程图。[0029] 图8示出了根据本申请的一个实施例的获取测试结果的方法的流程图。[0030] 图9示出了应用本申请的实施例的一种场景下异常测试的流程图。[0031] 图10示出了一种图9中场景下定义异常类型的调整内容的终端界面图。[0032] 图11示出了应用本申请的实施例的另一种场景下异常测试的流程图。[0033] 图12示出了一种图11中场景下组合异常类型的调整内容的终端界面图。[0034] 图13示出了一种图11中场景下加载调整内容的终端界面图。[0035] 图14示出了根据本申请的一个实施例的异常测试装置的框图。[0036] 图15示出了根据本申请的一个实施例的电子设备的框图。具体实施方式[0037] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。[0038] 在以下的说明中,本申请的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本申请原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。[0039] 图1示出了可以应用本申请实施例的系统100的示意图。如图1所示,系统100可以包括服务器101、终端102及测试平台103,服务器101上可以执行测试平台103中的后台任务,终端102上可以提供测试平台交互的操作页面(例如web页面)。[0040] 服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器101可以执行后台任务,服务器101中可以存储测试相关数据。[0041] 一种实施方式中,服务器101可以提供人工智能云服务,例如提供大型多人在线角色扮演游戏(MMORPG)的人工智能云服务。所谓人工智能云服务,一般也被称作是AIaaS(AIasaService,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。[0042] 终端102可以是边缘设备,例如智能手机,电脑等。用户可以通过终端102上的操作页面利用测试平台个性化定义异常类型及执行异常测试。[0043] 其中,终端102和服务器101可以通过无线通信方式进行直接或间接地连接,本申请在此不做特殊限制。[0044] 测试平台103中包括日志分析平台、用例管理平台、通用接口自动化平台及环境管理平台。[0045] 日志分析平台具体可以包括:日志聚合模块,可以对相似的日志进行聚合;日志上报模块,可以基于测试用例的执行过程,自动收集日志调用链路,生成测试过程中的模块调用链路对应的模块调用链路图,例如,分析分布式系统里面各个服务模块之间的调用关系,通过树形结构展示;日志数据库,可以存储日志。[0046] 用例管理平台具体可以包括:异常类型管理模块,可以对测试平台中的测试用例的异常类型进行管理;模调图管理模块,可以对模块调用链路图进行管理;用例管理模块,可以对测试任务对应的测试用例进行管理;用例生成模块,可以生成测试任务对应的测试用例;用例执行模块,可以按照模块调用链路执行测试用例;定时计划模块,可以管理测试用例的执行时间;结果管理模块,可以对测试用例的异常类型的测试结果;消息通知模块,可以将测试结果通知给相关用户;Mock桩模块,可以管理测试用例执行过程中模拟的各外部依赖对象。[0047] 通用接口自动化平台具体可以包括:ATT用例平台及ATP(AurorTestPlatform)用例平台(集成接口‑UI自动化的一体化测试平台),ATT用例平台及ATP用例平台为通过构造参数,适配不同协议,预设条件,调用接口,检查结果等通用手段完成接口自动化的平台,用户通过在ATT用例平台/ATP用例平台执行一个测试用例(例如正常场景的测试用例)。[0048] 环境管理平台可以管理服务模块信息与部署环境信息,并且建立服务模块信息与部署环境信息之间的对应关系,且可以提供调用接口,通过服务模块的名称可以获取服务模块所在的部署环境信息。[0049] 本示例的一种实施方式中,终端102可以获取测试平台103中第一测试用例对应的模块调用链路,该第一测试用例为测试平台103中目标测试任务所对应的测试用例;然后,获取目标测试任务中异常类型的调整内容,该异常类型的调整内容用于调整第一测试用例对应的异常类型;然后,将异常类型的调整内容关联于该模块调用链路,以组合第一测试用例与异常类型的调整内容为第二测试用例;最后,基于第二测试用例对该目标测试任务进行异常类型测试,得到该目标测试任务对应于目标异常类型的测试结果。[0050] 图2示意性示出了根据本申请的一个实施例的异常测试方法的流程图。该异常测试方法的执行主体可以是具有计算处理功能的电子设备,比如图1中所示的服务器101或者终端102。[0051] 如图2所示,该异常测试方法可以包括步骤S210至步骤S240。[0052] 步骤S210,获取测试平台中第一测试用例对应的模块调用链路,该第一测试用例为测试平台中目标测试任务所对应的测试用例;[0053] 步骤S220,获取目标测试任务中异常类型的调整内容,该异常类型的调整内容用于调整第一测试用例对应的异常类型;[0054] 步骤S230,将异常类型的调整内容关联于该模块调用链路,以组合第一测试用例与异常类型的调整内容为第二测试用例;[0055] 步骤S240,基于第二测试用例对该目标测试任务进行异常类型测试,得到该目标测试任务对应于目标异常类型的测试结果。[0056] 下面描述异常测试时,所进行的各步骤的具体过程。[0057] 在步骤S210,获取测试平台中第一测试用例对应的模块调用链路,该第一测试用例为测试平台中目标测试任务所对应的测试用例。[0058] 本示例的实施方式中,测试平台可以提供通用的异常类型:如入包篡改、出包篡改、固定错误码、请求超时、请求超时后重入等,来实现对业务进行安全异常测试。目标测试任务为例如支付业务等业务对应的测试任务等。[0059] 第一测试用例为测试平台中目标测试任务所对应的测试用例,即第一测试用例为测试平台中预设的测试用例。一个示例中,该第一测试用例为正常场景下的测试用例,例如支付成功或者下单成功等正常场景下的测试用例。[0060] 模块调用链路是测试用例执行过程中的执行逻辑,模块调用链路中包括测试用例执行全过程中的调用的接口及接口的调用顺序等逻辑信息。每个测试用例在执行时依照对应的模块调用链路进行执行。其中,模块调用链路可以通过模块调用链路图的形式展示,也可以通过测试用例标识进行表示。[0061] 获取测试平台中第一测试用例对应的模块调用链路可以是直接根据第一测试用例对应的目标测试任务的标识,从测试平台中查询到可以标识第一测试用例的模块调用链路的标识;也可以是在测试平台中执行一次第一测试用例,由如图1所示的日志上报模块自动收集日志调用链路,生成测试过程中的模块调用链路对应的模块调用链路图。[0062] 通过获取测试平台中第一测试用例对应的模块调用链路,可以在后续步骤中通过对模块调用链路中的目标信息进行调整,对第一测试用例对应的异常类型进行调整。[0063] 在步骤S220,获取目标测试任务中异常类型的调整内容,该异常类型的调整内容用于调整第一测试用例对应的异常类型。[0064] 本示例的实施方式中,异常类型的调整内容用于调整第一测试用例对应的异常类型,即异常类型的调整内容可以通过对模块调用链路中的目标信息进行调整,调整第一测试用例已有执行逻辑信息,进而调整第一测试用例对应的异常类型。例如在第一测试用例中通过篡改信息等设置异常或者改变第一测试用例用已有的异常为所需求的异常等。其中,异常类型的调整内容可以是异常类型的调整脚本,也可以是异常类型的调整指令。[0065] 获取异常类型的调整内容的方式,可以是由用户根据需求按照脚本模板或者指令模板进行自定义输入调整脚本或者调整指令;也可以是用户输入调整需求后,由预先训练好的内容生成深度学习模型进行生成调整内容,该内容生成深度学习模型可以通过将调整需求样本作为输入,调整需求样本对应的调整内容样本作为输出,训练得到的。[0066] 参考图3,一种实施例中,步骤S220中,获取目标测试任务中异常类型的调整内容,包括:[0067] 步骤S310,获取用户定义的目标测试任务中异常类型的调整内容,并获取该异常类型的调整内容所对应的调整内容模板;[0068] 步骤S320,比较用户定义的异常类型的调整内容与调整内容模板中的内容,得到用户定义的异常类型调整内容与调整内容模板中的内容的匹配分值;[0069] 步骤S330,当匹配分值大于预定阈值时,将用户定义的异常类型的调整内容作为获取到的异常类型的调整内容。[0070] 调整内容模板为测试平台中预设的内容模板。比较用户定义的异常类型的调整内容与调整内容模板中的内容,可以通过进行内容相似度匹配计算,得到用户定义的异常类型调整内容与调整内容模板中的内容的相似度,作为匹配分值。当匹配分值大于预定阈值时,将用户定义的异常类型的调整内容作为获取到的异常类型的调整内容,可以保证用户自定义的调整内容的准确性。[0071] 其中,进行内容相似度匹配计算的方法可以采用欧式距离或者余弦相似度等相似度计算方法,具体地,可以将用户定义的异常类型调整内容转化为第一特征向量,将调整内容模板分别转化为第二特征向量,然后,基于相似度匹配计算的方法,计算第一特征向量和第二特征向量的相似度。[0072] 基于步骤S210和S220分别获取到模块调用链路及异常类型的调整内容后,继续执行步骤S230。[0073] 在步骤S230,将异常类型的调整内容关联于该模块调用链路,以组合第一测试用例与异常类型的调整内容为第二测试用例。[0074] 本示例的实施方式中,将异常类型的调整内容关联于该模块调用链路,使得异常类型的调整内容与第一测试用例的执行逻辑进行了关联,形成可以调整第一测试用例对应的异常类型的新的逻辑,即组合第一测试用例与异常类型的调整内容为第二测试用例。[0075] 将异常类型的调整内容关联于该模块调用链路的方式,可以是将异常类型的调整内容对应的标识与第一测试用例的模块调用链路的标识关联在一起,形成新的组合执行逻辑,得到第二测试用例;也可以是将异常类型的调整内容对应的调用接口加载至第一测试用例的模块调用链路中目标链路节点,形成新的组合执行逻辑,得到第二测试用例。[0076] 参考图4,一种实施例中,异常类型的调整内容包括调整操作及对应的调整时机;在步骤S230,将异常类型的调整内容关联于模块调用链路,以组合第一测试用例与异常类型的调整内容为第二测试用例,包括:[0077] 步骤S410,在模块调用链路中确定目标链路节点;[0078] 步骤S420,根据调整时机将调整操作关联于目标链路节点,得到组合了第一测试用例与异常类型的调整内容的第二测试用例。[0079] 调整操作是调整内容中执行异常调整的内容,该调整操作对应异常类型,例如可以是篡改操作,可以调整异常类型为篡改异常。调整时机就是调整操作的操作时机,例如,对于A服务调用B服务,调整时机可以包括在B服务接收到A服务的请求之前,以及在B服务接收到A服务的请求处理完后返回给A服务之前等时机。[0080] 用户可以根据需要按调整时机与调整操作进行异常组合,设置自己需要的异常,例如,结合时机就可以控制在目标时机进行篡改操作。根据实际需要可以方便地进行异常类型的扩充,满足各业务的需要。[0081] 在模块调用链路中确定目标链路节点(例如B服务),可以是用户在模块调用链路图中选定目标链路节点;也可以是根据异常类型的调整请求中包含的服务标识查询确定的。[0082] 根据调整时机将调整操作关联于目标链路节点,可以是根据调整时机确定目标链路节点中符合调整时机的位置,然后在该位置添加调整操作的调用接口,以在符合调整时机时调用调整操作进行执行。[0083] 基于步骤S230得到第二测试用例后,执行步骤S240便可以执行异常测试。[0084] 在步骤S240,基于第二测试用例对该目标测试任务进行异常类型测试,得到该目标测试任务对应于目标异常类型的测试结果。[0085] 本示例的实施方式中,如前述第二测试用例为第一测试用例和异常类型的调整内容组合得到的新的组合执行逻辑,进而,执行第二测试用例可以触发异常类型的调整内容与第一测试用例的组合执行,对目标测试任务个性化设置目标异常类型,实现个性化的异常类型调整,并完成异常测试,得到测试结果。[0086] 参考图5,一种实施例中,异常类型调整内容包括第一调整内容,第一测试用例包括目标异常类型对应的异常信息;步骤S240,基于第二测试用例对该目标测试任务进行异常类型测试,得到该目标测试任务对应于目标异常类型的测试结果,包括:[0087] 步骤S510,执行第二测试用例,以调用第一调整内容用于在模块调用链路中调整目标异常类型对应的异常信息,得到异常调整后的第一测试用例;[0088] 步骤S520,执行异常调整后的第一测试用例进行异常测试,得到目标测试任务对应于目标异常类型的测试结果。[0089] 第一调整内容用于在调用时在模块调用链路中调整目标异常类型对应的异常信息,例如第一调整内容在被调用时,在数据库中篡改模块调用链路中使用的用户签名为错误的用户签名,实现在模块调用链路中调整篡改异常(目标异常类型)对应的异常信息。第一调整内容可以是调整脚本,由用户按照脚本模板输入的实现自定义异常类型。[0090] 此实施例中,异常类型的调整内容中不设置调整时机,业务方可以基于后台静态数据的自定义调整,个性化调整异常类型,其中,静态数据为一个业务流程中,不发生变化的数据,如支付流程中用户账号、用户密码等。[0091] 执行第二测试用例,首先,调用第一调整内容在模块调用链路中调整目标异常类型对应的异常信息,该异常信息为静态数据,通过第一测试用例的异常改造实现异常调整。然后,执行异常调整后的第一测试用例,便可以基于调整后的异常(例如篡改异常)进行执行,得到最后的执行结果。通过判断是否符合预期结果,得到目标测试任务对应于目标异常类型的测试结果。[0092] 一种实施例中,异常类型调整内容还包括第二调整内容;步骤S520,执行异常调整后的第一测试用例进行异常测试,得到目标测试任务对应于目标异常类型的测试结果之后,还包括:步骤S530,调用第二调整内容用于在模块调用链路中,恢复异常调整后的目标异常类型对应的异常信息为异常调整之前的异常信息。[0093] 第二调整内容用于在调用时在数据库中恢复异常调整后的目标异常类型对应的异常信息为异常调整之前的异常信息,例如在调用时恢复数据库中篡改后用户签名为篡改前的用户签名,这样可以保证其他使用签名的用例正常执行。实现业务方基于后台静态数据的自定义调整,个性化调整异常类型,执行完用例后恢复静态数据。[0094] 参考图6,一种实施例中,第一测试用例包括目标异常类型对应的异常信息;步骤S240,基于第二测试用例对目标测试任务进行异常类型测试,得到目标测试任务对应于目标异常类型的测试结果,包括:[0095] 步骤S610,执行第二测试用例,以调用第一测试用例进行执行,并在执行至目标节点且符合调整时机时,执行调整操作在模块调用链路中调整目标异常类型对应的异常信息,得到异常调整后的第一测试用例;[0096] 步骤S620,执行异常调整后的第一测试用例进行异常测试,得到目标测试任务对应于目标异常类型的测试结果。[0097] 此实施例中,异常类型的调整内容由调整时机与调整操作组合得到,异常类型的调整内容关联于目标节点。实现业务方各类特定异常相互组合的需求:异常构造的调整时机与具体调整的异常类型的组合,实现对用例执行过程的动态数据的调整,例如支付流程中(对应异常构造的调整时机)篡改动态数据‑交易金额(对应具体的异常类型:篡改)。其中动态数据为一个业务流程中生成的动态数据,例如订单号。[0098] 执行第二测试用例,可以调用第一测试用例按照对应的模块调用链路进行执行,并在执行至目标节点且符合调整时机时(例如在B服务接收到A服务的请求处理完后返回给A服务之前),通过调用调整操作对应的接口调用调整操作进行执行,在模块调用链路中调整目标异常类型对应的异常信息(例如篡改订单号),得到异常调整后的第一测试用例。[0099] 进而,便可以基于调整后的异常(例如篡改异常)进行执行,测试得到最后的执行结果。通过判断是否符合预期结果,得到目标测试任务对应于目标异常类型的测试结果。[0100] 一种实施例中,调整操作对应的指令保存于测试平台的预定位置,该预定位置关联于代理组件,步骤S610中,在执行至目标节点且符合调整时机时,执行调整操作在模块调用链路中调整目标异常类型对应的异常信息,包括:[0101] 在执行至目标节点且符合调整时机时,调用代理组件,以通过代理组件从预定位置调用调整操作对应的指令进行执行,在模块调用链路中调整目标异常类型对应的异常信息。[0102] 整操作对应的指令(例如脚本)保存于测试平台的预定位置(例如后台数据库),该预定位置关联于代理组件。在执行至目标节点且符合调整时机时,调用代理组件,可以通过代理组件从预定位置调用调整操作对应的指令进行执行。通过设置代理组件的方式可以提升测试平台的可扩展性。[0103] 参考图7,一种实施例中,步骤S510及步骤S610中,执行第二测试用例,包括:[0104] 步骤S710,获取第二测试用例的用例信息,并确定用例信息所对应的测试环境信息;[0105] 步骤S720,在测试环境信息所对应的测试模块中,执行第二测试用例进行测试。[0106] 获取第二测试用例的用例信息可以是获取组成第二测试用例的第一测试用例的标识等信息,然后基于获取的用例信息可以从测试平台在确定执行测试用例过程中各服务模块所需的测试环境信息,例如软件环境信息及硬件环境信息;然后,可以从如图1所示的环境管理平台中,根据预设的服务模块信息与部署环境信息(即测试环境信息)对应关系,确定测试环境信息所对应的测试模块(即服务模块),在对应的测试环境下执行第二测试用例。[0107] 参考图8,一种实施例中,步骤S520及步骤S620,执行异常调整后的第一测试用例进行异常测试,得到目标测试任务对应于目标异常类型的测试结果,包括:[0108] 步骤S810,获取第二测试用例的预期执行结果;[0109] 步骤S820,执行异常调整后的第一测试用例进行异常测试,得到当前执行结果;[0110] 步骤S830,比较预期执行结果与当前执行结果,得到测试结果。[0111] 第二测试用例的预期执行结果可以是用户设定的预期结果,也可以是测试平台中预设的对应于调整的异常类型的预期结果,例如支付不成功。执行异常调整后的第一测试用例进行异常测试,得到当前执行结果(即基于调整后的异常执行的结果),例如支付不成功;然后,比较预期执行结果与当前执行结果,当两者一致时,说明目标测试任务对于目标异常类型具有安全抵抗能力,否则不具有,进而得到目标测试任务对应于目标异常类型的测试结果。[0112] 根据上述实施例所描述的方法,以下将举例作进一步详细说明。[0113] 图9示出了应用本申请的实施例的一种场景下异常测试的流程图。该场景下的异常测试可以基于如图1所示的测试平台103进行。[0114] 如图9所示,该场景下的异常测试包括步骤S910‑步骤S960。该场景下异常类型地调整内容包括第一调整内容及第二调整内容,以实现业务方基于第一调整内容对后台静态数据进行自定义调整,个性化调整异常类型,执行完用例后基于第二调整内容恢复静态数据。[0115] 在步骤S910中,生成异常测试用例:业务方在异常测试平台前端通过终端界面,按照调整内容模板自定义异常类型的调整内容,在保存后,后台用例生成模块关联异常类型的调整内容与正常场景下的测试用例(即第一测试用例)的模块调用链路,生成异常测试用例(即第二测试用例),并将异常类型的调整内容存放在后台,将异常测试用例的用例信息保存至数据库。[0116] 在步骤S920中,执行异常测试用例:测试平台从数据库中获取到要执行的异常测试用例的用例信息,从环境管理平台获取对应服务模块的测试环境信息,以去到对应的测试环境执行用例。[0117] 在步骤S930中,执行异常测试用例:测试平台首先调用异常类型的调整内容中第一调整内容的脚本进行执行,例如执行setUpClass中的代码,把正常场景下的测试用例的模块调用链路中使用的账号A的签名篡改成账号B的签名,实现异常调整。[0118] 在步骤S940中,执行异常测试用例:测试平台调用通用接口自动化平台,基于调整后的异常,执行正常场景下的测试用例(例如正常的支付业务用例),,执行时会检测到用户关系表中签名不正确,拦截交易(用例对应的用户关系表设有防篡改签名,可以验证出被篡改的前面不正确)。[0119] 在步骤S950中,执行异常测试用例:测试平台再次调用异常类型的调整内容中第二调整内容的脚本进行执行,例如执行tearDownClass中的代码,恢复对数据库中签名信息的篡改(可以不影响其它使用相同账号的用例正常执行)。[0120] 在步骤S960中,测试平台检查最后的当前执行结果是否与预期执行结果一致,并邮件通知相关用户。[0121] 图10示出了一种图9中场景下定义异常类型的调整内容的终端界面图。如图10所示,用户首先在操作界面中选定目标测试任务对应的正常场景下的第一测试用例的模块调用链路(例如在用例名称位置输入第一测试用例的标识);然后,点击新增手工用例按钮1010,弹出调整内容的输入框1011,在输入框中的用例前序步骤中输入第一调整内容的脚本,在用例后续步骤中输入第二调整内容的脚本,自定义异常类型调整内容;最后点击保存便将第一测试用例的模块调用链路与异常类型的调整内容关联在一起,得到异常用例(即第二测试用例)。可以理解,该操作界面中根据需求可以设置其它按钮。[0122] 图11示出了应用本申请的实施例的另一种场景下异常测试的流程图。该场景下的异常测试可以基于如图1所示的测试平台103进行。[0123] 如图11所示,该场景下的异常测试包括步骤S1110‑步骤S1170。该场景下异常类型地调整内容包括调整时机及对应的调整操作,以实现业务方根据调整时机需求对动态数据进行自定义异常调整,个性化调整异常类型。[0124] 在步骤S1110中,生成异常测试用例:业务方在异常测试平台前端通过终端界面,新增组合异常类型的调整内容(即组合调整时机与调整操作),并在正常场景下的测试用例(即第一测试用例)对应的模块调用链路图的目标链路节点加载并保存刚设置的异常类型的调整内容,用例生成模块自动生成异常测试用例(即第二测试用例),并将异常类型的调整内容存放在后台,将异常测试用例的用例信息保存至数据库。[0125] 在步骤S1120中,执行异常测试用例:测试平台从数据库获取到要执行的异常测试用例的用例信息,从环境管理平台根据用例信息获取对应服务模块的测试环境信息,以去到对应的测试环境执行用例。[0126] 在步骤S1130中,执行异常测试用例:测试平台调用通用接口自动化平台,执行正常场景下的测试用例,例如正常的支付业务用例。[0127] 在步骤S1140中,执行异常测试用例:执行至目标链路节点,符合调整时机时(例如执行完wx_public_api接口后即符合调整时机时,在模块调用链路图上设置了调整操作的接口),调用代理组件,通过代理组件调用调整操作对应的脚本。[0128] 在步骤S1150中,执行异常测试用例:代理组件调用调整操作对应的脚本进行执行,完整异常类型调整,例如执行篡改操作。[0129] 在步骤S1160中,执行异常测试用例:基于调整后的异常,继续执行正常场景下的测试用例,例如调用wx_public_api后面的接口,完成用例的执行,得到当前执行结果。[0130] 在步骤S1170中,测试平台检查最后的当前执行结果是否与预期执行结果一致,并邮件通知相关用户。[0131] 图12示出了一种图11中场景下组合异常类型的调整内容的终端界面图。如图12所示的终端界面中,用户首先在操作界面中,针对的第一测试用例的模块调用链路中各链路节点,根据需求在异常类型(如图12所示的“A=>B,B接收请求前+额外脚本”异常类型)对应的“内容”输入框中输入调整内容,然后,点击新增可以新增至模块调用链路图中相应节点。然后,在图13所示的终端界面中显示的模块调用链路图中,在相应节点通过点击相应节点1310弹出编辑附加数据显示框1320中显示,然后通过在显示框中点击保存将异常类型的调整内容关联至相应节点。[0132] 图14示出了根据本申请的一个实施例的异常测试装置的框图。[0133] 如图14所示,异常测试装置1400中可以包括第一获取模块1410、第二获取模块1420、生成模块1430及测试模块1440。[0134] 第一获取模块1410可以用于获取测试平台中第一测试用例对应的模块调用链路,所述第一测试用例为所述测试平台中目标测试任务所对应的测试用例;第二获取模块1420可以用于获取所述目标测试任务中异常类型的调整内容,所述异常类型的调整内容用于调整所述第一测试用例对应的异常类型;生成模块1430可以用于将所述异常类型的调整内容关联于所述模块调用链路,以组合所述第一测试用例与所述异常类型的调整内容为第二测试用例;测试模块1440可以用于基于所述第二测试用例对所述目标测试任务进行异常类型测试,得到所述目标测试任务对应于目标异常类型的测试结果。[0135] 在本申请的一些实施例中,所述异常类型调整内容包括第一调整内容,所述第一测试用例包括所述目标异常类型对应的异常信息;所述测试模块包括:第一执行单元,用于执行所述第二测试用例,以调用所述第一调整内容用于在所述模块调用链路中调整所述目标异常类型对应的异常信息,得到异常调整后的第一测试用例;第二执行单元,用于执行所述异常调整后的第一测试用例进行异常测试,得到所述目标测试任务对应于目标异常类型的测试结果。[0136] 在本申请的一些实施例中,所述异常类型调整内容还包括第二调整内容;所述测试模块还包括:恢复模块,用于调用所述第二调整内容用于在所述模块调用链路中,恢复异常调整后的所述目标异常类型对应的异常信息为异常调整之前的异常信息。[0137] 在本申请的一些实施例中,所述异常类型的调整内容包括调整操作及对应的调整时机;所述生成模块包括:确定单元,用于在所述模块调用链路中确定目标链路节点;组合单元,用于根据所述调整时机将所述调整操作关联于所述目标链路节点,得到组合了所述第一测试用例与所述异常类型的调整内容的第二测试用例。[0138] 在本申请的一些实施例中,所述第一测试用例包括所述目标异常类型对应的异常信息;所述测试模块包括:第三执行单元,用于执行所述第二测试用例,以调用所述第一测试用例进行执行,并在执行至所述目标节点且符合所述调整时机时,执行所述调整操作在所述模块调用链路中调整所述目标异常类型对应的异常信息,得到异常调整后的第一测试用例;第四执行单元,用于执行所述异常调整后的第一测试用例进行异常测试,得到所述目标测试任务对应于目标异常类型的测试结果。[0139] 在本申请的一些实施例中,所述调整操作对应的指令保存于所述测试平台的预定位置,所述预定位置关联于代理组件,所述第三执行单元还用于:在执行至所述目标节点且符合所述调整时机时,调用所述代理组件,以通过所述代理组件从所述预定位置调用所述调整操作对应的指令进行执行,在所述模块调用链路中调整所述目标异常类型对应的异常信息。[0140] 在本申请的一些实施例中,所述第一执行单元或所述第三执行单元包括:获取子单元,用于获取所述第二测试用例的用例信息,并确定所述用例信息所对应的测试环境信息;执行子单元,用于在所述测试环境信息所对应的测试模块中,执行所述第二测试用例进行测试。[0141] 在本申请的一些实施例中,所述第二执行单元或所述第四执行单元,包括:预期子单元,用于获取所述第二测试用例的预期执行结果;当前子单元,用于执行所述异常调整后的第一测试用例进行异常测试,得到当前执行结果;比较子单元,用于比较所述预期执行结果与所述当前执行结果,得到所述测试结果。[0142] 在本申请的一些实施例中,所述第二获取模块,包括:准备单元,用于获取用户定义的所述目标测试任务中异常类型的调整内容,并获取所述异常类型的调整内容所对应的调整内容模板;内容比较单元,用于比较用户定义的所述异常类型的调整内容与所述调整内容模板中的内容,得到用户定义的所述异常类型调整内容与所述调整内容模板中的内容的匹配分值;筛选单元,用于当所述匹配分值大于预定阈值时,将用户定义的所述异常类型的调整内容作为获取到的异常类型的调整内容。[0143] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。[0144] 图15示意性示出了根据本申请的一个实施例的电子设备的框图。[0145] 需要说明的是,图15示出的电子设备1500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。[0146] 如图15所示,电子设备1500包括中央处理单元(CPU)1501,其可以根据存储在只读存储器(ROM)1502中的程序或者从存储部分1508加载到随机存取存储器(RAM)1503中的程序而执行各种适当的动作和处理。在RAM1503中,还存储有系统操作所需的各种程序和数据。CPU1501、ROM1502以及RAM1503通过总线1504彼此相连。输入/输出(I/O)接口1505也连接至总线1504。[0147] 以下部件连接至I/O接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如LAN(局域网)卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。[0148] 特别地,根据本申请的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被中央处理单元(CPU)1501执行时,执行本申请的系统中限定的各种功能。[0149] 需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF(射频)等等,或者上述的任意合适的组合。[0150] 附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0151] 描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。[0152] 作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。[0153] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。[0154] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。[0155] 根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请上述实施例中各种可选实现方式中提供的方法。[0156] 本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。[0157] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的实施例,而可以在不脱离其范围的情况下进行各种修改和改变。
专利地区:广东
专利申请日期:2021-01-08
专利公开日期:2024-07-26
专利公告号:CN114741274B