CN111290965A - 一种测试方法、装置、计算机设备和存储介质 - Google Patents
一种测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111290965A CN111290965A CN202010153666.6A CN202010153666A CN111290965A CN 111290965 A CN111290965 A CN 111290965A CN 202010153666 A CN202010153666 A CN 202010153666A CN 111290965 A CN111290965 A CN 111290965A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- sub
- request packet
- packet
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种测试方法、装置、计算机设备和存储介质,可确定目标服务中的目标子服务,该目标服务由分别提供各子服务的服务进程共同配合实现;获取目标子服务对应的目标服务进程的测试请求包,测试请求包被封装为上行数据包,测试请求包包括目标服务进程的进程查询信息,及用于调用目标服务进程实现目标子服务的进程调用信息;向服务器发送测试请求包,以使服务器基于测试请求包调用目标服务进程完成目标子服务,并基于服务结果生成下行数据包形式的响应包;基于服务器发送的响应包对目标子服务的性能进行分析,由此,实现了对服务中子服务的测试,在服务出现性能瓶颈时,可确定需优化的子服务,提升优化效率和服务器侧开发人员的开发效率。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种测试方法、装置、计算机设备和存储介质。
背景技术
目前,很多用户在终端侧客户端的操作,需要对应的服务端提供的服务才可以实现,以网络游戏(Online Game)中的MMORPG(Multiplayer Online Role-PlayingGame,大型多人在线角色扮演游戏)为例,MMORPG中一个复杂的客户端请求,在服务器中一般对应复杂的服务,这种复杂的服务由多种子服务组成,各子服务由对应的服务进程实现,也就是说客户端一个复杂的客户端请求经常需要多个服务进程间的共同参与。
对于这种多个子服务构成的复杂服务,当整个复杂服务的处理时间太长时,就会影响用户体验,参考图1所示的测试方案,相关测试中,测试人员基于对终端上的客户端的操作向服务器发送服务请求,接收服务器反馈的结果,这种测试方式只能对服务器侧的整个服务进行测试,当出现性能瓶颈时,无法分析瓶颈由哪个子服务造成,服务的优化需要较长的时间,不利于服务器侧开发人员的开发。
发明内容
本发明实施例提供一种测试方法、装置、计算机设备和存储介质,可以测对组成服务的子服务进行单独的测试,有利于降低优化服务所需时间以及提升服务器侧开发人员的开发效率。
本发明实施例提供一种测试方法,该方法包括:
确定组成目标服务的至少两个子服务中,待测试的目标子服务,其中,所述目标服务为服务器向终端提供的服务,所述目标服务由分别提供各子服务的服务进程共同配合实现;
获取所述目标子服务对应的目标服务进程的测试请求包,其中,所述测试请求包被封装为上行数据包的形式,所述测试请求包包括:用于确定所述目标服务进程的进程查询信息,以及用于调用所述目标服务进程实现所述目标子服务的进程调用信息;
向所述服务器发送所述测试请求包,以使所述服务器基于所述进程查询信息确定所述目标服务进程,基于所述进程调用信息调用所述目标服务进程完成所述目标子服务,并基于所述目标服务进程得到的服务结果生成响应包,其中,所述响应包被封装为下行数据包的形式;
接收所述服务器发送的响应包,基于所述响应包对所述目标子服务的性能进行分析。
本发明实施例还提供一种测试方法,该方法包括:
获取测试终端发送的测试请求包,解析所述测试请求包得到所述测试请求包的解析结果,其中,所述测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现对应的目标子服务的进程调用信息,所述目标子服务为组成目标服务的至少两个子服务之一,所述目标服务由分别提供各子服务的服务进程共同配合实现;
基于所述进程调用信息,调用所述进程查询信息指示的目标服务进程实现所述目标子服务;
获取所述目标服务进程的服务结果,基于所述服务结果生成下行数据包形式的响应包;
向所述测试终端发送所述响应包。
本发明实施例还提供一种测试装置,该装置包括:
目标确定单元,用于确定组成目标服务的至少两个子服务中,待测试的目标子服务,其中,所述目标服务为服务器向终端提供的服务,所述目标服务由分别提供各子服务的服务进程共同配合实现;
第一测试包获取单元,获取所述目标子服务对应的目标服务进程的测试请求包,其中,所述测试请求包被封装为上行数据包的形式,所述测试请求包包括:用于确定所述目标服务进程的进程查询信息,以及用于调用所述目标服务进程实现所述目标子服务的进程调用信息;
测试包发送单元,用于向所述服务器发送所述测试请求包,以使所述服务器基于所述进程查询信息确定所述目标服务进程,基于所述进程调用信息调用所述目标服务进程完成所述目标子服务,并基于所述目标服务进程得到的服务结果生成响应包,其中,所述响应包被封装为下行数据包的形式;
分析单元,用于接收所述服务器发送的响应包,基于所述响应包对所述目标子服务的性能进行分析。
本发明实施例还提供一种测试装置,该装置包括:
第二测试包获取单元,用于获取测试终端发送的测试请求包,解析所述测试请求包得到所述测试请求包的解析结果,其中,所述测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现对应的目标子服务的进程调用信息,所述目标子服务为组成目标服务的至少两个子服务之一,所述目标服务由分别提供各子服务的服务进程共同配合实现;
调用单元,用于基于所述进程调用信息,调用所述进程查询信息指示的目标服务进程实现所述目标子服务;
响应包获取单元,用于获取所述目标服务进程的服务结果,基于所述服务结果生成下行数据包形式的响应包;
响应包发送单元,用于向所述测试终端发送所述响应包。
本发明实施例还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上所述测试方法的步骤。
本发明实施例还提供一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述测试方法的步骤。
本发明实施例提供了一种测试方法、装置、计算机设备和存储介质,可以确定组成目标服务的至少两个子服务中,待测试的目标子服务,该目标服务由分别提供各子服务的服务进程共同配合实现;确定目标子服务后,本实施例可以获取目标子服务对应的目标服务进程的测试请求包,该测试请求包被封装为上行数据包的形式,所以该测试请求包在终端和服务器之间的传输可以使用终端和服务器现有的通信逻辑,无需修改终端和服务器之间的通信逻辑,避免增加额外的开发工作量,该测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现目标子服务的进程调用信息;由此,通过测试请求包在终端侧可以指定单个子服务作为测试对象,接着,通过向服务器发送测试请求包,可以使得服务器基于进程查询信息确定目标服务进程,基于进程调用信息调用目标服务进程完成目标子服务,并基于服务结果生成下行数据包形式的响应包;最终实现对服务中的子服务的独立测试,鉴于终端可以获取各个子服务对应的响应包,所以基于响应包可以对各子服务的性能分别进行分析,有利于在服务出现性能瓶颈时,快速确定需要优化的子服务,提升服务的优化效率和服务器侧开发人员的开发效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术中的测试方案的测试流程示意图;
图2a是本发明实施例提供的测试方法的场景示意图;
图2b是本发明实施例提供的一种测试方法的流程图;
图3是本发明实施例提供的另一种测试方法的流程图;
图4a是本发明实施例提供的另一种测试方法的流程图;
图4b是本发明实施例提供的另一种测试方法的流程图;
图5是本发明实施例提供的一种测试装置的结构示意图;
图6是本发明实施例提供的另一种测试装置的结构示意图;
图7是本发明实施例提供的一种计算机设备的结构示意图;
图8是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图;
图9是本发明实施例提供的区块结构的一个可选的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种测试方法、装置、计算机设备和存储介质。具体地,本实施例提供适用于测试装置的测试方法(为区别,称为第一测试装置和第一测试方法),该第一测试装置可以集成在第一计算机设备中,该第一计算机设备可以为具有显示模块的终端等设备,例如可以为手机、平板电脑、笔记本电脑、台式电脑等。
本发明还提供适用于另一种测试装置的测试方法(为区别,称为第二测试装置和第二测试方法),该第二测试装置可以集成在第二计算机设备中,该第二计算机设备可以为服务器等设备,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
比如,第一测试装置可以集成终端中,第二测试装置可以集成在服务器中。
本发明实施例将以第一计算机设备为终端,第二计算机设备为服务器为例,来介绍测试方法。
参考图2a,本发明实施例提供的测试系统包括终端10和服务器20等;终端10与服务器20之间通过网络连接,比如,通过有线或无线网络连接等,其中,第一测试装置集成在终端中,比如,以客户端的形式集成在终端中。
其中,终端10,可以用于确定组成目标服务的至少两个子服务中,待测试的目标子服务,其中,目标服务为服务器向终端提供的服务,目标服务由分别提供各子服务的服务进程共同配合实现;获取目标子服务对应的目标服务进程的测试请求包,其中,测试请求包被封装为上行数据包的形式,测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现目标子服务的进程调用信息;向服务器发送测试请求包,以使服务器基于进程查询信息确定目标服务进程,基于进程调用信息调用目标服务进程完成目标子服务,并基于目标服务进程得到的服务结果生成响应包,其中,响应包被封装为下行数据包的形式;接收服务器发送的响应包,基于响应包对目标子服务的性能进行分析。
其中,服务器20可以用于获取测试终端发送的测试请求包,解析测试请求包得到测试请求包的解析结果,其中,测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现对应的目标子服务的进程调用信息,目标子服务为组成目标服务的至少两个子服务之一,目标服务由分别提供各子服务的服务进程共同配合实现;基于进程调用信息,调用进程查询信息指示的目标服务进程实现目标子服务;获取目标服务进程的服务结果,基于服务结果生成下行数据包形式的响应包;向测试终端发送响应包。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本发明实施例将从第一测试装置的角度进行描述,该第一测试装置具体可以集成在终端中。本发明实施例提供了一种测试方法,该方法可以由终端的处理器执行,如图2b所示,该测试方法的流程可以如下:
201、确定组成目标服务的至少两个子服务中,待测试的目标子服务,其中,目标服务为服务器向终端提供的服务,目标服务由分别提供各子服务的服务进程共同配合实现;
在实际中,一些客户端应用程序(一般安装在终端上)提供的功能需要服务端应用程序配合才能够实现,该服务端应用程序一般安装在服务器。客户端应用程序可以通过向服务端应用程序发送请求数据包,请求服务端提供相应的服务,包括数据计算、校验、存储等。
本实施例中的目标服务,可以理解为终端侧应用程序的正常使用过程中发送请求数据包所请求的服务。可以理解的是,在请求数据包请求的是比较复杂的服务时,服务端可以通过至少两个子服务实现该服务,本实施例中,每个子服务都有对应的服务进程,但是可以理解的是,实现服务的所有进程不仅包括子服务对应的服务进程,还可以包括其他需要的进程,如子服务的服务进程共享的基础进程等等。
本实施例中的客户端应用程序的类型不限,可以是多媒体应用程序,如视频播放器、音频播放器等等,可以是搜索引擎类应用程序,如浏览器,或者,还可以是游戏类应用程序,如网络游戏(Online Game),进一步的,例如网络游戏中的MMORPG,在MMORPG中,玩家都可扮演一个或至少两个虚拟角色,并控制该角色的在游戏中虚拟世界的活动与行为。
进一步的,本实施例的游戏还可以是云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
本实施例中的测试,可以在应用程序的开发过程中进行,也可以在应用程序发布之后,再需要时进程测试,例如,在应用程序版本更新后,对更新后的应用程序进行测试,
为了便于本实施例的理解,在此,对本实施例中出现的以下名词进行解释:
上行数据包(Client-Server Message):指客户端(一般安装在终端)主动发送至服务器的请求数据包,目的是请求服务端提供相应的服务,包括数据计算、校验、存储等。
下行数据包(Server-Client Message):指服务端(一般安装在服务器)发送给游戏客户端的数据包,目的是回复客户端上行包的处理结果,或者触发客户端做出相应的表现等。
服务器的进程间通信数据包(Server-Server Message):由于一些服务端的应用程序如mmorpg的服务端程序庞大,不同的服务分布在不同的服务进程上,各个服务进程需要相互提供服务,需要在进程之间发送对应的通信包。
本实施例的后续内容中,缩写CS(Client->Server)表示客户端上行包,SC(Server->Client)表示服务器下行包,SS(Server->Server)表示服务器间通信包,对于上述三种通信包,又分为请求包和回复包,分别用req和rsp表示。
本实施例中,步骤201之前,可以包括:
向服务器发送请求数据包,该请求数据包用于请求服务器上的服务;
接收服务器针对请求数据包反馈的响应数据包;
基于请求数据包的发送时刻和响应数据包的接收时刻,确定对应的服务在服务器上的响应时长;
基于响应时长以及服务的复杂程度,分析各个服务的性能,确定性能不满足要求的服务为候选测试服务;
在候选测试服务中选择目标服务。
其中,可以将候选测试服务中的各服务依次作为目标服务,采用本实施例的测试方法进行其子服务的测试;还可以基于用户在候选测试服务中的选择确定目标服务。
202、获取目标子服务对应的目标服务进程的测试请求包,其中,测试请求包被封装为上行数据包的形式,测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现目标子服务的进程调用信息;
本实施例中,测试请求包为上行数据包,即客户端Client向服务端Server发送的CS(Client-Server Message)包。
其中,该CS包中的进程查询信息,可以是任意可用于确定目标服务进程的信息,在实际中,服务器中子服务和服务进程是存在对应关系的,所以进程查询信息可以是目标服务进程本身关联的信息,例如,目标服务进程的进程地址,目标服务进程的id,或者目标服务进程的进程句柄等等信息,进程查询信息还可以是与目标子服务关联的信息,如子服务标识,子服务名称等等信息。
在一个实施例中,用于调用目标服务进程实现目标子服务的进程调用信息,可以包括目标服务进程的进程间请求包,该目标服务进程的进程间请求包,为其他进程调用目标服务进程实现目标子服务时,向目标服务进程发送的请求包;即进程间请求包为Server-Server Message。
例如,以帮派创建服务为例,假设帮派创建服务需要的子服务包括帮派创建子服务A,用户信息查询子服务B,帮派名称查重子服务C等子服务构成,其中,帮派创建子服务,需要调用用户信息查询子服务,查询创建帮派的用户的身份信息,以确定用户是否具有帮派创建资格,则将子服务B作为目标子服务进行测试时,该进程间请求包,是子服务A调用子服务B时,由子服务A发送给目标子服务B的SS req(request)包。
本实施例中,终端本地可以存储所有子服务对应的进程间请求包,或者终端可以在需要的时候,基于目标子服务或目标服务进程的信息,从其他终端或服务器获取该进程间请求包。
针对进程调用信息包括目标服务进程的进程间请求包的方案,获取目标子服务对应的目标服务进程的测试请求包,包括:
确定目标子服务对应的目标服务进程;
获取目标服务进程的进程查询信息,以及目标服务进程对应的进程间请求包;
基于进程间请求包和进程查询信息进行封装,得到上行数据包形式的测试请求包。
其中,进程查询信息可以从服务器侧获取。
本实施例中,终端上可以包括各服务的信息表,该信息表中可以包括各服务中的子服务,子服务的标识如子服务id,子服务对应的服务进程的进程地址,进程id,进程句柄,目标服务进程对应的进程间请求包的序列化方法等信息。
在另一个示例中,上述的进程间请求包可以由服务器获取,进一步的,服务器和终端中,可以存储有目标子服务的子服务标识与目标服务进程的进程间请求包的对应关系;终端可以以服务标识替代具体的进程间请求包。
在该示例中,进程调用信息包括目标子服务的子服务标识,步骤“获取目标子服务对应的目标服务进程的测试请求包”,可以包括:
确定目标子服务对应的目标服务进程;
获取目标服务进程的进程查询信息,以及目标子服务的子服务标识;
基于进程查询信息以及子服务标识进行封装,得到上行数据包形式的测试请求包。
其中,可以查找目标服务的信息表,在该信息表中获取目标子服务的子服务标识。
进一步的,本实施例中,在步骤“获取目标服务进程对应的进程间请求包”之前,还可以包括:
获取目标服务进程对应的进程间请求包的结构;
获取进程间请求包需要的请求内容,请求内容用于指示目标服务进程需要响应的请求;
基于进程间请求包的结构以及请求内容生成进程间请求包;
获取目标服务进程的进程查询信息,以及目标服务进程对应的进程间请求包,包括:
获取目标服务进程的进程查询信息;
从本地获取目标服务进程对应的进程间请求包。
其中,进程间请求包的结构一般是服务器侧的开发人员在开发服务端的应用程序时规定的,该结构限定了进程间请求包里面的数据、数据包的格式,数据包的类型等等信息。
本实施例中的请求内容,可以理解为需要目标服务进程实现的请求,例如,该请求内容可以为:查找A用户的身份信息,查找的身份信息包括游戏等级、所属帮派,帮派职务。
在该示例中,由终端实现进程间请求包的生成。
可选的,本实施例中,步骤“基于进程间请求包和进程查询信息进行封装,得到上行数据包形式的测试请求包”,可以包括:
确定进程间请求包的序列化标识,序列化标识用于指示进程间请求包的序列化方法;
基于序列化标识指示的序列化方法,对进程间请求包进行序列化,得到进程间请求包的序列化数据;
基于序列化数据、序列化标识以及进程查询信息进行封装,得到上行数据包形式的测试请求包。
本实施例中,目标子服务的子服务标识如子服务id,可以作为序列化标识使用。
本实施例中的序列化数据可以是二进制流数据。
203、向服务器发送测试请求包,以使服务器基于进程查询信息确定目标服务进程,基于进程调用信息调用目标服务进程完成目标子服务,并基于目标服务进程得到的服务结果生成响应包,其中,响应包被封装为下行数据包的形式;
本实施例中,可以是向服务器的共享测试辅助进程发送测试请求包。
该共享测试辅助进程由服务器中实现子服务的服务进程共享,共享测试辅助进程用于接收测试请求包,基于测试请求包获取目标服务进程的进程间请求包,将进程间请求包发送给目标服务进程,以及接收目标服务进程的服务结果,生成响应包发送给测试请求包的发送终端;其中,目标服务进程的进程间请求包,为其他进程调用目标服务进程实现目标子服务时,向目标服务进程发送的请求包。
204、接收服务器发送的响应包,基于响应包对目标子服务的性能进行分析。
一个示例中,进程查询信息包括目标子服务的服务标识,和/或目标服务进程的进程标识;
考虑到如果服务器中服务端应用程序重启,或某些进程重启的话,该进程的某些进程标识如进程地址、进程id会重新分配,在步骤“获取目标子服务对应的目标服务进程的测试请求包”之前,还可以包括:
从服务器获取本次测试过程中,各子服务对应的服务进程的进程标识。
本实施例中的响应包是CS rsp包,其中,CS rsp包中,可以包括目标服务进程针对SS req(request)包反馈的SS req(request)包。
在一个示例中,基于响应包对目标子服务的性能进行分析,包括:
解析响应包,比较响应包中的服务结果与期望服务结果;
若服务结果与期望服务结果相同,确定目标子服务功能正常;
在确定目标子服务功能正常后,确定目标服务进程实现目标子服务需要的响应时长;
基于响应时长及目标子服务的复杂程度,评估目标子服务的性能。
其中,该响应时长可以基于测试请求包的发送时刻以及响应包的接收时刻确定,例如将测试请求包的发送时刻以及响应包的接收时刻之间的间隔时长,作为目标服务进程实现目标子服务需要的响应时长。
其中,服务结果可以是以目标服务进程针对SS req(request)包反馈的SS req(request)包(进程间响应包)的形式存在的,一个示例中,该响应包中的SS req(request)包是序列化后的序列化数据,响应包中可以包括该SS req(request)包序列化方法的标识信息如SS req id。
步骤“解析响应包,比较响应包中的服务结果与期望服务结果”包括:
解析响应包;
基于目标服务进程反馈的进程间响应包的序列化方法的标识信息,对响应包中进程间响应包的序列化数据进行反序列化,得到进程间响应包;
解析该进程间响应包得到目标子服务的服务结果;
将服务结果与对应的期望服务结果进行比较。
可选的,响应包中还可以包括进程间请求包的发送时刻,以及服务结果的接收时刻,步骤“确定目标服务进程实现目标子服务需要的响应时长”,可以包括:
计算发送时刻和接收时刻之间的间隔时长;
将间隔时长,确定为目标服务进程实现目标子服务需要的响应时长。
另一个示例中,响应包中还可以包括间隔时长,该间隔时长为进程间请求包的发送时刻,以及服务结果的接收时刻之间的间隔时长。
步骤“确定目标服务进程实现目标子服务需要的响应时长”,可以包括:将间隔时长,确定为目标服务进程实现目标子服务需要的响应时长。
本实施例的实施,可以确定目标服务中的目标子服务,该目标服务由分别提供各子服务的服务进程共同配合实现;获取目标子服务对应的目标服务进程的测试请求包,其中,测试请求包被封装为上行数据包的形式,测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现目标子服务的进程调用信息;向服务器发送测试请求包,以使服务器进程查询信息确定目标服务进程,基于进程调用信息调用目标服务进程完成目标子服务,并基于服务结果生成下行数据包形式的响应包;基于服务器发送的响应包对目标子服务的性能进行分析,由此,在终端侧可以实现对服务中的各个子服务的测试,有利于在服务出现性能瓶颈时,快速确定需要优化的子服务,提升服务的优化效率和服务器侧开发人员的开发效率。
本发明实施例提供了另一种测试方法,该方法可以由服务器的处理器执行,如图3所示,该测试方法的流程可以如下:
301、获取测试终端发送的测试请求包,解析测试请求包得到测试请求包的解析结果,其中,测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现对应的目标子服务的进程调用信息,目标子服务为组成目标服务的至少两个子服务之一,目标服务由分别提供各子服务的服务进程共同配合实现;
其中,服务器可以基于数据包中发送数据包的终端是否为测试终端,确定测试数据包。
302、基于进程调用信息,调用进程查询信息指示的目标服务进程实现目标子服务;
一个示例中,进程调用信息可以包括目标服务进程的进程间请求包,目标服务进程的进程间请求包,为其他进程调用目标服务进程实现目标子服务时,向目标服务进程发送的请求包。
其中,步骤“基于进程调用信息,调用进程查询信息指示的目标服务进程实现目标子服务”,可以包括:
从所述解析结果中获取所述进程间请求包,将进程间请求包发送给进程查询信息指示的目标服务进程。
在一个示例中,测试请求包中的进程间请求包是序列化数据如二进制数据流的形式存在的,该测试请求包中还可以包括序列化标识。步骤“从所述解析结果中获取所述进程间请求包,将进程间请求包发送给进程查询信息指示的目标服务进程”,可以包括:
基于序列化标识,对解析结果中进程间请求包的序列化数据进行反序列化,得到进程间请求包;
将进程间请求包,发送给进程查询信息指示的目标服务进程。
在另一个示例中,进程调用信息包括目标子服务的子服务标识,步骤“基于进程调用信息,调用进程查询信息指示的目标服务进程实现目标子服务”,包括:
基于子服务的子服务标识和其服务进程的进程间请求包的对应关系,确定目标子服务的子服务标识对应的进程间请求包;
获取目标子服务的子服务标识对应的进程间请求包;
将进程间请求包发送给进程查询信息指示的目标服务进程。
303、获取目标服务进程的服务结果,基于服务结果生成下行数据包形式的响应包;
在一个示例中,还可以包括:记录进程间请求包的发送时刻,以及服务结果的接收时刻;步骤“基于服务结果生成下行数据包形式的响应包”,可以包括:基于发送时刻、接收时刻以及服务结果生成下行数据包形式的响应包。
在一个实施例中,该服务结果可以是SS rsp包,基于服务结果生成下行数据包形式的响应包可以包括:将SS rsp包序列化为序列化数据,获取用于指示该序列化方法的标识信息,基于该标识信息以及序列化数据,生成下行数据包形式的响应包。
304、向测试终端发送响应包。
本实施例中,服务器中可以包括共享测试辅助进程,也即本实施例其他内容中描述的单元测试进程Unitestsvr。该共享测试辅助进程可以由服务器中实现子服务的服务进程共享。
步骤“获取测试终端发送的测试请求包,解析测试请求包得到测试请求包的解析结果”,可以包括:
接收终端发送的数据包,从数据包中确定由测试终端发送的测试请求包,将测试请求包发送给共享测试辅助进程,其中,共享测试辅助进程由服务器中实现子服务的服务进程共享;
通过共享测试辅助进程,解析测试请求包得到测试请求包的解析结果;
基于进程调用信息,调用进程查询信息指示的目标服务进程实现目标子服务,包括:
通过共享测试辅助进程,基于进程调用信息,调用进程查询信息指示的目标服务进程实现目标子服务;
获取目标服务进程的服务结果,基于服务结果生成下行数据包形式的响应包,包括:
通过共享测试辅助进程接收目标子服务的服务结果;
通过共享测试辅助进程,基于服务结果生成下行数据包形式的响应包。
本实施例中,还可以将服务器的特定端口设置为共享测试辅助进程独占的端口,终端可以向该特定端口发送测试请求包,服务器可以将从该特定端口接收的数据包作为测试终端侧测试请求包。
由此,在服务器和终端的配合下,可以实现对服务中的各个子服务的测试,有利于在服务出现性能瓶颈时,快速确定需要优化的子服务,提升服务的优化效率和服务器侧开发人员的开发效率。
本发明实施例提供了另一种测试方法,该方法可以由终端和服务器共同实现,参考图4a,该方法包括:
401、终端确定组成目标服务的至少两个子服务中,待测试的目标子服务;
402、终端获取目标子服务对应的目标服务进程的进程间请求包SS req(request,请求)包;
403、终端获取目标服务进程的进程地址,和目标子服务的子服务标识;
其中,该子服务标识和目标子服务的SS req包的序列化方法存在对应关系;
参考图4b所示的SS包的测试流程图,上述的目标服务进程的进程地址,即图中target server address。子服务标识可以是子服务id,如SS req id。
404、终端将SS req包序列化得到SS req包的序列化数据,将该序列化数据、目标服务进程的进程地址,和目标子服务的子服务标识,封装在CS req包中。
上述的CS req包也即本申请中的测试请求包,参考图4b,测试请求包中,至少包含三部分信息,分别为:SS req包的目标服务进程地址target server address;SS req包的子服务id,如SS req id,用于表示具体请求的服务类型,例如查询玩家数据等等;以及SSreq stream,表示SS req包的二进制流数据。
405、终端复用已有的客户端与服务器的通信方案,将封装好的CS req包发往服务器的单元测试进程Unitest server。
406、服务器接收数据包,确定数据包中的需要由单元测试进程解析的CS req包;
407、服务器将CS req包发送给单元测试进程;
408、单元测试进程解析收到的CS req包;
409、单元测试进程根据子服务标识,将SS req stream反序列化,得到SS req包,然后将该SS req包发往进程地址标识的目标服务进程。
410、目标服务进程解析接收到的SS req包,根据包体数据,进行业务层的逻辑运算,得到运算结果后,将结果封装在SS rsp包中回复给单元测试进程。
上述SS rsp包即进程间响应包。
411、单元测试进程再将SS rsp包序列化为序列化数据,如二进制流数据,即SSrsp stream,保存在SC rsp包,复用服务器和终端现有的通信系统,将SC rsp包发送给终端。
上述的SC rsp包即为本申请实施例中的响应包,在SC rsp包中还可以包括指示SSrsp包的序列化方法的标识信息,如SS rsp id。
412、终端收到SC rsp包,解析SC rsp包得到二进制流数据SS rsp stream;
413、终端基于SS rsp包的序列化方法的标识信息,将二进制流数据SS rspstream反序列化,得到SS rsp包,解析SS rsp包中的数据,得到目标子服务对应的运算结果。
本实施例中,在这些被测试的服务所属的应用程序发布后的正式环境下,只需停止单元测试进程即可。例如,在游戏发布后,停止服务器侧游戏服务端设置的单元测试进程。
由此,实现了对服务中的子服务的单独测试,便于确定服务性能瓶颈由哪些子服务造成,有利于提升服务优化速度,以及服务器侧开发人员的开发效率,并且直接复用现有的客户端与服务器之间的收发包逻辑,无需修改业务进程的代码,具有更高的安全性。
为了更好地实施以上方法,相应的,本发明实施例还提供一种测试装置,该测试装置具体可以集成在终端中。
参考图5,该装置包括:
目标确定单元501,用于确定组成目标服务的至少两个子服务中,待测试的目标子服务,其中,目标服务为服务器向终端提供的服务,目标服务由分别提供各子服务的服务进程共同配合实现;
第一测试包获取单元502,获取目标子服务对应的目标服务进程的测试请求包,其中,测试请求包被封装为上行数据包的形式,测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现目标子服务的进程调用信息;
测试包发送单元503,用于向服务器发送测试请求包,以使服务器基于进程查询信息确定目标服务进程,基于进程调用信息调用目标服务进程完成目标子服务,并基于目标服务进程得到的服务结果生成响应包,其中,响应包被封装为下行数据包的形式;
分析单元504,用于接收服务器发送的响应包,基于响应包对目标子服务的性能进行分析。
在一个示例中,进程调用信息包括目标服务进程的进程间请求包,目标服务进程的进程间请求包,为其他进程调用目标服务进程实现目标子服务时,向目标服务进程发送的请求包;
在一个示例中,第一测试包获取单元501,可以包括:
第一进程确定子单元,用于确定目标子服务对应的目标服务进程;
第一获取子单元,用于获取目标服务进程的进程查询信息,以及目标服务进程对应的进程间请求包;
第一封装子单元,用于基于进程间请求包和进程查询信息进行封装,得到上行数据包形式的测试请求包。
在一个示例中,进程调用信息包括目标子服务的子服务标识,第一测试包获取单元501,可以包括:
第二进程确定子单元,用于确定目标子服务对应的目标服务进程;
第二获取子单元,用于获取目标服务进程的进程查询信息,以及目标子服务的子服务标识,其中,目标子服务的子服务标识与目标服务进程的进程间请求包存在对应关系,目标服务进程的进程间请求包,为其他进程调用目标服务进程实现目标子服务时,向目标服务进程发送的进程间请求包;
第二封装子单元,用于基于进程查询信息以及子服务标识进行封装,得到上行数据包形式的测试请求包。
可选的,测试装置还可以包括测试包生成单元,用于在获取目标服务进程对应的进程间请求包之前,获取目标服务进程对应的进程间请求包的结构;获取进程间请求包需要的请求内容,请求内容用于指示目标服务进程需要响应的请求;基于进程间请求包的结构以及请求内容生成进程间请求包。
第一获取子单元,可以用于获取目标服务进程的进程查询信息;从本地获取目标服务进程对应的进程间请求包。
可选的,第一封装子单元,可以用于:
确定进程间请求包的序列化标识,序列化标识用于指示进程间请求包的序列化方法;
基于序列化标识指示的序列化方法,对进程间请求包进行序列化,得到进程间请求包的序列化数据;
基于序列化数据、序列化标识以及进程查询信息进行封装,得到上行数据包形式的测试请求包。
在一个示例中,进程查询信息,可以包括目标子服务的子服务标识,和/或目标服务进程的进程标识;
本实施例的测试装置还可以包括同步单元,用于在获取目标子服务对应的目标服务进程的测试请求包之前,从服务器获取本次测试过程中,各子服务对应的服务进程的进程标识。
可选的,分析单元504,可以包括:
第一解析子单元,用于解析响应包,比较响应包中的服务结果与期望服务结果;
第一确定子单元,用于若服务结果与期望服务结果相同,确定目标子服务功能正常;
第二确定子单元,用于在确定目标子服务功能正常后,确定目标服务进程实现目标子服务需要的响应时长;
评估子单元,用于基于响应时长及目标子服务的复杂程度,评估目标子服务的性能。
可选的,响应包中还可以包括进程间请求包的发送时刻,以及服务结果的接收时刻,第二确定子单元,可以用于:计算发送时刻和接收时刻之间的间隔时长;将间隔时长,确定为目标服务进程实现目标子服务需要的响应时长。
可选的,测试包发送单元503,可以用于:向服务器的共享测试辅助进程发送测试请求包,共享测试辅助进程由服务器中实现子服务的服务进程共享,共享测试辅助进程用于接收测试请求包,基于测试请求包获取目标服务进程的进程间请求包,将进程间请求包发送给目标服务进程,以及接收目标服务进程的服务结果,生成响应包发送给测试请求包的发送终端。
其中,目标服务进程的进程间请求包,为其他进程调用目标服务进程实现目标子服务时,向目标服务进程发送的请求包。
由此,实现了对服务中的子服务的单独测试,便于确定服务性能瓶颈由哪些子服务造成,有利于提升服务优化速度,以及服务器侧开发人员的开发效率。
为了更好地实施以上方法,相应的,本发明实施例还提供一种测试装置,该测试装置具体可以集成在服务器中。
参考图6,该装置包括:
第二测试包获取单元601,用于获取测试终端发送的测试请求包,解析测试请求包得到测试请求包的解析结果,其中,测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现对应的目标子服务的进程调用信息,目标子服务为组成目标服务的至少两个子服务之一,目标服务由分别提供各子服务的服务进程共同配合实现;
调用单元
602,用于基于进程调用信息,调用进程查询信息指示的目标服务进程实现目标子服务;
响应包获取单元603,用于获取目标服务进程的服务结果,基于服务结果生成下行数据包形式的响应包;
响应包发送单元604,用于向测试终端发送响应包。
一个示例中,进程调用信息包括目标服务进程的进程间请求包,目标服务进程的进程间请求包,为其他进程调用目标服务进程实现目标子服务时,向目标服务进程发送的请求包。
可选的,调用单元,可以包括第一调用子单元,用于从所述解析结果中获取所述进程间请求包,将进程间请求包发送给进程查询信息指示的目标服务进程。
可选的,进程调用信息包括目标子服务的子服务标识,调用单元,可以包括:
第三确定子单元,用于基于子服务的子服务标识和其服务进程的进程间请求包的对应关系,确定目标子服务的子服务标识对应的进程间请求包;
第三获取子单元,用于获取目标子服务的子服务标识对应的进程间请求包;
进程间发送子单元,用于将进程间请求包发送给进程查询信息指示的目标服务进程。
可选的,测试装置还包括,记录单元,用于记录进程间请求包的发送时刻,以及服务结果的接收时刻。
响应包获取单元,可以用于基于发送时刻、接收时刻以及服务结果生成下行数据包形式的响应包。
可选的,测试请求包中进程间请求包以序列化数据的形式存在,测试请求包还包括进程间请求包的序列化标识,序列化标识用于指示进程间请求包的序列化方法。
可选的,第一调用子单元,可以用于基于序列化标识,对序列化数据进行对应的反序列,得到进程间请求包;向进程查询信息指示的目标服务进程,发送进程间请求包。
一个示例中,第二测试包获取单元,可以包括:
第四确定子单元,用于接收终端发送的数据包,从数据包中确定由测试终端发送的测试请求包,将测试请求包发送给共享测试辅助进程,其中,共享测试辅助进程由服务器中实现子服务的服务进程共享;
第二解析子单元,用于通过共享测试辅助进程,解析测试请求包得到测试请求包的解析结果。
对应的,调用单元,用于通过共享测试辅助进程,基于进程调用信息,调用进程查询信息指示的目标服务进程实现目标子服务;
响应包获取单元,可以用于通过共享测试辅助进程接收目标子服务的服务结果;通过共享测试辅助进程,基于服务结果生成下行数据包形式的响应包。
由此,可以对服务中的子服务的单独测试,便于确定服务性能瓶颈由哪些子服务造成,有利于提升服务优化速度,以及服务器侧开发人员的开发效率。
此外,本发明实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,如图7所示,其示出了本发明实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器701、一个或一个以上计算机可读存储介质的存储器702、电源703和输入单元704等部件。本领域技术人员可以理解,图7中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器701是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器701可包括一个或多个处理核心;优选的,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。
存储器702可用于存储软件程序以及模块,处理器701通过运行存储在存储器702的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以包括存储器控制器,以提供处理器701对存储器702的访问。
计算机设备还包括给各个部件供电的电源703,优选的,电源703可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源703还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元704,该输入单元704可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器701会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现各种功能,如下:
确定组成目标服务的至少两个子服务中,待测试的目标子服务,其中,目标服务为服务器向终端提供的服务,目标服务由分别提供各子服务的服务进程共同配合实现;
获取目标子服务对应的目标服务进程的测试请求包,其中,测试请求包被封装为上行数据包的形式,测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现目标子服务的进程调用信息;
向服务器发送测试请求包,以使服务器基于进程查询信息确定所述目标服务进程,基于所述进程调用信息调用目标服务进程完成目标子服务,并基于目标服务进程得到的服务结果生成响应包,其中,响应包被封装为下行数据包的形式;
接收服务器发送的响应包,基于响应包对目标子服务的性能进行分析。
或者,
获取测试终端发送的测试请求包,解析测试请求包得到测试请求包的解析结果,其中,测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现对应的目标子服务的进程调用信息,目标子服务为组成目标服务的至少两个子服务之一,目标服务由分别提供各子服务的服务进程共同配合实现;
基于进程调用信息,调用进程查询信息指示的目标服务进程实现目标子服务;
获取目标服务进程的服务结果,基于服务结果生成下行数据包形式的响应包;
向测试终端发送响应包。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由此,实现了对服务中的子服务的单独测试,便于确定服务性能瓶颈由哪些子服务造成,有利于提升服务优化速度,以及服务器侧开发人员的开发效率。
本发明实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算机设备,如服务器、终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图8,图8是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer ToPeer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。本实施例中,服务对应的信息表,各个子服务对应的进程间请求包,每次测试过程中获取的响应包,以及各个子服务的性能分析结果等等,都可以通过节点被存储在区域链系统的共享账本中,计算机设备(例如终端或服务器)可以基于共享账本存储的记录数据获取目标服务进程,进程间请求包,实现对目标子服务的性能检测。
参见图8示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图9,图9是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例还提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的测试方法。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的测试方法中的步骤,因此,可以实现本发明实施例所提供的测试方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种测试方法、装置、计算机设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种测试方法,其特征在于,包括:
确定组成目标服务的至少两个子服务中,待测试的目标子服务,其中,所述目标服务为服务器向终端提供的服务,所述目标服务由分别提供各子服务的服务进程共同配合实现;
获取所述目标子服务对应的目标服务进程的测试请求包,其中,所述测试请求包被封装为上行数据包的形式,所述测试请求包包括:用于确定所述目标服务进程的进程查询信息,以及用于调用所述目标服务进程实现所述目标子服务的进程调用信息;
向所述服务器发送所述测试请求包,以使所述服务器基于所述进程查询信息确定所述目标服务进程,基于所述进程调用信息调用所述目标服务进程完成所述目标子服务,并基于所述目标服务进程得到的服务结果生成响应包,其中,所述响应包被封装为下行数据包的形式;
接收所述服务器发送的响应包,基于所述响应包对所述目标子服务的性能进行分析。
2.根据权利要求1所述的测试方法,其特征在于,所述进程调用信息包括所述目标服务进程的进程间请求包,所述目标服务进程的进程间请求包,为其他进程调用所述目标服务进程实现所述目标子服务时,向所述目标服务进程发送的请求包;
所述获取所述目标子服务对应的目标服务进程的测试请求包,包括:
确定所述目标子服务对应的目标服务进程;
获取所述目标服务进程的进程查询信息,以及所述目标服务进程对应的进程间请求包;
基于所述进程间请求包和进程查询信息进行封装,得到上行数据包形式的测试请求包。
3.根据权利要求1所述的测试方法,其特征在于,所述进程调用信息包括所述目标子服务的子服务标识,所述获取所述目标子服务对应的目标服务进程的测试请求包,包括:
确定所述目标子服务对应的目标服务进程;
获取所述目标服务进程的进程查询信息,以及所述目标子服务的子服务标识,其中,目标子服务的子服务标识与目标服务进程的进程间请求包存在对应关系,所述目标服务进程的进程间请求包,为其他进程调用所述目标服务进程实现所述目标子服务时,向所述目标服务进程发送的请求包;
基于所述进程查询信息以及所述子服务标识进行封装,得到上行数据包形式的测试请求包。
4.根据权利要求2所述的测试方法,其特征在于,在获取所述目标服务进程对应的进程间请求包之前,还包括:
获取所述目标服务进程对应的进程间请求包的结构;
获取所述进程间请求包需要的请求内容,所述请求内容用于指示所述目标服务进程需要响应的请求;
基于所述进程间请求包的结构以及所述请求内容生成所述进程间请求包;
所述获取所述目标服务进程的进程查询信息,以及所述目标服务进程对应的进程间请求包,包括:
获取所述目标服务进程的进程查询信息;
从本地获取所述目标服务进程对应的进程间请求包。
5.根据权利要求2-4任一项所述的测试方法,其特征在于,所述基于所述响应包对所述目标子服务的性能进行分析,包括:
解析所述响应包,比较所述响应包中的服务结果与期望服务结果;
若所述服务结果与所述期望服务结果相同,确定所述目标子服务功能正常;
在确定所述目标子服务功能正常后,确定所述目标服务进程实现所述目标子服务需要的响应时长;
基于所述响应时长及所述目标子服务的复杂程度,评估所述目标子服务的性能。
6.根据权利要求5所述的测试方法,其特征在于,所述响应包中还包括服务器侧所述进程间请求包的发送时刻,以及所述服务结果的接收时刻,所述确定所述目标服务进程实现所述目标子服务需要的响应时长,包括:
计算所述发送时刻和所述接收时刻之间的间隔时长;
将所述间隔时长,确定为所述目标服务进程实现所述目标子服务需要的响应时长。
7.根据权利要求1-4任一项所述的测试方法,其特征在于,所述向所述服务器发送所述测试请求包,包括:
向所述服务器的共享测试辅助进程发送所述测试请求包,所述共享测试辅助进程由所述服务器中实现子服务的服务进程共享,所述共享测试辅助进程用于接收所述测试请求包,基于所述测试请求包获取目标服务进程的进程间请求包,将所述进程间请求包发送给所述目标服务进程,以及接收所述目标服务进程的服务结果,生成所述响应包发送给所述测试请求包的发送终端;
其中,所述目标服务进程的进程间请求包,为其他进程调用所述目标服务进程实现所述目标子服务时,向所述目标服务进程发送的请求包。
8.一种测试方法,其特征在于,包括:
获取测试终端发送的测试请求包,解析所述测试请求包得到所述测试请求包的解析结果,其中,所述测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现对应的目标子服务的进程调用信息,所述目标子服务为组成目标服务的至少两个子服务之一,所述目标服务由分别提供各子服务的服务进程共同配合实现;
基于所述进程调用信息,调用所述进程查询信息指示的目标服务进程实现所述目标子服务;
获取所述目标服务进程的服务结果,基于所述服务结果生成下行数据包形式的响应包;
向所述测试终端发送所述响应包。
9.根据权利要求8所述的测试方法,其特征在于,所述进程调用信息包括所述目标服务进程的进程间请求包,所述目标服务进程的进程间请求包,为其他进程调用所述目标服务进程实现所述目标子服务时,向所述目标服务进程发送的请求包;
所述基于所述进程调用信息,调用所述进程查询信息指示的目标服务进程实现所述目标子服务,包括:
从所述解析结果中获取所述进程间请求包,将所述进程间请求包发送给所述进程查询信息指示的目标服务进程。
10.根据权利要求9所述的测试方法,其特征在于,还包括:
记录所述进程间请求包的发送时刻,以及所述服务结果的接收时刻;
所述基于所述服务结果生成下行数据包形式的响应包,包括:
基于所述发送时刻、接收时刻以及所述服务结果生成下行数据包形式的响应包。
11.根据权利要求8所述的测试方法,其特征在于,所述获取测试终端发送的测试请求包,解析所述测试请求包得到所述测试请求包的解析结果,包括:
接收终端发送的数据包,从所述数据包中确定由测试终端发送的测试请求包,将所述测试请求包发送给共享测试辅助进程,其中,所述共享测试辅助进程由服务器中实现子服务的服务进程共享;
通过所述共享测试辅助进程,解析所述测试请求包得到所述测试请求包的解析结果;
所述基于所述进程调用信息,调用所述进程查询信息指示的目标服务进程实现所述目标子服务,包括:
通过所述共享测试辅助进程,基于所述进程调用信息,调用所述进程查询信息指示的目标服务进程实现所述目标子服务;
所述获取所述目标服务进程的服务结果,基于所述服务结果生成下行数据包形式的响应包,包括:
通过所述共享测试辅助进程接收所述目标子服务的服务结果;
通过所述共享测试辅助进程,基于所述服务结果生成下行数据包形式的响应包。
12.一种测试装置,其特征在于,包括:
目标确定单元,用于确定组成目标服务的至少两个子服务中,待测试的目标子服务,其中,所述目标服务为服务器向终端提供的服务,所述目标服务由分别提供各子服务的服务进程共同配合实现;
第一测试包获取单元,获取所述目标子服务对应的目标服务进程的测试请求包,其中,所述测试请求包被封装为上行数据包的形式,所述测试请求包包括:用于确定所述目标服务进程的进程查询信息,以及用于调用所述目标服务进程实现所述目标子服务的进程调用信息;
测试包发送单元,用于向所述服务器发送所述测试请求包,以使所述服务器基于所述进程查询信息确定所述目标服务进程,基于所述进程调用信息调用所述目标服务进程完成所述目标子服务,并基于所述目标服务进程得到的服务结果生成响应包,其中,所述响应包被封装为下行数据包的形式;
分析单元,用于接收所述服务器发送的响应包,基于所述响应包对所述目标子服务的性能进行分析。
13.一种测试装置,其特征在于,包括:
第二测试包获取单元,用于获取测试终端发送的测试请求包,解析所述测试请求包得到所述测试请求包的解析结果,其中,所述测试请求包包括:用于确定目标服务进程的进程查询信息,以及用于调用目标服务进程实现对应的目标子服务的进程调用信息,所述目标子服务为组成目标服务的至少两个子服务之一,所述目标服务由分别提供各子服务的服务进程共同配合实现;
调用单元,用于基于所述进程调用信息,调用所述进程查询信息指示的目标服务进程实现所述目标子服务;
响应包获取单元,用于获取所述目标服务进程的服务结果,基于所述服务结果生成下行数据包形式的响应包;
响应包发送单元,用于向所述测试终端发送所述响应包。
14.一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-11任一项所述方法的步骤。
15.一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1-11任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010153666.6A CN111290965B (zh) | 2020-03-06 | 2020-03-06 | 一种测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010153666.6A CN111290965B (zh) | 2020-03-06 | 2020-03-06 | 一种测试方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111290965A true CN111290965A (zh) | 2020-06-16 |
CN111290965B CN111290965B (zh) | 2021-11-02 |
Family
ID=71022245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010153666.6A Active CN111290965B (zh) | 2020-03-06 | 2020-03-06 | 一种测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290965B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003872A (zh) * | 2020-08-31 | 2020-11-27 | 中国信息通信研究院 | 检测和调用工业互联网标识二级节点能力的方法及装置 |
CN112181802A (zh) * | 2020-08-21 | 2021-01-05 | 长沙市到家悠享网络科技有限公司 | 测试方法及装置 |
CN112184438A (zh) * | 2020-09-27 | 2021-01-05 | 北京金山云网络技术有限公司 | 一种区块链交易监控方法、装置及区块链节点 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103179175A (zh) * | 2011-12-26 | 2013-06-26 | 北京四维图新科技股份有限公司 | 远程信息服务系统及其通讯方法、装置 |
US20160119207A1 (en) * | 2013-06-25 | 2016-04-28 | Netflix, Inc. | Progressive deployment and termination of canary instances for software analysis |
CN107861878A (zh) * | 2017-11-22 | 2018-03-30 | 泰康保险集团股份有限公司 | Java应用程序性能问题定位的方法、装置和设备 |
CN108494867A (zh) * | 2018-04-04 | 2018-09-04 | 广州华多网络科技有限公司 | 服务灰度处理的方法、装置、系统以及路由服务器 |
CN108959087A (zh) * | 2018-06-29 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 测试方法和装置 |
CN109992465A (zh) * | 2017-12-29 | 2019-07-09 | 中国电信股份有限公司 | 服务追踪方法、装置和计算机可读存储介质 |
CN110830577A (zh) * | 2019-11-08 | 2020-02-21 | 深圳前海环融联易信息科技服务有限公司 | 服务请求调用追踪方法、装置、计算机设备及存储介质 |
-
2020
- 2020-03-06 CN CN202010153666.6A patent/CN111290965B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103179175A (zh) * | 2011-12-26 | 2013-06-26 | 北京四维图新科技股份有限公司 | 远程信息服务系统及其通讯方法、装置 |
US20160119207A1 (en) * | 2013-06-25 | 2016-04-28 | Netflix, Inc. | Progressive deployment and termination of canary instances for software analysis |
CN107861878A (zh) * | 2017-11-22 | 2018-03-30 | 泰康保险集团股份有限公司 | Java应用程序性能问题定位的方法、装置和设备 |
CN109992465A (zh) * | 2017-12-29 | 2019-07-09 | 中国电信股份有限公司 | 服务追踪方法、装置和计算机可读存储介质 |
CN108494867A (zh) * | 2018-04-04 | 2018-09-04 | 广州华多网络科技有限公司 | 服务灰度处理的方法、装置、系统以及路由服务器 |
CN108959087A (zh) * | 2018-06-29 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 测试方法和装置 |
CN110830577A (zh) * | 2019-11-08 | 2020-02-21 | 深圳前海环融联易信息科技服务有限公司 | 服务请求调用追踪方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
孙可钦: "一种基于微内核操作系统进程间通信恢复方法", 《计算机应用与软件》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181802A (zh) * | 2020-08-21 | 2021-01-05 | 长沙市到家悠享网络科技有限公司 | 测试方法及装置 |
CN112003872A (zh) * | 2020-08-31 | 2020-11-27 | 中国信息通信研究院 | 检测和调用工业互联网标识二级节点能力的方法及装置 |
CN112003872B (zh) * | 2020-08-31 | 2022-07-08 | 中国信息通信研究院 | 检测和调用工业互联网标识二级节点能力的方法及装置 |
CN112184438A (zh) * | 2020-09-27 | 2021-01-05 | 北京金山云网络技术有限公司 | 一种区块链交易监控方法、装置及区块链节点 |
Also Published As
Publication number | Publication date |
---|---|
CN111290965B (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111405304B (zh) | 一种主播互动方法、装置、计算机设备和存储介质 | |
Yuan et al. | Coopedge: A decentralized blockchain-based platform for cooperative edge computing | |
CN111290965B (zh) | 一种测试方法、装置、计算机设备和存储介质 | |
Yuan et al. | CSEdge: Enabling collaborative edge storage for multi-access edge computing based on blockchain | |
CN112073269B (zh) | 区块链网络测试方法、装置、服务器及存储介质 | |
CN111447185B (zh) | 一种推送信息的处理方法及相关设备 | |
CN111400112B (zh) | 分布式集群的存储系统的写入方法、装置及可读存储介质 | |
CN111643907A (zh) | 一种游戏登录方法、装置、存储介质和电子设备 | |
CN110830735A (zh) | 一种视频生成方法、装置、计算机设备和存储介质 | |
CN112866421B (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
CN114024972B (zh) | 一种长连接通信方法、系统、装置、设备及存储介质 | |
CN112767135B (zh) | 规则引擎的配置方法及装置、存储介质、计算机设备 | |
CN111639309B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN112767133B (zh) | 业务决策方法及装置、存储介质、计算机设备 | |
CN110839056B (zh) | 基于区块链的数据处理方法、装置及节点网络 | |
CN110519127B (zh) | 网络延时的探测方法、装置和存储介质 | |
CN112685391B (zh) | 一种服务数据迁移方法、装置、计算机设备和存储介质 | |
US20210344777A1 (en) | Enhanced self-assembling and self-configuring microservices | |
CN117278434A (zh) | 流量回放方法、装置、电子设备 | |
CN113129002A (zh) | 一种数据处理方法以及设备 | |
CN116974874A (zh) | 数据库的测试方法、装置、电子设备及可读存储介质 | |
CN111800491A (zh) | 一种数据传输方法、系统、计算设备及存储介质 | |
US20020095656A1 (en) | Extensible software development using asynchronous messaging | |
CN112764837B (zh) | 数据上报方法、装置、存储介质及终端 | |
CN113268340A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024769 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |