CN116155771A - 网络异常测试方法、装置、设备、存储介质和程序 - Google Patents
网络异常测试方法、装置、设备、存储介质和程序 Download PDFInfo
- Publication number
- CN116155771A CN116155771A CN202111376660.6A CN202111376660A CN116155771A CN 116155771 A CN116155771 A CN 116155771A CN 202111376660 A CN202111376660 A CN 202111376660A CN 116155771 A CN116155771 A CN 116155771A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- abnormal
- micro
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
Abstract
本申请提供了一种网络异常测试方法、装置、设备、存储介质和程序,涉及人工智能技术领域,可以应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景,包括:获取系统用例的执行过程在微服务系统中对应的服务调用链路;分别对服务调用链路中各被调用微服务进行服务类型识别;在识别到目标业务服务和待测微服务的情况下,获取并识别待测微服务在系统用例的执行过程中生成的接口日志数据,得到对应的目标业务含义信息;调用对应的目标异常注入规则,针对系统用例进行注入异常生成处理,得到网络异常测试用例;在微服务系统中,通过服务调用链路执行网络异常测试用例,得到对应的异常测试结果。本申请能够有效提高网络异常测试效率。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种网络异常测试方法、装置、设备、存储介质和程序。
背景技术
网络异常是指网络中的流量行为相对其正常行为产生偏离,该异常可能是由于外部的攻击引起的,也有可能是由于网络的不稳定造成的。在网络系统运行过程中,可以通过人为制作错误情况来测试系统对错误操作/错误报文的反应,以检查系统是否给出了清晰且充分的提示或约束,进而实现异常测试。然而,现有的异常测试方法基于人工设置及组合异常数据,指定异常类型,且需要检索测试产生的日志文件,以结合业务判断测试结果是否正确,操作繁琐,时间成本高,且效率低下。因此,需要提供一种改进的网络异常测试方案,以提高测试效率,降低测试成本。
发明内容
本申请提供了一种网络异常测试方法、装置和存储介质,可以有效提高对标题文本的语义理解,处理的准确性和全面性。
一方面,本申请提供了一种网络异常测试方法,所述方法包括:
获取系统用例的执行过程在微服务系统中对应的服务调用链路;所述系统用例为用于测试所述微服务系统的业务功能的用例;
基于所述服务调用链路中各被调用微服务的接口参数,分别对所述各被调用微服务进行服务类型识别;
在识别到所述各被调用微服务中包括目标业务服务和待测微服务的情况下,获取所述待测微服务在所述系统用例的执行过程中生成的接口日志数据;
对所述待测微服务的接口日志数据进行业务含义识别,得到对应的目标业务含义信息;
基于所述目标业务含义信息对应的目标异常注入规则,针对所述系统用例进行注入异常生成处理,得到对应的网络异常测试用例;
在所述微服务系统中,通过所述服务调用链路执行所述网络异常测试用例,得到对应的异常测试结果。
另一方面提供了一种网络异常测试装置,所述装置包括:
调用链路获取模块:用于获取系统用例的执行过程在微服务系统中对应的服务调用链路;所述系统用例为用于测试所述微服务系统的业务功能的用例;
服务类型识别模块:用于基于所述服务调用链路中各被调用微服务的接口参数,分别对所述各被调用微服务进行服务类型识别;
接口日志数据获取模块:用于在识别到所述各被调用微服务中包括目标业务服务和待测微服务的情况下,获取所述待测微服务在所述系统用例的执行过程中生成的接口日志数据;
业务含义识别模块:用于对所述待测微服务的接口日志数据进行业务含义识别,得到对应的目标业务含义信息;
注入异常生成模块:用于基于所述目标业务含义信息对应的目标异常注入规则,针对所述系统用例进行注入异常生成处理,得到对应的网络异常测试用例;
异常测试模块:用于在所述微服务系统中,通过所述服务调用链路执行所述网络异常测试用例,得到对应的异常测试结果。
另一方面提供了一种计算机设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的网络异常测试方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的网络异常测试方法。
另一方面提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的网络异常测试方法。
另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令被处理器执行时实现如上述的网络异常测试方法。
本申请提供的网络异常测试方法、装置、设备、存储介质、服务器和计算机程序产品,具有如下技术效果:
本申请通过获取系统用例的执行过程在微服务系统中对应的服务调用链路;系统用例为用于测试微服务系统的业务功能的用例;基于服务调用链路中各被调用微服务的接口参数,分别对各被调用微服务进行服务类型识别;在识别到各被调用微服务中包括目标业务服务和待测微服务的情况下,获取待测微服务在系统用例的执行过程中生成的接口日志数据;对待测微服务的接口日志数据进行业务含义识别,得到对应的目标业务含义信息;基于目标业务含义信息对应的目标异常注入规则,针对系统用例进行注入异常生成处理,得到对应的网络异常测试用例;在微服务系统中,通过服务调用链路执行网络异常测试用例,得到对应的异常测试结果。本申请能够利用功能测试的已有用例,通过服务类型识别和业务含义识别的方式自动化生成异常数据及相应的异常用例,无需重新编写基础用例,以及人工组合异常数据,有效提高用例生成效率和利用率。同时,通过预设的异常注入规则以及系统用例重放的方式进行异常测试,能够继承系统用例在功能测试时得到的测试结果分析能力,降低异常测试结果分析的复杂度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种应用环境的示意图;
图2是本申请实施例提供的一种网络异常测试方法的流程示意图;
图3是本申请实施例提供的一个测试任务创建窗口的界面示意图;
图4是本申请实施例提供的一个任务报告显示窗口的界面示意图;
图5是本申请实施例提供的一种测试系统的架构示意图;
图6是本申请实施例提供的另一种网络异常测试方法的流程示意图;
图7是本申请实施例提供的另一种网络异常测试方法的流程示意图;
图8是本申请实施例提供的一种网络异常测试方法的流程示意图;
图9是本申请实施例提供一种网络异常测试装置的框架示意图;
图10是本申请实施例提供的一种网络异常测试方法的电子设备的硬件结构框图;
图11是本申请实施例提供的一个区块链系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或子模块的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或子模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或子模块。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
异常测试:通过人为制作错误情况来测试系统对错误操作/错误报文的反应,并检查系统是否给出了清晰且充分的提示或约束。
网络异常:网络中的流量行为相对其正常行为产生偏离,可能是由于外部的攻击引起的,也有可能是由于网络的不稳定造成的。
mock:在测试当中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法,即使用各种技术手段模拟出各种需要的资源以供测试使用。
自动化测试:使用独立于待测软件的其他软件来自动执行测试、比较实际结果与预期并生成测试报告这一过程。
请参阅图1,图1是本申请实施例提供的一种应用环境的示意图,如图1所示,该应用环境可以至少包括服务器01和终端02。在实际应用中,终端01、服务器01以及终端02可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例中,服务器01可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
具体的,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。其中,人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
具体地,上述涉及的服务器可以包括实体设备,可以具体包括有网络通信子模块、处理器和存储器等等,也可以包括运行于实体设备中的软体,可以具体包括有应用程序等。
本申请实施例中,终端02可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能语音交互设备、智能家电、智能可穿戴设备、车载终端设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。
本申请实施例中,终端02可以用于向服务器01发送网络异常测试指令,以触发服务器01的网络异常测试操作,该网络异常测试指令携带有一个或多个待测微服务的标识信息和测试环境信息,标识信息可以为待测微服务名或待测微服务ID等,测试环境信息可以包括环境ID和环境类型等。终端02还可以用于向服务器01发送测试数据获取请求,接收服务器01端发送的网络异常测试结果、异常测试断言结果、异常测试报告和异常测试操作数据等。具体的,服务器01可以用于提供系统用例执行服务和网络异常测试服务,以得到系统用例执行结果、网络异常测试结果、异常测试断言结果、异常测试报告和异常测试操作数据等,并向终端02发送测试完成通知信息;并响应于终端01的测试数据获取请求,将系统用例执行结果、网络异常测试结果、异常测试断言结果、异常测试报告和异常测试操作数据等反馈至终端02。以及,服务器01还可以提供网络异常测试的数据存储服务,如提供目标知识库、系统用例执行结果、网络异常测试结果、异常测试断言结果、异常测试报告、异常测试操作数据和相关测试日志等存储服务等。具体的,测试完成通知信息可以包括但不限于网络异常测试用例的生成数量、网络测试用例的异常测试断言结果统计数据和网络异常测试任务报告的获取指示信息等。
本申请实施例中,终端可以提供人机交互界面,通过人机交互界面接收测试触发操作,终端响应于该测试触发操作在人机交互界面上显示对应的测试任务创建窗口,以接收待测微服务的标识信息和测试环境信息,响应于该标识信息和测试环境信息,终端生成对应的网络异常测试指令;以及,终端还可以通过人机交互界面显示测试完成通知信息、系统用例执行结果、网络异常测试结果、异常测试断言结果、异常测试报告和异常测试操作数据等。请参考图3,图3示出了一个测试任务创建窗口的界面示意图,测试触发操作可以为针对人机交互界面提交包括“/task/task_create_and_run”的任务创建请求地址信息,测试任务创建窗口中可以显示待测微服务名(server_name)、测试请求标识(req_id)、测试环境标识类型(env_id)和测试环境类型(env_type)等的输入选项。请参考图4,图4示出了一个任务报告显示窗口的界面示意图。
此外,可以理解的是,图1所示的仅仅是一种网络异常测试方法的应用环境,该应用环境可以包括更多或更少的节点,本申请在此不做限制。
本申请实施例涉及的应用环境,或应用环境中的终端02和服务器01等可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。分布式系统可以为区块链系统,该区块链系统可以提供上述的网络异常测试服务和数据存储服务等。
参见图11,图11是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新兴应用模式,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
以下基于上述应用环境介绍本申请的一种测试系统,请参考图5,图5示出了一种本申请实施例提供的测试系统的架构示意图。该测试系统与trace平台、mock平台和fitauto test平台间构建有依赖关系,其中,trace平台用于提供服务链路追踪等能力,mock平台提供mock测试等能力,fit auto test平台用于提供测试实现能力等。restful接口为测试系统的对外入口,将测试系统通过该接口输出测试服务能力。DB为数据库,提供网络异常测试过程中的数据存取能力。测试系统包括任务app、用例app、模调app和mock app,其中,任务app用于调度测试任务等,用例app用于自动生成网络异常测试用例,模调APP用于记录服务调用链路及其层级关系等,辅助用例生成,mock app用于进行异常数据生成处理和异常注入处理等,测试系统中的各app与各外依赖平台间建立依赖关系,协同实现网络异常测试。
以下基于上述应用环境介绍本申请的一种网络异常测试方法,应用于服务器端,本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。请参考图2,图2是本申请实施例提供的一种网络异常测试方法的流程示意图,本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,方法可以包括下述步骤。
S201:获取系统用例的执行过程在微服务系统中对应的服务调用链路。
本申请实施例中,系统用例为用于测试微服务系统的业务功能的用例,可以包括但不限于能够覆盖各种场景的黑盒用例,包括对微服务系统的请求及第一结果断言等。具体的,微服务系统为运行于微服务框架上的系统,可以包括多个微服务,系统中的各个微服务可以被独立部署,彼此之间可以是松耦合的。每个微服务可以被设置为执行一个或几个任务,每个任务代表一个业务能力,具有相应的业务功能。系统用例可以是在微服务系统或其中的微服务相关的开发过程中所使用的,以测试微服务系统或微服务的业务功能的测试用例,如用于测试业务功能是否能够正常实现等,例如动账业务场景中,系统用例可以用来测试是否能够实现支付功能。系统用例可以是在上述过程中人工编写的,也可以是基于先验知识批量自动生成的。
在实际应用中,服务调用链路表征系统用例在微服务系统中的执行过程中经过的每个微服务、顺序和层级关系。具体的,服务调用链路中包括至少两个被调用微服务,例如一个服务调用链路可以为微服务A-微服务B-微服务C,被调用微服务间是基于微服务接口进行通信。具体的,数据库中可以预存有针对微服务系统的系统用例库,可以周期性批量执行系统用例库中的部分或全部系统用例,并记录存储每个系统用例执行过程中的服务调用链路,服务调用链路对应的信息包括但不限于各被调用微服务的标识信息和调用层级关系等。测试系统可以基于trace平台的能力进行上述服务调用链路的追踪和记录,从trace平台获取系统用例对应的服务调用链路后,对其进行解析,得到相关的被调用微服务的标识信息和调用层级关系等,并对其进行记录存储,以及构建服务调用链路与系统用例间的对应关系。可以理解的,同一系统用例的不同执行过程中,可能存在不同的服务调用链路,可以分别标记同一系统用例的不同服务调用链路,例如利用版本号进行标记。在网络异常测试过程中,可以选择最新版本的服务调用链路。可以理解的,一条服务调用链路可以对应多个系统用例,即不同的系统用例可以共用同一服务调用链路。
具体实施例中,响应于终端触发的网络异常测试指令,执行上述S201。
通过预存的系统用例作为网络异常测试的基础用例,能够借用业务功能测试的原始能力,无需重复批量编写基础用例。在一些情况下,通过系统用例的批跑,预先筛选出能够执行成功且执行结果符合第一断言信息的系统用例,以确保网络异常用例的用例质量。
S203:基于服务调用链路中各被调用微服务的接口参数,分别对各被调用微服务进行服务类型识别。
本申请实施例中,可以预定义微服务系统中各微服务的服务类型,服务类型可以表征微服务所属的业务类型等,例如动账类微服务等。具体的,可以预先构建目标知识库,以存储网络异常测试过程中所需的知识,该目标知识库中预存有微服务的接口参数与服务类型的对应关系,例如以列表形式存储,基于该接口参数与服务类型的对应关系,对服务调用链路中各被调用微服务进行服务类型识别,得到各被调用微服务各自的服务类型。
S205:在识别到各被调用微服务中包括目标业务服务和待测微服务的情况下,获取待测微服务在系统用例的执行过程中生成的接口日志数据。
本申请实施例中,网络异常测试指令中携带有待测微服务的标识信息,通过遍历服务调用链路,可以确定各被调用微服务的标识信息中是否存在待测微服务的标识信息,进而确定该链路中是否存在待测微服务。在确定各被调用微服务的服务类型后,可以基于服务类型确定服务调用链路中是否存在属于目标业务类型的目标业务服务,例如判断是否存在属于动账业务类型的动账微服务等,动账微服务是指会涉及资金变动的服务。存在该目标业务服务表明当前系统用例的服务调用链路归属于该目标业务类型对应的业务场景,例如,存在动账微服务的情况下,表明对应于交易场景或财产储蓄场景等存在资金变动的业务场景。通过识别包括目标业务服务和待测微服务的服务调用链路,能够自动化的分别实现不同业务场景的网络异常测试,无需对系统用例进行场景分类,提高异常测试效率。
在实际应用中,预先记录和存储系统用例的执行过程中的日志数据,包括接口日志数据,接口日志数据是指被调用微服务在系统用例的执行过程中生成的,与被调用微服务的被调用接口相关的日志数据。具体的,可以基于trace平台记录和存储系统用例的执行过程中的日志数据。
S207:对待测微服务的接口日志数据进行业务含义识别,得到对应的目标业务含义信息。
本申请实施例中,接口日志数据中记录有待测微服务与服务调用链路中其它被调用微服务间的通信数据,包括但不限于待测微服务在系统用例执行过程中接收或发送的网络报文的报文信息等。目标知识库中可以预存有报文信息与业务含义间的对应关系。相应的,目标业务含义信息包括目标报文信息和目标报文信息对应的目标业务含义;S207可以包括:基于目标知识库中报文信息与业务含义间的对应关系,对接口日志数据进行业务含义识别,得到接口日志数据中的目标报文信息和目标报文信息对应的目标业务含义。
在实际应用中,接口日志数据中的报文信息的形式为报文字段,业务含义可以是预定义的,业务含义可以表征报文字段所属的业务子类型,举例来说,支付业务具有多种支付方式,每种支付方式可以对应一种业务含义,再如动账业务类型下,报文字段“total_fee”为金额字段,其业务含义可以为“交易金额”;业务含义还可以包括报文字段的预设字段格式。一个或多个报文字段可以组合并对应一种业务含义,通过业务含义识别,可以确定被调用接口的具体对应的业务功能。
具体实施例中,目标报文信息可以为待测微服务被调用的请求/响应串等。通过扫描接口日志数据中的日志字段,并利用目标知识库中预存的报文字段对各日志字段进行字段匹配,例如正则匹配,将匹配到的日志字段确定为目标报文字段,并基于匹配到的日志字段在目标知识库中对应的业务含义,得到目标业务含义。具体的,多个报文字段可以对应一个业务含义。
在一个实施例中,目标业务服务的业务类型为动账业务类型,相应的,对支付类的目标报文信息进行匹配,例如,可以通过正则表达式{“key”:“total_fee|(amount.*)”}来对请求/响应串进行金额字段的正则匹配,其对应的业务含义为“交易金额”,该正则表达式的含义为匹配请求/响应串中key=value中key为total_fee或者amount.*字样的键值对,其键值表示金额。
S209:基于目标业务含义信息对应的目标异常注入规则,针对系统用例进行注入异常生成处理,得到对应的网络异常测试用例。
本申请实施例中,在服务调用链路中如果包含待测微服务和目标业务服务的情况下,生成系统用例对应的异常测试用例。在该服务调用链路对应多个系统用例的情况下,即根据系统用例批跑后构建的服务调用链路和系统用例间的对应关系,确定多个系统用例共用该服务调用链路,则获取待测微服务在服务调用链路对应的各个系统用例的执行过程中生成的接口日志数据,并执行上述步骤S207和S209,针对此服务调用链路对应的系统用例和待测微服务批量生成网络异常测试用例。如此,通过解析一个服务调用链路可以生成待测微服务对应的多个网络异常测试用例,提高用例生成效率。
在实际应用中,目标知识库中可以预存有报文信息(如报文字段)和/或业务含义,与目标异常注入规则间的对应关系,相应的,在S209之前,方法可以包括:基于目标知识库中报文信息与目标异常注入规则间的对应关系,或业务含义与目标异常注入规则间的对应关系,确定目标业务含义信息对应的目标异常注入规则,即确定接口日志数据中目标报文字段或目标业务含义对应的一种或多种异常注入规则,基于该一种或多种异常注入规则针对相关的系统用例,进行注入异常生成处理,得到网络异常用例。举例来说,金额字段对应的目标异常注入规则可以包括mock篡改规则和mock传输异常注入规则,还可以包括mock重入规则和mock延迟规则。
在实际应用中,请参考图6,S209可以包括下述步骤。
S2091:基于目标异常注入规则构造目标报文信息对应的目标异常数据。
S2092:根据目标异常数据和系统用例生成网络异常测试用例。
在一些实施例中,网络异常测试用例是指正常执行的系统用例+待注入的目标异常数据。在得到目标报文信息对应的目标异常数据后,构建目标异常数据与系统用例间的关联关系,以生成网络异常测试用例。具体的,还需构建目标异常数据与目标报文信息(或目标报文信息对应的目标网络报文)间的关联关系,以在网络异常测试用例执行时进行相应的异常注入处理。通过自动化的生成异常数据,进而能够自动化生成网络异常测试用例。
在一些情况下,待注入的网络异常可以包括但不限于mock篡改规则对应的篡改异常数据和mock传输异常注入规则对应的传输异常数据等。
在一些实施例中,目标异常注入规则包括mock篡改规则。目标异常数据包括篡改异常数据。相应的,请参考图7,S2091可以包括下述步骤。
S301:在目标异常注入规则为mock篡改规则的情况下,从待测微服务的历史接口日志数据中获取目标报文信息对应的关联报文信息。
S302:基于mock篡改规则和关联报文信息构造目标报文信息对应的篡改异常数据。
具体的,mock篡改规则为用于指示生成篡改异常数据,并对目标报文信息进行数据篡改,以生成携带有篡改异常数据的目标网络报文的异常注入规则。具体的,待测微服务的历史接口日志数据可以是平台预存的,与前述接口日志数据对应的被调用接口关联的历史日志数据,如该被调用接口过往的部分或全部日志数据,或者也可以为待测微服务在执行其它系统用例的过程中生成的,与该被调用接口相关的历史日志数据。
具体的,可以基于待测微服务的标识信息、被调用接口的接口参数信息或执行任务类型信息中的至少一种,从系统(如trace平台)中预存的日志数据中筛选出待测微服务的历史接口日志数据。在获取到历史接口日志数据的情况下,可以基于目标报文信息与历史接口日志数据进行信息识别和匹配,可以采用与S207中相类似的识别和匹配方式,如正则匹配等字段匹配方式,进而从历史接口日志数据中筛选出目标报文信息对应的关联报文信息,该关联报文信息可以是与目标报文信息具有相同业务含义的报文字段,例如,字段可以为key-value形式,关联报文信息与目标报文信息中相同的报文字段是指相同的key,而字段值不同,即value不同。
具体的,在目标报文信息和关联报文信息均为报文字段的情况下,确定关联报文信息的字段值,关联报文信息的字段值与目标报文信息的字段值不同。将关联报文信息的字段值作为篡改异常数据。可以在后续的异常注入过程中,将目标网络报文中目标报文信息的字段值修改为该篡改异常数据,即修改为关联报文信息的字段值。示例性的,目标业务服务的业务类型为动账业务类型的场景下,前述的金额字段“total_fee”的字段值为总金额数值,如100,可以将该总金额数值修改为关联报文字段的总金额数值,如修改为200。
如此,通过mock篡改规则确定了需要被篡改的报文字段和所需的篡改后的值,并构建篡改异常数据与目标报文信息(或对应的目标网路报文)间的关联关系,以自动生成包括系统用例和篡改异常数据的网络异常测试用例。此外,采用系统中真实存在的字段值作为篡改异常数据,例如已有的金额数值、已有的账号或订单号(如系统中状态标记为存在的订单ID)等,能够增加篡改异常数据的真实性,进而提高相关网络异常测试的准确性。
其中,mock篡改规则包括请求篡改规则和响应篡改规则,相应的,篡改异常数据可以包括请求篡改异常数据和响应篡改异常数据等,请求异常数据为用于在网络异常测试用例执行过程中,针对目标报文信息对应的目标请求报文进行字段值篡改的异常数据。响应篡改异常数据为用于在网络异常测试用例执行过程中,针对目标报文信息对应的目标响应报文进行字段值篡改的异常数据。
在一些实施例中,目标异常注入规则包括mock传输异常注入规则,目标异常数据包括传输异常数据。相应的,S2091可以包括:在目标异常注入规则为mock传输异常注入规则的情况下,基于mock传输异常注入规则构造目标报文信息对应的传输异常数据。传输异常用于指示目标报文信息对应的目标网络报文在网络异常测试用例的执行过程中的传输方式。
具体的,mock传输异常注入规则为用于指示生成传输异常数据,并对目标报文信息对应的目标网络报文的传输参数进行修改,以修改目标网络报文的传输方式的异常注入规则。具体的,mock传输异常注入规则可以包括重入规则和响应延迟规则,相应的,传输异常数据可以包括重入异常数据和延时异常数据等,例如重入异常数据具体可以包括目标请求报文的重入次数,并与目标请求报文间构建有关联关系,延时异常数据可以包括目标响应报文的延时时长,并与目标响应报文间构建有关联关系。举例来说,通过携带有重入异常数据的网络异常测试用例,可以指示待测微服务的上游被调微服务基于重入次数重复发送目标请求报文至待测调微服务;通过携带有延时异常数据的网络异常测试用例,可以指示待测微服务的下游被调微服务基于延时时长,向待测微服务延时反馈目标响应报文。
S211:在微服务系统中,通过服务调用链路执行网络异常测试用例,得到对应的异常测试结果。
本申请实施例中,通过服务调用链路执行网络异常测试用例,在服务调用链路对应多个系统用例,进而对应多个网络异常测试用例的情况下,可以依次执行各网络异常测试用例,以得到各自的异常测试结果。
在实际应用中,网络异常测试用例是指正常执行的系统用例+待注入的目标异常数据。相应的,S211可以包括下述步骤。
S2111:通过服务调用链路重新执行系统用例,在系统用例的执行过程中,服务调用链路中待测微服务的网络报文、以及与待测微服务相邻的被调用微服务的网络报文均经由预设mock模块转发。
S2112:在系统用例的执行过程中,利用预设mock模块针对目标报文信息对应的目标网络报文进行目标异常数据的异常注入处理,得到异常测试结果。
在一些实施例中,系统用例和目标异常数据间构建有关联关系,以形网络异常测试用例,且目标异常注入规则与网络异常测试用例间也构建有关联关系。通过服务调用链路依次重放对应的系统用例,并利用关联的目标异常注入规则将目标异常数据注入系统用例的重放过程。具体的,待测微服务与其上游被调用微服务和下游被调用微服务间的通信报文均需经由预设mock模块接收和发送。在一些情况下,预设mock模块仅转发待测微服务与其上下游被调微服务间的通信报文,在另一些情况下,服务调用链中的相邻被调用微服务间的通信报文均需经由预设mock模块转发,即每一个从微服务A发送至微服务B的请求或响应都会首先经过预设mock模块。该预设mock模块可以运行于前述的mock app中,并依赖mock平台的外部能力。
具体的,在目标异常注入规则为mock篡改规则的情况下,基于mock篡改规则,根据篡改异常数据对经过待测微服务的目标网络报文中的目标报文信息进行篡改,以实现异常注入。具体的,可以将目标报文信息的值修改为篡改异常数据,该目标报文信息可以为请求串或响应串中的目标报文字段,篡改异常数据可以为系统中存在的历史真实值,如前述的“total_fee”和“amount”等,将其字段值修改为历史接口日志数据中存在的“total_fee”值和“amount”值。
具体的,在mock篡改规则为请求篡改规则的情况下,通过预设mock模块接收上游被调微服务向待测微服务发送的目标请求报文,并解析其中的请求串,找到待篡改的目标报文字段,将其字段值修改为篡改异常数据对应的值,并拼接成新的请求串,以生成携带有篡改异常数据的目标请求报文,并发送至待测微服务,并通过预设mock模块将待测微服务响应于该异常的目标请求报文反馈的目标响应报文发送至上游被调微服务。或者,也可以通过预设mock模块接收待测微服务向下游被调微服务发送的目标请求报文,并解析其中的请求串,找到待篡改的目标报文字段,将其字段值修改为篡改异常数据对应的值,并拼接成新的请求串,以生成携带有篡改异常数据的目标请求报文,并发送至下游被调微服务,并通过预设mock模块将下游被调微服务响应于该异常的目标请求报文反馈的目标响应报文发送至待测微服务。
具体的,在mock篡改规则为响应篡改规则的情况下,通过预设mock模块接收下游被调微服务向待测微服务发送的目标响应报文,并解析其中的响应串,找到待篡改的目标报文字段,将其字段值修改为篡改异常数据对应的值,并拼接成新的响应串,以生成携带有篡改异常数据的目标响应报文,并发送至待测微服务。或者,也可以通过预设mock模块接收待测微服务向下游被调微服务发送的目标响应报文,并解析其中的响应串,找到待篡改的目标报文字段,将其字段值修改为篡改异常数据对应的值,并拼接成新的响应串,以生成携带有篡改异常数据的目标响应报文,并发送至下游被调微服务。
在动账业务类型或支付等场景下,篡改的目标报文字段可以包括金额字段、交易对象数据字段、支付单号字段和签名字段等,相应的篡改异常数据可以为支付金额、交易对象数据、支付单号和签名信息等。
通过上述方式实现携带篡改异常数据的网络异常测试用例的执行,以得到相应的异常测试结果。
具体的,在目标异常注入规则为mock传输异常注入规则的情况下,基于mock传输异常注入规则,根据篡改异常数据对经过待测微服务的目标网络报文的传输参数进行篡改,以实现异常注入。
具体的,在mock传输异常注入规则为重入规则的情况下,传输异常数据包括重入异常数据,通过预设mock模块接收上游被调微服务向待测微服务发送的目标请求报文,并基于重入异常数据修改目标请求报文的发送次数,例如2次,即将上游被调微服务发送的目标请求报文分别请求至待测微服务2次,并通过预设mock模块将待测微服务响应于该重复发送的目标请求报文反馈的各目标响应报文发送至上游被调微服务。或者,通过预设mock模块接收待测微服务向下游被调微服务发送的目标请求报文,并基于重入异常数据修改目标请求报文的发送次数,例如2次,即将待测微服务发送的目标请求报文分别请求至下游被调微服务2次,并通过预设mock模块将下游被调微服务响应于该重复发送的目标请求报文反馈的各目标响应报文发送至待测微服务。
具体的,在mock传输异常注入规则为响应延迟规则的情况下,传输异常数据包括延时异常数据,通过预设mock模块接收待测微服务响应于上游被调微服务发送的请求报文反馈的目标响应报文后,基于延时异常数据延时预设时长后再将目标响应报文反馈至上游被调微服务,并通过预设mock模块接收上游被调微服务针对该延时异常的目标响应报文的响应结果。或者,通过预设mock模块接收下游被调微服务响应于待测微服务发送的请求报文反馈的目标响应报文后,基于延时异常数据延时预设时长后再将目标响应报文反馈至待测微服务,并通过预设mock模块接收待测微服务针对该延时异常的目标响应报文的响应结果。
本申请实施例中,在S211之后,方法还可以包括测试结果断言步骤S213:基于系统用例对应的第一断言信息和目标异常注入规则对应的第二断言信息,对异常测试结果进行断言分析,得到网络异常测试用例对应的异常测试断言结果。
在实际应用中,第一断言信息与系统用例间具有关联关系,在一些情况下,系统用例可以包括发送至微服务系统内的请求对应的第一断言信息,第一断言信息为请求对应的结果断言。第一断言信息对应的用例断言可以包括多种类型,包括但不限于校验返回值、校验返回串中的关键字段或者校验数据库等等。第二断言信息与目标异常注入规则间具有关联关系。第二断言信息对应的断言可以包括校验错误码或校验返回串的关键字段等。
在实际应用中,异常测试结果包括系统用例执行结果和异常反馈信息中的至少之一。系统用例执行结果是指系统用例针对服务调用链路重放所得到的用例结果;异常反馈信息是指系统用例重放过程中,对目标异常注入数据进行注入处理后,所得到的针对目标异常注入数据所反馈的信息,例如篡改异常数据的异常反馈信息可以为微服务针对接收到的篡改的目标请求报文或目标响应报文的反馈,或者为微服务针对接收到重入的目标请求报文或延时的目标响应报文的反馈。
相应的,S213可以包括下述步骤。
S2131:在异常测试结果包括系统用例执行结果的情况下,基于第一断言信息对系统用例执行结果进行执行状态校验,得到系统用例的执行状态结果。
在实际应用中,系统用例的执行状态结果可以包括执行成功和执行失败。执行成功则表示系统用例执行结果在第一断言信息的断言之中,如果执行失败则表示统用例执行结果不在第一断言信息的断言中。
S2132:在异常测试结果包括异常反馈信息的情况下,基于第二断言信息对异常反馈信息进行反馈信息校验,得到网络异常测试用例对应的异常校验结果。
在实际应用中,异常反馈信息可以包括但不限于返回串或返回错误码等。第二断言信息对应的断言可以包括校验错误码或校验返回串的关键字段等。在存在异常反馈信息的情况下,如针对篡改后的目标请求报文反馈的请求错误码,则基于对应的断言进行反馈信息校验,判断反馈的请求错误码与请求篡改规则对应的校验错误码是否一致,一致则异常校验结果为与第二断言信息相匹配,即在断言之中,若反馈的请求错误码不在预设的错误码范围内,则异常校验结果为与第二断言信息不匹配,即不在断言之中。具体的,校验错误码是指根据异常注入规则的类型预设的可能的错误码,例如mock重入规则的校验错误码为1,mock延迟规则的校验错误码为2,mock篡改异常的校验错误码为3。
在前述的动账业务类型或支付等场景下,可以通过上述的第二断言信息进行校验,以防止对象身份仿冒、防信息篡改、防重复扣款以及确保多方数据一致性等。
在实际应用中,在命中mock的情况下,即触发了目标异常数据的生成,并在系统用例执行过程中触发了目标异常数据的注入处理,可以结合执行状态结果和异常反馈信息判断网络异常测试用例的异常测试断言结果。
S2133:若执行状态结果为执行失败,且异常校验结果为异常反馈信息与第二断言信息相匹配,确定异常测试断言结果为符合测试预期。
具体的,若系统用例执行失败,且异常反馈信息与第二断言信息相匹配,如反馈的错误码与对应的校验错误码一致或在预设范围之内,则异常测试断言结果为符合测试预期;若系统用例执行失败,且异常反馈信息与第二断言信息不匹配,如错误码与对应的校验错误码不一致或不在预设范围之内,则异常测试断言结果为存在风险;若系统用例执行成功,则表示异常测试断言结果不符合预期。
在一些情况下,可能未命中mock,即未触发目标异常数据的生成,或者生成了目标异常数据,但在系统用例执行过程中未触发了目标异常数据的注入处理,如未匹配到目标报文信息或未识别到业务含义等。相应的,在未命中mock的情况下,仅得到系统用例执行结果,若系统用例执行成功则表示异常测试断言结果符合预期。系统用例执行失败则表示异常测试断言结果不符合预期。具体的,在异常测试断言结果不符合预期或存在风险的情况下,需进行结果告警。
在一个实施例中,请参考图,以动账业务场景为例,网络异常测试的流程为,首先执行系统用例批跑,如btv全量批跑;然后获取服务调用链,即从trace平台获取trace数据;判断服务调用链中是否存在动账接口,即判断是否存目标业务服务;若是,判断是否存在待测微服务;若是,则分析待测微服务的接口日志数据,进而生成网络异常测试用例;并设置mock,调用mock平台的能力,以关联目标异常数据和目标异常注入规则;重放系统用例,并在重放过程中利用预设mock模块注入目标异常数据,得到测试结果;基于预设的断言信息分析测试结果,以得到异常测试断言结果,并对其进行汇总分析,得到异常测试报告。
基于上述方案,本申请能够针对微服务系统中某个特定的被测对象或者被测组件,根据已有场景的系统用例的执行情况,自动的挑选出正常执行时执行成功的用例,作为基础用例以派生出网络异常测试用例。以避免用例的重复编写,提高用例生成效率。以及,能够根据已有的历史接口日志分析出接口参数字段的类型及业务含义,以针对每个被挑选出的系统用例构造出相应的异常数据,并通过mock方式自动构建出异常测试场景,以自动生成异常测试用例,在系统用例重放时,自动注入目标异常数据,且自动断言测试结果。在此过程中完全不需要人工参与,极大地减少人工成本,提高测试化程度。
本申请实施例还提供了一种网络异常测试装置800,如图9所示,图9示出了本申请实施例提供的一种网络异常测试装置的结构示意图,装置可以包括下述模块。
调用链路获取模块10:用于获取系统用例的执行过程在微服务系统中对应的服务调用链路;系统用例为用于测试微服务系统的业务功能的用例。
服务类型识别模块20:用于基于服务调用链路中各被调用微服务的接口参数,分别对各被调用微服务进行服务类型识别。
接口日志数据获取模块30:用于在识别到各被调用微服务中可以包括目标业务服务和待测微服务的情况下,获取待测微服务在系统用例的执行过程中生成的接口日志数据。
业务含义识别模块40:用于对待测微服务的接口日志数据进行业务含义识别,得到对应的目标业务含义信息。
注入异常生成模块50:用于基于目标业务含义信息对应的目标异常注入规则,针对系统用例进行注入异常生成处理,得到对应的网络异常测试用例。
异常测试模块60:用于在微服务系统中,通过服务调用链路执行网络异常测试用例,得到对应的异常测试结果。
在一些实施例中,接口日志数据包括待测微服务在系统用例执行过程中接收或发送的网络报文的报文信息;目标业务含义信息包括目标报文信息和目标报文信息对应的目标业务含义。业务含义识别模块40可以具体用于:基于目标知识库中报文信息与业务含义间的对应关系,对接口日志数据进行业务含义识别,得到接口日志数据中的目标报文信息和目标报文信息对应的目标业务含义。
在一些实施例中,注入异常生成模块50可以包括下述子模块。
异常数据构造子模块:用于基于目标异常注入规则构造目标报文信息对应的目标异常数据。
测试用例生成子模块:用于根据目标异常数据和系统用例生成网络异常测试用例。
在一些实施例中,异常测试模块60可以包括下述子模块。
系统用例执行子模块:用于通过服务调用链路重新执行系统用例,在系统用例的执行过程中,服务调用链路中待测微服务的网络报文、以及与待测微服务相邻的被调用微服务的网络报文均经由预设mock模块转发。
异常注入处理子模块:用于在系统用例的执行过程中,利用预设mock模块针对目标报文信息对应的目标网络报文进行目标异常数据的异常注入处理,得到异常测试结果。
在一些实施例中,目标异常注入规则可以包括mock篡改规则,目标异常数据可以包括篡改异常数据。异常数据构造单元可以包括下述单元。
关联报文信息获取单元:用于在目标异常注入规则为mock篡改规则的情况下,从待测微服务的历史接口日志数据中获取目标报文信息对应的关联报文信息。
篡改异常构造单元:用于基于mock篡改规则和关联报文信息构造目标报文信息对应的篡改异常数据。
在一些实施例中,篡改异常构造单元可以具体用于:从微服务系统的历史日志文件中获取目标篡改字段对应的历史字段值,历史字段值与目标篡改字段的字段值不同;以及将目标篡改字段对应的历史字段值作为篡改异常数据。
在一些实施例中,目标异常注入规则可以包括mock传输异常注入规则,目标异常数据可以包括传输异常数据。异常数据构造子模块可以具体用于:在目标异常注入规则为mock传输异常注入规则的情况下,基于mock传输异常注入规则构造目标报文信息对应的传输异常数据;传输异常用于指示目标报文信息对应的目标网络报文在网络异常测试用例的执行过程中的传输方式。
在一些实施例中,装置还可以包括测试断言模块:用于在通过服务调用链路执行网络异常测试用例,得到对应的异常测试结果之后,基于系统用例对应的第一断言信息和目标异常注入规则对应的第二断言信息,对异常测试结果进行断言分析,得到网络异常测试用例对应的异常测试断言结果。
在一些实施例中,异常测试结果可以包括系统用例执行结果和异常反馈信息中的至少之一。测试断言模块可以包括下述子模块。
执行状态校验子模块:用于在异常测试结果可以包括系统用例执行结果的情况下,基于第一断言信息对系统用例执行结果进行执行状态校验,得到系统用例的执行状态结果。
反馈信息校验子模块:用于在异常测试结果包括异常反馈信息的情况下,基于第二断言信息对异常反馈信息进行反馈信息校验,得到网络异常测试用例对应的异常校验结果。
断言结果确定子模块:用于若执行状态结果为执行,失败且异常校验结果为异常反馈信息与第二断言信息相匹配,确定异常测试断言结果为符合测试预期。
在一些实施例中,装置还可以包括异常注入规则确定模块:用于在基于目标业务含义信息对应的目标异常注入规则,针对系统用例进行注入异常生成处理,得到对应的网络异常测试用例之前,基于目标知识库中报文信息与目标异常注入规则间的对应关系,或业务含义与目标异常注入规则间的对应关系,确定目标业务含义信息对应的目标异常注入规则。
需要说明的是,上述装置实施例与方法实施例基于相同的实施方式。
本申请实施例提供了一种网络异常测试设备,该识别设备可以为终端或服务器,该网络异常测试设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的网络异常测试方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置等电子设备中执行。图10是本申请实施例提供的一种网络异常测试方法的电子设备的硬件结构框图。如图10所示,该电子设备900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)910(处理器910可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器930,一个或一个以上存储应用程序923或数据922的存储介质920(例如一个或一个以上海量存储设备)。其中,存储器930和存储介质920可以是短暂存储或持久存储。存储在存储介质920的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器910可以设置为与存储介质920通信,在电子设备900上执行存储介质920中的一系列指令操作。电子设备900还可以包括一个或一个以上电源960,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口940,和/或,一个或一个以上操作系统921,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口940可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备900的通信供应商提供的无线网络。在一个实例中,输入输出接口940包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口940可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备900还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
本申请的实施例还提供了一种计算机可读存储介质,存储介质可设置于电子设备之中以保存用于实现方法实施例中一种网络异常测试方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的网络异常测试方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
由上述本申请提供的网络异常测试方法、装置、设备、服务器、终端存储介质和程序产品的实施例可见,本申请通过获取系统用例的执行过程在微服务系统中对应的服务调用链路;系统用例为用于测试微服务系统的业务功能的用例;基于服务调用链路中各被调用微服务的接口参数,分别对各被调用微服务进行服务类型识别;在识别到各被调用微服务中包括目标业务服务和待测微服务的情况下,获取待测微服务在系统用例的执行过程中生成的接口日志数据;对待测微服务的接口日志数据进行业务含义识别,得到对应的目标业务含义信息;基于目标业务含义信息对应的目标异常注入规则,针对系统用例进行注入异常生成处理,得到对应的网络异常测试用例;在微服务系统中,通过服务调用链路执行网络异常测试用例,得到对应的异常测试结果。本申请能够利用功能测试的已有用例,通过服务类型识别和业务含义识别的方式自动化生成异常数据及相应的异常用例,无需重新编写基础用例,以及人工组合异常数据,大大提高用例生成效率和利用率。同时,通过预设的异常注入规则以及系统用例重放的方式进行异常测试,能够继承系统用例在功能测试时得到的测试结果分析能力,降低异常测试结果分析的复杂度。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种网络异常测试方法,其特征在于,所述方法包括:
获取系统用例的执行过程在微服务系统中对应的服务调用链路;所述系统用例为用于测试所述微服务系统的业务功能的用例;
基于所述服务调用链路中各被调用微服务的接口参数,分别对所述各被调用微服务进行服务类型识别;
在识别到所述各被调用微服务中包括目标业务服务和待测微服务的情况下,获取所述待测微服务在所述系统用例的执行过程中生成的接口日志数据;
对所述待测微服务的接口日志数据进行业务含义识别,得到对应的目标业务含义信息;
基于所述目标业务含义信息对应的目标异常注入规则,针对所述系统用例进行注入异常生成处理,得到对应的网络异常测试用例;
在所述微服务系统中,通过所述服务调用链路执行所述网络异常测试用例,得到对应的异常测试结果。
2.根据权利要求1所述的方法,其特征在于,所述接口日志数据包括所述待测微服务在所述系统用例执行过程中接收或发送的网络报文的报文信息;所述目标业务含义信息包括目标报文信息和所述目标报文信息对应的目标业务含义;
所述对所述待测微服务的接口日志数据进行业务含义识别,得到对应的目标业务含义信息包括:
基于目标知识库中报文信息与业务含义间的对应关系,对所述接口日志数据进行业务含义识别,得到所述接口日志数据中的目标报文信息和所述目标报文信息对应的目标业务含义。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标业务含义信息对应的目标异常注入规则,针对所述系统用例进行注入异常生成处理,得到对应的网络异常测试用例包括:
基于所述目标异常注入规则构造所述目标报文信息对应的目标异常数据;
根据所述目标异常数据和所述系统用例生成所述网络异常测试用例。
4.根据权利要求3所述的方法,其特征在于,所述在所述微服务系统中,通过所述服务调用链路执行所述网络异常测试用例,得到对应的异常测试结果包括:
通过所述服务调用链路重新执行所述系统用例,在所述系统用例的执行过程中,所述服务调用链路中所述待测微服务的网络报文、以及与所述待测微服务相邻的被调用微服务的网络报文均经由预设mock模块转发;
在所述系统用例的执行过程中,利用所述预设mock模块针对所述目标报文信息对应的目标网络报文进行所述目标异常数据的异常注入处理,得到所述异常测试结果。
5.根据权利要求3所述的方法,其特征在于,所述目标异常注入规则包括mock篡改规则;所述目标异常数据包括篡改异常数据;所述基于所述目标异常注入规则构造所述目标报文信息对应的目标异常数据包括:
在所述目标异常注入规则为mock篡改规则的情况下,从所述待测微服务的历史接口日志数据中获取所述目标报文信息对应的关联报文信息;
基于所述mock篡改规则和所述关联报文信息构造所述目标报文信息对应的篡改异常数据。
6.根据权利要求3所述的方法,其特征在于,所述目标异常注入规则包括mock传输异常注入规则,所述目标异常数据包括传输异常数据;所述基于所述目标异常注入规则构造所述目标报文信息对应的目标异常数据包括:
在所述目标异常注入规则为mock传输异常注入规则的情况下,基于所述mock传输异常注入规则构造所述目标报文信息对应的传输异常数据;所述传输异常用于指示所述目标报文信息对应的目标网络报文在所述网络异常测试用例的执行过程中的传输方式。
7.根据权利要求1-6中任一项所述的方法,其特征在于,在所述通过所述服务调用链路执行所述网络异常测试用例,得到对应的异常测试结果之后,所述方法还包括:
基于所述系统用例对应的第一断言信息和所述目标异常注入规则对应的第二断言信息,对所述异常测试结果进行断言分析,得到所述网络异常测试用例对应的异常测试断言结果。
8.根据权利要求7所述的方法,其特征在于,所述异常测试结果包括所述系统用例执行结果和异常反馈信息中的至少之一;所述基于所述系统用例对应的第一断言信息和所述目标异常注入规则对应的第二断言信息,对所述异常测试结果进行断言分析,得到所述网络异常测试用例对应的异常测试断言结果包括:
在所述异常测试结果包括所述系统用例执行结果的情况下,基于所述第一断言信息对所述系统用例执行结果进行执行状态校验,得到所述系统用例的执行状态结果;
在所述异常测试结果包括所述异常反馈信息的情况下,基于所述第二断言信息对所述异常反馈信息进行反馈信息校验,得到所述网络异常测试用例对应的异常校验结果;
若所述执行状态结果为执行失败,且所述异常校验结果为所述异常反馈信息与所述第二断言信息相匹配,确定所述异常测试断言结果为符合测试预期。
9.根据权利要求1-6中任一项所述的方法,其特征在于,在所述基于所述目标业务含义信息对应的目标异常注入规则,针对所述系统用例进行注入异常生成处理,得到对应的网络异常测试用例之前,所述方法还包括:
基于目标知识库中报文信息与目标异常注入规则间的对应关系,或业务含义与目标异常注入规则间的对应关系,确定所述目标业务含义信息对应的目标异常注入规则。
10.一种网络异常测试装置,其特征在于,所述装置包括:
调用链路获取模块:用于获取系统用例的执行过程在微服务系统中对应的服务调用链路;所述系统用例为用于测试所述微服务系统的业务功能的用例;
服务类型识别模块:用于基于所述服务调用链路中各被调用微服务的接口参数,分别对所述各被调用微服务进行服务类型识别;
接口日志数据获取模块:用于在识别到所述各被调用微服务中包括目标业务服务和待测微服务的情况下,获取所述待测微服务在所述系统用例的执行过程中生成的接口日志数据;
业务含义识别模块:用于对所述待测微服务的接口日志数据进行业务含义识别,得到对应的目标业务含义信息;
注入异常生成模块:用于基于所述目标业务含义信息对应的目标异常注入规则,针对所述系统用例进行注入异常生成处理,得到对应的网络异常测试用例;
异常测试模块:用于在所述微服务系统中,通过所述服务调用链路执行所述网络异常测试用例,得到对应的异常测试结果。
11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-9中任一项所述的网络异常测试方法。
12.一种计算机设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-9中任一项所述的网络异常测试方法。
13.一种计算机程序产品或计算机程序,其特征在于,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1-9中任一项所述的网络异常测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111376660.6A CN116155771A (zh) | 2021-11-19 | 2021-11-19 | 网络异常测试方法、装置、设备、存储介质和程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111376660.6A CN116155771A (zh) | 2021-11-19 | 2021-11-19 | 网络异常测试方法、装置、设备、存储介质和程序 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116155771A true CN116155771A (zh) | 2023-05-23 |
Family
ID=86351139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111376660.6A Pending CN116155771A (zh) | 2021-11-19 | 2021-11-19 | 网络异常测试方法、装置、设备、存储介质和程序 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116155771A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230244593A1 (en) * | 2022-01-28 | 2023-08-03 | Dell Products L.P. | Dynamic analysis of rest api testing in microservice architecture |
CN116882724A (zh) * | 2023-07-13 | 2023-10-13 | 北京优特捷信息技术有限公司 | 一种业务流程优化方案的生成方法、装置、设备及介质 |
CN117194176A (zh) * | 2023-11-03 | 2023-12-08 | 中国电子科技集团公司第十五研究所 | 非侵入式运行监测方法、装置、电子设备及存储介质 |
CN117435507A (zh) * | 2023-12-20 | 2024-01-23 | 天津华来科技股份有限公司 | 自适应通用退避测试方法及系统 |
CN117520210A (zh) * | 2024-01-05 | 2024-02-06 | 芯瞳半导体技术(山东)有限公司 | 系统软件测试方法、目标机器及远程测试中控机 |
-
2021
- 2021-11-19 CN CN202111376660.6A patent/CN116155771A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230244593A1 (en) * | 2022-01-28 | 2023-08-03 | Dell Products L.P. | Dynamic analysis of rest api testing in microservice architecture |
US11954017B2 (en) * | 2022-01-28 | 2024-04-09 | Dell Products L.P. | Dynamic analysis of rest API testing in microservice architecture |
CN116882724A (zh) * | 2023-07-13 | 2023-10-13 | 北京优特捷信息技术有限公司 | 一种业务流程优化方案的生成方法、装置、设备及介质 |
CN117194176A (zh) * | 2023-11-03 | 2023-12-08 | 中国电子科技集团公司第十五研究所 | 非侵入式运行监测方法、装置、电子设备及存储介质 |
CN117435507A (zh) * | 2023-12-20 | 2024-01-23 | 天津华来科技股份有限公司 | 自适应通用退避测试方法及系统 |
CN117520210A (zh) * | 2024-01-05 | 2024-02-06 | 芯瞳半导体技术(山东)有限公司 | 系统软件测试方法、目标机器及远程测试中控机 |
CN117520210B (zh) * | 2024-01-05 | 2024-04-16 | 芯瞳半导体技术(山东)有限公司 | 系统软件测试方法、目标机器及远程测试中控机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116155771A (zh) | 网络异常测试方法、装置、设备、存储介质和程序 | |
CN112073269B (zh) | 区块链网络测试方法、装置、服务器及存储介质 | |
CN111949531B (zh) | 区块链网络的测试方法、装置、介质及电子设备 | |
CN112506747B (zh) | 一种业务进程监控方法、装置、电子设备及存储介质 | |
JP2012150805A (ja) | システムアプリケーション処理に関連する詐欺を検出するシステムおよび方法 | |
CN111639309B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN111694743A (zh) | 业务系统的检测方法及装置 | |
CN112527912A (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
CN112860569A (zh) | 一种自动化测试方法、装置、电子设备和存储介质 | |
CN107168844B (zh) | 一种性能监控的方法及装置 | |
CN111782551A (zh) | 针对区块链项目的测试方法、装置及计算机设备 | |
Sun et al. | Who touched my mission: Towards probabilistic mission impact assessment | |
Berger et al. | Does my bft protocol implementation scale? | |
CN110598419A (zh) | 一种区块链客户端漏洞挖掘方法、装置、设备及存储介质 | |
CN113129002A (zh) | 一种数据处理方法以及设备 | |
US11368554B2 (en) | Systems and methods for regulating service behavior | |
CN111917729A (zh) | 动态注入测试方法及装置、相关设备 | |
CN113011907A (zh) | 数据处理方法、装置、存储介质及设备 | |
CN110858211B (zh) | 数据存储方法、装置及系统、存储介质 | |
WO2023273832A1 (zh) | 数据验证的方法和装置 | |
CN112015826B (zh) | 基于区块链的智能合约安全性检测方法及相关设备 | |
CN115687064A (zh) | 基于区块链的智能合约测试方法及相关设备 | |
CN112926981B (zh) | 用于区块链的交易信息处理方法、装置、介质及电子设备 | |
Sakshi et al. | A survey on blockchain based IoT forensic evidence preservation: research trends and current challenges | |
CN113469811A (zh) | 区块链交易处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |