CN113923134B - 一种接口测试方法和装置 - Google Patents
一种接口测试方法和装置 Download PDFInfo
- Publication number
- CN113923134B CN113923134B CN202111172758.XA CN202111172758A CN113923134B CN 113923134 B CN113923134 B CN 113923134B CN 202111172758 A CN202111172758 A CN 202111172758A CN 113923134 B CN113923134 B CN 113923134B
- Authority
- CN
- China
- Prior art keywords
- interface
- service
- request
- interface calling
- calling request
- 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.)
- Active
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
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- 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/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- 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/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种接口测试方法和装置,该方法在服务系统的各服务中设置代理层,在接口调用方,对所有可能调用的接口,均由代理层生成和真实接口调用请求格式相同的模拟接口调用请求,并用测试标识进行区分后发送给各接口对应的服务,在接口提供方,由代理层来判断接收到的接口调用请求是否与预设请求格式一致,然后直接在代理层中生成并返回对应的接口调用响应,同时根据测试标识判断接口调用请求为模拟请求还是真实请求,仅将真实请求转发给第二服务进行处理,模拟请求则进行拦截。通过上述方式,使得接口的连通性测试可以在真实服务环境进行,且过程中对真实服务环境不造成影响,因此接口连通性测试难度大大降低。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种接口测试方法和装置。
背景技术
在分布式服务体系下,各服务分别承担各种的功能单元,不同服务之间通过相互协作实现一个更大的功能,并最终提供整体服务。各服务之间的协作通过接口调用来实现,由于各服务之间相互独立,在没有进行实际调用前对接口连通性是未知的,为保证服务的稳定性,需要提前确认接口调用的连通性,保证在实际调用接口时接口能正常处理请求。
当前在进行各服务间接口的连通性测试时,通常采用沙盒模拟环境来触发调用或者正常环境触发调用,然而前者所需的成本较高,且不能正确代替真实环境,准确性较低,后者仅能满足部分场景的触发,对于一些复杂场景则无法操作验证,两种方式均不能满足测试要求。
因此,现有的分布式服务架构存在接口连通性测试难度较大的技术问题,需要改进。
发明内容
本申请实施例提供一种接口测试方法和装置,用以缓解现有的分布式服务架构中接口连通性测试难度较大的技术问题。
为解决上述技术问题,本申请实施例提供以下技术方案:
本申请提供一种接口测试方法,适用于服务系统,所述服务系统包括多个服务,各服务均包括至少一个接口,所述多个服务包括至少一个第一服务和至少一个第二服务,所述第一服务为接口调用方,所述第二服务为所述第一服务的接口提供方,所述接口测试方法包括:
响应所述第一服务启动,通过所述第一服务的第一代理层获取待调用接口的第一接口信息;
根据所述第一接口信息,在所述第一代理层中生成所述待调用接口对应的模拟接口调用请求,其中,所述模拟接口调用请求与真实接口调用请求的格式相同,所述模拟接口调用请求携带测试标识;
通过所述第一代理层向所述待调用接口对应的第二服务发送模拟接口调用请求,以使所述第二服务根据接收到的所述模拟接口调用请求的格式和所述测试标识生成并向所述第一服务返回接口调用响应;
通过所述第一服务接收所述第二服务返回的接口调用响应,根据所述接口调用响应上报所述待调用接口的接口连通性测试结果。
本申请还提供一种接口测试方法,适用于服务系统,所述服务系统包括多个服务,各服务包括至少一个接口,所述多个服务包括至少一个第一服务和至少一个第二服务,所述第一服务为接口调用方,所述第二服务为所述第一服务的接口提供方,所述接口测试方法包括:
响应所述第二服务启动,通过第二代理层获取待提供接口的预设请求格式;
通过所述第二代理层接收所述第一服务发送的接口调用请求;
对比所述接口调用请求的格式与对应的预设请求格式,根据对比结果在所述第二代理层中生成并向所述第一服务返回接口调用响应;
在对比结果表征所述接口调用请求的格式与对应的预设请求格式一致时,若所述接口调用请求携带测试标识,将所述接口调用请求确定为模拟接口调用请求,通过所述第二代理层去除所述模拟接口调用请求;若所述接口调用请求未携带测试标识,将所述接口调用请求确定为真实接口调用请求,通过所述第二代理层将所述真实接口调用请求转发给对应的第二服务进行处理。
同时,本申请实施例还提供了一种接口测试装置,适用于服务系统,所述服务系统包括多个服务,各服务均包括至少一个接口,所述多个服务包括至少一个第一服务和至少一个第二服务,所述第一服务为接口调用方,所述第二服务为所述第一服务的接口提供方,所述接口测试装置包括:
第一获取模块,用于响应所述第一服务启动,通过所述第一服务的第一代理层获取待调用接口的第一接口信息;
第一生成模块,用于根据所述第一接口信息,在所述第一代理层中生成所述待调用接口对应的模拟接口调用请求,其中,所述模拟接口调用请求与真实接口调用请求的格式相同,所述模拟接口调用请求携带测试标识;
发送模块,用于通过所述第一代理层向所述待调用接口对应的第二服务发送模拟接口调用请求,以使所述第二服务根据接收到的所述模拟接口调用请求的格式和所述测试标识生成并向所述第一服务返回接口调用响应;
第一接收模块,用于通过所述第一服务接收所述第二服务返回的模拟接口调用响应,根据所述模拟接口调用响应上报所述待调用接口的接口连通性测试结果。
同时,本申请实施例还提供了一种接口测试装置,适用于服务系统,所述服务系统包括多个服务,各服务均包括至少一个接口,所述多个服务包括至少一个第一服务和至少一个第二服务,所述第一服务为接口调用方,所述第二服务为所述第一服务的接口提供方,所述接口测试装置包括:
第二获取模块,用于响应所述第二服务启动,通过第二代理层获取待提供接口的预设请求格式;
第二接收模块,用于通过所述第二代理层接收所述第一服务发送的接口调用请求;
第二生成模块,用于对比所述接口调用请求的格式与对应的预设请求格式,根据对比结果在所述第二代理层中生成并向所述第一服务返回接口调用响应;
处理模块,用于在对比结果表征所述接口调用请求的格式与对应的预设请求格式一致时,若所述接口调用请求携带测试标识,将所述接口调用请求确定为模拟接口调用请求,通过所述第二代理层去除所述模拟接口调用请求;若所述接口调用请求未携带测试标识,将所述接口调用请求确定为真实接口调用请求,通过所述第二代理层将所述真实接口调用请求转发给对应的第二服务进行处理。
本申请还提供一种电子设备,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行上述任一项所述的接口测试方法中的操作。
本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有多条指令,指令适于处理器进行加载,以执行上述接口测试方法中的步骤。
本申请提供一种接口测试方法、装置、电子设备和计算机可读存储介质,在该方法中,对于作为接口调用方的第一服务,响应第一服务启动,先通过第一服务的第一代理层获取待调用接口的第一接口信息,然后根据第一接口信息在第一代理层中生成待调用接口对应的模拟接口调用请求,模拟接口调用请求与真实接口调用请求的格式相同,模拟接口调用请求携带测试标识,再通过第一代理层向待调用接口对应的第二服务发送模拟接口调用请求,以使第二服务根据接收到的模拟接口调用请求的格式和测试标识生成并向第一服务返回接口调用响应,最后根据接收的第二服务返回的模拟接口调用响应上报待调用接口的接口连通性测试结果;对于作为接口提供方的第二服务,响应第二服务启动,通过第二代理层获取待提供接口的预设请求格式,然后通过第二代理层接收第一服务发送的接口调用请求,并根据接口调用请求的格式与对应的预设请求格式的对比结果,在第二代理层中生成并向第一服务返回接口调用响应,在对比结果表征两者格式一致时,若接口调用请求携带测试标识,将接口调用请求确定为模拟接口调用请求,通过第二代理层去除模拟接口调用请求,若接口调用请求未携带测试标识,将接口调用请求确定为真实接口调用请求,通过第二代理层将真实接口调用请求转发给对应的第二服务进行处理。本申请在各服务中设置代理层,在接口调用方,对可能调用的接口,由代理层生成和真实接口调用请求格式相同的模拟接口调用请求,并用测试标识进行区分后发送给待调用接口对应的服务,在接口提供方,由代理层来判断接收到的接口调用请求是否与预设请求格式一致,然后直接在代理层中生成并返回对应的接口调用响应,同时根据测试标识判断接口调用请求为模拟请求还是真实请求,仅将真实请求转发给第二服务进行处理,模拟请求则进行拦截;通过上述方式,一方面使得接口的连通性测试可以在真实服务环境进行,不需要采用沙盒环境来模拟,降低了成本,另一方面通过测试标识对模拟请求和真实请求进行区分,模拟请求可以模拟所有真实调用的内容,覆盖所有的验证场景,但又不会被第二服务真的处理,不会对真实服务环境造成影响,因此本申请的接口连通性测试难度大大降低,进而提高了服务的稳定性。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。
图1是本申请实施例提供的接口测试方法的应用场景示意图。
图2为本申请实施例中服务系统的示意图。
图3为本申请实施例中两个服务相互调用的示意图。
图4为本申请实施例提供的接口测试方法的第一种流程示意图。
图5为本申请实施例提供的接口测试方法的第二种流程示意图。
图6为本申请实施例中后台展示页面的第一种示意图。
图7为本申请实施例中后台展示页面的第二种示意图。
图8为本申请实施例提供的接口测试方法的第三种流程示意图。
图9为本申请实施例提供的接口测试装置的第一种结构示意图。
图10为本申请实施例提供的接口测试装置的第二种结构示意图。
图11为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种接口测试方法、装置、电子设备和计算机可读存储介质,其中,该接口测试装置可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备。
请参阅图1,图1为本申请实施例所提供的接口测试方法应用的场景示意图,该场景可以包括终端以及服务器,终端之间、服务器之间、以及终端与服务器之间通过各种网关组成的互联网等方式连接通信,其中,该应用场景中包括至少一个第一服务器11和至少一个第二服务器12;第一服务器11和第二服务器12包括本地服务器和/或远程服务器等。
第一服务器11和第二服务器12位于无线网络或有线网络中,以实现两者之间的数据交互,其中:
服务系统可以是微服务系统,微服务系统包括多个服务,各服务均包括至少一个接口,多个服务包括至少一个第一服务和至少一个第二服务,第一服务为接口调用方,第二服务为第一服务的接口提供方,第一服务包括第一服务器11,第二服务包括第二服务器12。微服务系统中任意两个存在接口调用关系的服务均可作为第一服务和第二服务,且根据接口调用需求,同一服务可以仅调用其他服务,即仅作为第一服务,也可以仅被其他服务调用,即仅作为第二服务,还可以即是某个服务的接口调用方,又作为某个服务的接口提供方,即同时作为第一服务和第二服务。对于第一服务和第二服务,根据角色的不同,各自的服务器也执行不同的测试方法。第一服务器11和第二服务器12可以是相同的服务器,也可以是不同的服务器,当两者不同时,第一服务器11控制第一服务实现接口调用,第二服务器12控制第二服务实现接口提供,当两者相同时,同一服务器即控制第一服务实现接口调用,又控制第二服务实现接口提供。
每个服务除了提供正常的功能外,额外设置有各自的代理层,各服务所有对外调用接口都会经过代理层,服务所有提供出去的接口也经过代理层,即代理层会统一管理和维护服务需要调用和提供的接口,代理层在各自服务器的控制下工作。
本申请中的接口测试直接在真实的线上环境进行,在该环境下,第一服务不仅会发出测试的请求,也会发出真实的请求,第二服务不仅会收到测试的请求,也会收到真实的请求。
对于第一服务器11,响应第一服务启动,将第一服务后续可能调用的接口作为待调用接口,通过第一服务的第一代理层获取待调用接口的第一接口信息,并在第一代理层中生成待调用接口对应的模拟接口调用请求,模拟接口调用请求与实际调用接口时的真实接口调用请求的格式相同,区别仅在于模拟接口调用请求携带测试标识,真实接口调用请求未携带测试标识,接着通过第一代理层向待调用接口对应的第二服务发送模拟接口调用请求,并接收第二服务返回的模拟接口调用响应,最后根据模拟接口调用响应上报待调用接口的接口连通性测试结果。
对于第二服务器12,响应第二服务启动,将第二服务可能对外提供的接口作为待提供接口,通过第二服务的第二代理层获取待提供接口的预设请求格式,然后通过第二代理层接收第一服务发送的接口调用请求。第二代理层先对比接口调用请求的格式与对应的预设请求格式是否一致,在一致时,在第二代理层中生成和返回模拟接口调用成功响应,在不一致时,在第二代理层中生成和返回模拟接口调用失败响应,且两种情况下均进行接口调用结果的上报。在一致时,若接口调用请求携带测试标识,将接口调用请求确定为模拟接口调用请求,通过第二代理层去除模拟接口调用请求,则第二服务不会真的来处理该模拟接口调用请求,若接口调用请求未携带测试标识,将接口调用请求确定为真实接口调用请求,通过第二代理层将真实接口调用请求转发给对应的第二服务进行真实处理。
本申请的接口测试方法还包括展示后台,在展示后台的可视化界面中可以进行测试的相关参数设置,以及第一服务和第二服务上报的各类测试结果和调用结果的展示等,便于系统维护人员根据需要进行测试并及时获取测试失败结果和原因,同时展示后台还会在测试失败时主动发出报警提醒,给系统维护人员预留充足的时间来快速解决接口的连通性问题。
需要说明的是,图1所示的系统场景示意图仅仅是一个示例,本申请实施例描述的服务器以及场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例的接口测试方法适用于服务系统,以微服务系统为例,在微服务系统中,通过一系列小型服务的方式来实现一个应用的软件架构,各服务分别部署在多个节点中,各服务分别承担各自的功能,单独完成自己的业务,每个服务关联有一个单独的数据库,服务相关功能的实现需要调用其关联数据库中的数据。不同服务之间通过相互协作实现一个更大的功能,并最终提供整体服务,协作完成一个用户请求操作。在这种微服务系统中,服务是细粒度的,协议是轻量级的,各个服务之间存在相互依赖的关系。
图2中以游戏相关的服务系统为例,可以包括统计服务21、交易服务22和通知服务23,统计服务21关联有统计数据库31,交易服务22关联有交易数据库32,通知服务23关联有通知数据库33,各数据库中的数据用于支持各自服务中功能的实现。服务系统中的服务可以接收用户终端10发送的业务请求,当业务请求的完成仅需要一个服务时,由该服务独立完成,例如请求统计某个数据,则由统计服务21来完成。当业务请求的完成需要多个服务时,由接收业务请求的服务向其他服务发送真实接口调用请求,即各服务之间采用接口调用的方式来实现协作,共同完成该业务请求,例如请求执行某个交易并在对交易情况进行通知,则由交易服务22接收交易请求,在交易数据库32的支持下完成交易操作,同时交易服务22调用通知服务23,使其在通知数据库33的支持下完成通知操作。
由于每个服务是独立的,在没有进行实际调用前,对其他服务的接口是否可用是不知道的,一般情况下是接口默认可用,但是实际场景中经常存在网络抖动问题、依赖服务故障问题、依赖服务出现接口参数调整等诸多问题,导致接口调用失败,无法正常处理业务逻辑。为了保证服务的稳定性,需要提前确认接口调用的连通性,保证在调用接口时接口能正常处理请求。
当前在对接口连通性进行测试时,通常采用两种方式。第一,使用沙盒环境,也就是在真实服务环境之外额外搭建一个模拟环境,来模拟外网情况。沙盒环境是提供给开发者测试用的环境,沙盒环境跟真实服务环境的架构和逻辑几乎相同,且会不定期与真实服务环境进行同步,保持和真实服务环境的设置及数据一致性,因此,可通过在沙盒环境中对接口连通性进行测试来仿真在真实服务环境中对接口连通性的测试,将仿真测试的结果作为真实测试结果。第二,使用正常环境触发,即在真实服务环境下对接口进行真实的触发调用,通过查看操作日志或者直接通过调用返回响应判断的方式确认接口的连通性。
对于第一种方式,需要额外搭建一套系统,对资源的要求和维护成本的要求都相当高,此外,沙盒环境虽然与真实服务环境的相似度较高,但仍然不能百分百保持一致,例如真实服务环境中使用的一些硬件设备较为昂贵,不可能在沙盒环境中也采用一样的拓扑和集群,则沙盒环境与真实服务环境之间会不可避免地产生一些偏差。因此,实际上沙盒环境是不能真正代替真实服务环境的,所以也不能百分百的保证接口连通性测试的准确性。
对于第二种方式,由于真实环境下对接口进行触发调用后,接口对应的服务也会真的去处理对应的调用请求,对于一些常规的调用请求,如请求进入某个赛区、请求查看好友列表等,可以直接使用系统账户发送对应的请求对调用接口,服务处理这些请求不会产生不良后果。而对于一些实质性的调用请求,如请求给排名最高的用户发送重要奖励等,此种情况下只能由排名最高的用户来亲自操作,但一方面,用真实用户的账号来实现测试的目的是很难实现的,需要用户实际参与进来,另一方面,对接口进行触发调用后,接口对应的服务也会真的处理该请求将奖励发送出去,而请求原本只是用于测试接口连通性的,实际该场景下不需要真的给用户发送奖励,服务将奖励发送出去会扰乱正常的奖励发放机制,造成不良影响,因此对于此类实质性调用请求是不能在真实环境下发送的,也即不能在真实环境下去进行此种类型的接口连通性测试验证。此种方式使得真实环境下的验证操作有限,无法全面覆盖所有的接口测试。
通过上述分析可知,当前服务系统的接口连通性测试方法均存在缺陷,均不能满足测试要求。
在本申请实施例中,服务系统包括至少一个第一服务和至少一个第二服务,第一服务为接口调用方,第二服务为第一服务的接口提供方,第一服务包括第一代理层,第二服务包括第二代理层,各代理层为原有服务中新增的一层,用于管理接口调用请求的生成和发送、以及接口调用响应的生成和发送,并负责测试结果向后台的上报。如图3所示,服务A具有消息代理层A,服务B具有消息代理层B,当服务A作为第一服务,服务B作为第二服务时,消息代理层A用于管理服务A所有调用外部接口的行为,消息代理层B用于管理服务B所有接收外部调用接口的行为。同样地,当服务A作为第二服务,服务B作为第一服务时,消息代理层A用于管理服务A所有接收外部调用接口的行为,消息代理层B用于管理服务B所有调用外部接口的行为。
第一服务包括第一服务器,第二服务包括第二服务器,以下实施例将分别从第一服务器和第二服务器的角度对接口测试方法进行详细描述。
在本申请实施例中,请参阅图4,图4是本申请实施例提供的接口测试方法的第一种流程示意图,该方法应用于第一服务器,具体包括:
S401:响应第一服务启动,通过第一服务的第一代理层获取待调用接口的第一接口信息。
在本申请实施例中,各服务包括至少一个接口,各接口提供所属服务的不同子功能,在第一服务启动后,将第一服务可能会调用的所有或部分接口作为待调用接口,并获取待调用接口的第一接口信息,第一接口信息包括各待调用接口属于哪个第二服务、各待调用接口的属性、各待调用接口被正确调用时所需请求的格式等。在第一服务启动后,将所有待调用接口的第一接口信息注册在第一代理层中,则第一代理层可以根据注册操作,从注册信息中获取这些第一接口信息。
S402:根据第一接口信息,在第一代理层中生成待调用接口对应的模拟接口调用请求,其中,模拟接口调用请求与真实接口调用请求的格式相同,模拟接口调用请求携带测试标识。
在获取到第一接口信息后,根据第一接口信息的具体内容,在第一代理层中生成模拟接口调用请求,模拟接口调用请求与各待调用接口一一对应,且模拟接口调用请求与真实接口调用请求的格式相同,区别仅在于模拟接口调用请求携带有测试标识,如请求字段中携带“test_flag=1”这样的标志位,而真实接口调用请求未携带测试标识。
在本申请实施例中,真实接口调用请求指服务系统在实际上线后使用场景下,当第一服务需要调用某个第二服务的某个接口时,实际向该接口发送的调用请求。模拟接口调用请求与真实接口调用请求的格式相同指两者包括相同的参数,具体地,假设某个待调用接口对应的真实接口调用请求包括参数a、参数b和参数c,则生成的模拟接口调用请求也包括参数a、参数b和参数c,只是在模拟接口调用请求中额外增加了用于表示该请求为测试请求的字段。
在一种实施例中,模拟接口调用请求与真实接口调用请求的内容相同,即某个真实接口调用请求是用于请求发送道具奖励,则模拟接口调用请求也是请求发送道具奖励。
在一种实施例中,在S401之后还包括:判断待调用接口对应的第二服务与第一服务之间的网络是否连通;若是,根据第一接口信息,在第一代理层中生成待调用接口对应的模拟接口调用请求;若否,上报网络连通性失败结果。
在测试第二服务中的待调用接口与第一服务之间的连通性时,在直接对接口进行测试之前,需要先考虑两个服务之间的网络是否连通,若两个服务之间的网络是连通的,则可以进一步通过发送模拟接口调用请求来验证接口的连通性,若两个服务之间的网络不连通,则即使生成了模拟接口调用请求,对方也无法收到,因此若两者之间网络不连通,先不执行生成模拟接口调用请求的步骤,而是先上报给后台网络连通性失败结果。后台在接收到该上报消息后,对网络问题进行处理,若处理后网络可以连通,则再继续执行生成模拟接口调用请求以及后续的步骤。
S403:通过第一代理层向待调用接口对应的第二服务发送模拟接口调用请求,以使第二服务根据接收到的模拟接口调用请求的格式和测试标识生成并向第一服务返回接口调用响应。
在前述步骤中进行接口注册时具有注册顺序,在发送模拟接口调用请求时可以按照注册顺序依次向各待调用接口对应的第二服务发送模拟接口调用请求,当一个第二服务中有两个或多个待调用接口时,对每个待调用接口均需发送一个模拟接口调用请求。当然,也可以按照其他顺序进行模拟接口调用请求的发送,如按照各待调用接口的调用频率、各待调用接口的重要程度或服务间业务关联度高低的顺序等,本领域的技术人员可根据需要设置发送顺序。
对于第二服务,响应第二服务启动,将第二服务可以向外提供的所有或部分接口作为待提供接口,并获取待提供接口的第二接口信息,第二接口信息包括待提供接口属于哪个第二服务、待提供接口的属性、待提供接口被正确调用时所需请求的格式等,将所有待提供接口的第二接口信息注册在第二代理层中,则第二代理层可以根据注册操作,从注册信息中获取这些第二接口信息。根据第二接口信息中待提供接口被正确调用时所需请求的格式,可以确定待提供接口的预设请求格式,预设请求格式指能够正常调用某个接口的标准格式,在某个接口投入使用且接口相关参数未被调整时,能够成功调用该接口的请求均需要满足该预设请求格式,而当某个接口的相关参数被调整后,能够成功调用该接口的请求需要满足新的预设请求格式。
待调用接口为待提供接口中的部分或全部接口,第二服务在接收到模拟接口调用请求后,第二代理层先判断该接口调用请求是针对第二服务的哪个待提供接口的,然后将该接口调用请求与该待调用接口的预设请求格式进行对比,看两者的格式是否一致,根据对比一致或对比不一致的结果在第二代理层中生成接口调用响应,并返回给发送该接口调用请求的第一服务。
具体地,当接口调用请求的格式与对应的预设请求格式一致时,在第二代理层中生成并向第一服务返回接口调用成功响应;当接口调用请求的格式与对应的预设请求格式不一致时,在第二代理层中生成并向第一服务返回接口调用失败响应。当两者的格式一致时,表示对应的待调用接口未进行相关参数的调整,后续针对该待调用接口发送的真实接口调用请求均可以成功调用该接口,此时向第一服务返回接口调用成功响应,以告知第一服务当前接口调用请求的格式正确,后续可继续采用当前格式发送接口调用请求。当两者的格式不一致时,表示对应的待调用接口进行了相关参数的调整,后续针对该待调用接口发送的真实接口调用请求如果仍然沿用当前的格式,则不能成功调用该接口,此时向第一服务返回接口调用失败响应,以告知第一服务当前接口调用请求的格式错误,未能成功调用该接口,需要及时采取相应措施处理。
在一种实施例中,第二服务根据接收到的模拟接口调用请求的格式和测试标识生成并向第一服务返回接口调用响应,具体包括:通过第二服务的第二代理层识别模拟接口调用请求的格式与对应的预设请求格式是否一致;在识别到模拟接口调用请求的格式与对应的预设请求格式一致,且携带测试标识时,通过第二代理层去除模拟接口调用请求,且在第二代理层中生成并向第一服务返回接口调用响应。在接口调用请求的格式与对应的预设请求格式一致时,表示该待提供接口可以正常被调用,且可以进一步执行该请求对应的操作。当接口调用请求为真实接口调用请求,正常调用接口和执行请求对应的操作是没有问题的,但如果是模拟接口调用请求,如果接口也被调用且执行了对应操作,则会造成服务功能的紊乱。因此,在两者格式一致时,第二服务先根据接口调用请求是否携带有测试标识来对接口调用请求的身份进行判别,若其为模拟接口调用请求,则直接由第二代理层去除该模拟接口调用请求,使得该请求不会到达真正的第二服务中去,第二服务也不会真的执行对应操作,从而保证了真实线上环境的可靠性;若其为真实接口调用请求,通过第二代理层将真实接口调用请求转发给对应的第二服务进行处理,执行正常的操作流程。
在一种实施例中,在S404之前还包括步骤:通过第一服务接收用户终端发送的业务请求;根据业务请求,通过第一代理层向对应的第二服务发送真实接口调用请求。由于本申请的接口测试方法是在真实线上环境进行的测试,而真实线上环境中各服务之间也会存在接口调用的需求,因此在第一服务接收到用户终端发送的业务请求后,根据该业务请求确定需要调用的第二服务和第二服务中需要调用的接口,然后在第一代理层中生成并向第二服务发送真实接口调用请求。
S404:通过第一服务接收第二服务返回的接口调用响应,根据接口调用响应上报待调用接口的接口连通性测试结果。
第二服务在接收到真实接口调用请求和模拟接口调用请求后,均会返回对应的接口调用响应,接口调用响应包括接口调用成功响应和接口调用失败响应,其中接口调用成功响应可以包括真实接口调用成功响应和模拟接口调用成功响应,接口调用失败响应也可以包括真实接口调用失败响应和模拟接口调用失败响应,当接收到模拟接口调用成功响应和模拟接口调用失败响应后,根据响应内容的不同,第一服务器向后台上报不同的接口连通性测试结果,如测试正常或测试失败等。
在一种实施例中,本申请的服务系统还包括展示后台,展示后台具有展示页面,第一服务器上报的各类结果如网络连通性失败结果、接口连通性测试结果等均会展示在展示页面上,以便于系统维护人员及时获取测试失败结果和原因,展示页面具有查询功能,系统维护人员可以在展示页面上执行查询操作,如根据服务名进行查询,以实现快速查看成功和失败结果。如图6所示,在展示页面上可以输入某个服务上的应用名关键字,点击查询按钮,则会展示出应用名、域名、uri和测试结果。
在一种实施例中,上述方法还包括:获取预设轮询参数,预设轮询参数包括轮询时间段和轮询周期;根据预设轮询参数,在轮询时间段内,按照轮询周期重复生成和发送模拟接口调用请求的操作。
在上述实施例中,响应第一服务启动即自动进行模拟接口调用请求的生成和发送、接口调用响应的接收和测试结果的上报,则各接口在被真实调用之前已经完成了连通性测试,当连通性有问题时可及时上报以得到维修,因此在正式使用时各接口均可实现正常调用。然而,在系统使用过程中,也会存在网络抖动问题、服务故障问题、接口参数调整等诸多问题,易造成接口调用失败,则可以线获取预设轮询参数,采用定时轮询的方式,在轮询时间段内按照轮询周期重复生成和发送模拟接口调用请求的操作,以保证轮询时间段内接口的连通性,例如,取轮询时间段为一周,轮询周期为一天,则在一周内的每一天都进行一次生成和发送模拟接口调用请求的操作。轮询周期的粒度可根据需要设置,最小为1分钟,通常情况下可以天为单位。
在一种实施例中,上述方法还包括:展示连通性测试界面;通过连通性测试界面接收测试模式参数配置,测试模式参数包括初始测试模式参数、实时测试模式参数或定时测试模式参数;根据测试模式参数,生成并发送模拟接口调用请求。
展示后台的可视化界面还包括连通性测试界面,在连通性测试界面中,用户可执行测试模式参数配置操作,测试模式参数包括初始测试模式参数、实时测试模式参数或定时测试模式参数,每种参数对应一种测试方式,其中初始测试模式参数为控制第一服务初始启动时即进行接口测试所需的各项参数,实时测试模式参数为控制第一服务在当前时刻进行接口测试所需的各项参数,定时测试模式参数为控制第一服务在预设时间段内进行接口测试所需的各项参数。三种类型的测试模式参数可以单独配置,也可以同时配置,在单独配置时仅选择上述三种模式中的一种进行接口连通性测试,在同时配置时可以同时执行上述三种模式或同时执行上述三种模式中的任意两者,例如同时配置初始测试模式参数和定时测试模式参数,则在第一服务初始开启时会进行接口连通性测试,同时在定时测试模式参数对应的测试时间段也会进行接口连通性测试。即,本申请的展示后台可提供多模式的接口测试选择,可满足不同场景下的接口测试需求。
以同时配置初始测试模式参数和实时测试模式参数为例,当服务启动后会马上进行针对某个服务的接口测试,测试完成后在展示后台的测试界面上展示该次测试的记录,如图7所示,可包括测试的检查id、检查描述、测试的服务sid、服务cid、操作人和操作时间等,同时在每条记录后均会有执行按钮,当点击该执行按钮时,会实时按照相同的方式对该服务的对应接口再进行一次测试,以知晓当前时刻对应接口的连通性。
在一种实施例中,在S404之后还包括:获取预设报警参数,预设报警参数包括报警对象和报警方式;在接口连通性测试结果表征接口连通性测试失败时,生成报警信息;根据所述预设报警参数,以所述报警方式向所述报警对象发送报警信息。展示后台的可视化界面还可以包括报警界面,通过报警界面接受预设报警参数配置操作,根据预设报警参数确定报警对象和报警方式,报警对象可以是系统的维护人员,报警方式可以是短信报警、电话报警或popo消息报警等,在接口连通性失败时,主动触发报警功能,按照预设的报警方式向报警对象发送报警消息,以便于系统维护人员及时进行处理。
请参阅图5,图5是本申请实施例提供的接口测试方法的第二种流程示意图,该方法应用于第二服务器,具体包括:
S501:在第二服务启动后,通过第二代理层待提供接口的预设请求格式。
在第二服务启动后,将第二服务可以向外提供的所有或部分接口作为待提供接口,并获取待提供接口的第二接口信息,第二接口信息包括待提供接口属于哪个第二服务、待提供接口的属性、待提供接口被正确调用时所需请求的格式等。在第二服务启动后,将所有待提供接口的第二接口信息注册在第二代理层中,则第二代理层可以根据注册操作,从注册信息中获取这些第二接口信息。
根据第二接口信息中待提供接口被正确调用时所需请求的格式,可以确定待提供接口的预设请求格式,预设请求格式指能够正常调用某个接口的标准格式,在某个接口投入使用且接口相关参数未被调整时,能够成功调用该接口的请求均需要满足该预设请求格式,而当某个接口的相关参数被调整后,能够成功调用该接口的请求需要满足新的预设请求格式。
S502:通过第二代理层接收第一服务发送的接口调用请求。
第一服务向第二服务发送的所有接口调用请求,均通过第二代理层接收,接口调用请求包括模拟接口调用请求和真实接口调用请求,两者格式相同,区别仅在于模拟接口调用请求携带测试标识,而真实接口调用请求未携带测试标识。
S503:对比接口调用请求的格式与对应的预设请求格式,根据对比结果在第二代理层中生成并向第一服务返回接口调用响应。
在接受到接口调用请求后,第二代理层先判断该接口调用请求是针对第二服务的哪个待提供接口的,然后将该接口调用请求与该待提供接口的预设请求格式进行对比,看两者的格式是否一致,根据对比一致或对比不一致的结果在第二代理层中生成接口调用响应,并返回给发送该接口调用请求的第一服务。
在一种实施例中,S503具体包括:当接口调用请求的格式与对应的预设请求格式一致时,在第二代理层中生成并向第一服务返回接口调用成功响应;当接口调用请求的格式与对应的预设请求格式不一致时,在第二代理层中生成并向第一服务返回接口调用失败响应;上报接口调用结果。当两者的格式一致时,表示对应的待提供接口未进行相关参数的调整,后续针对该待提供接口发送的真实接口调用请求均可以成功调用该接口,此时向第一服务返回接口调用成功响应,以告知第一服务当前接口调用请求的格式正确,后续可继续采用当前格式发送接口调用请求。当两者的格式不一致时,表示对应的待提供接口进行了相关参数的调整,后续针对该待提供接口发送的真实接口调用请求如果仍然沿用当前的格式,则不能成功调用该接口,此时向第一服务返回接口调用失败响应,以告知第一服务当前接口调用请求的格式错误,未能成功调用该接口,需要及时采取相应措施处理。在得到对比结果后,根据对比结果的不同,第二服务器向后台上报不同的接口调用结果,如调用正常或调用失败等。
S504:在对比结果表征接口调用请求的格式与对应的预设请求格式一致时,若接口调用请求携带测试标识,将接口调用请求确定为模拟接口调用请求,通过第二代理层去除模拟接口调用请求;若接口调用请求未携带测试标识,将接口调用请求确定为真实接口调用请求,通过第二代理层将真实接口调用请求转发给对应的第二服务进行处理。
在接口调用请求的格式与对应的预设请求格式一致时,表示该待提供接口可以正常被调用,且可以进一步执行该请求对应的操作。当接口调用请求为真实接口调用请求,正常调用接口和执行请求对应的操作是没有问题的,但如果是模拟接口调用请求,如果接口也被调用且执行了对应操作,则会造成服务功能的紊乱。因此,在两者格式一致时,先根据接口调用请求是否携带有测试标识来对接口调用请求的身份进行判别,若其为模拟接口调用请求,则直接由第二代理层去除该模拟接口调用请求,使得该请求不会到达真正的第二服务中去,第二服务也不会真的执行对应操作,从而保证了真实线上环境的可靠性;若其为真实接口调用请求,通过第二代理层将真实接口调用请求转发给对应的第二服务进行处理,执行正常的操作流程。
由上述实施例可知,本申请提供的接口测试方法,在各服务中设置代理层,在接口调用方,对可能调用的接口,由代理层生成和真实接口调用请求格式相同的模拟接口调用请求,并用测试标识进行区分后发送给接口对应的服务,在接口提供方,由代理层来判断接收到的接口调用请求是否与预设请求格式一致,然后直接在代理层中生成并返回对应的接口调用响应,同时根据测试标识判断接口调用请求为模拟请求还是真实请求,仅将真实请求转发给第二服务进行处理,模拟请求则进行拦截;通过上述方式,一方面使得接口的连通性测试可以在真实服务环境进行,所有的请求和响应均在真实环境中正常产生和发送,不需要采用沙盒环境来模拟,降低了成本,另一方面通过测试标识对模拟请求和真实请求进行区分,模拟请求可以模拟所有真实调用的内容,覆盖所有的验证场景,但又不会被第二服务真的处理,不会对真实服务环境造成影响,例如可以模拟排名最高的用户获取重要奖励的请求,对应的接口可以在该项请求下完成连通性测试,但服务不会处理请求去真的发送奖励。因此,本申请的接口连通性测试难度大大降低,进而提高了服务的稳定性。
请参阅图8,图8是本申请实施例提供的接口测试方法的第三种流程示意图,该方法对某个服务同时作为接口调用方和接口提供方时的处理逻辑进行说明,具体包括:
801:服务启动。
802:注册接口信息。
将服务可能会调用的所有或部分接口作为待调用接口,在服务的代理层中注册这些待调用接口的第一接口信息,且将服务可以向外提供的所有或部分接口作为待提供接口,在服务的代理层中注册这些待提供接口的第二接口信息。
803:注册接口信息是否正确。
代理层检查注册的第一接口信息和第二接口信息是否正确,若正确,执行806,若不正确,执行804:提示接口信息注册失败,并重新执行注册操作,直至所以的接口信息正确为止。
当服务作为接口调用方805时,先执行806:判断网络是否通畅。若两个服务之间的网络不连通,则即使发起了请求,对方也无法收到,因此首先要检查本服务与其他服务之间的网络连通性,当两者之间网络不连通,先不执行后续步骤,而是先执行809:上报信息,上报给后台网络连通性失败结果,后台在接收到该上报消息后,对网络问题进行处理,若处理后网络可以连通,则再继续执行后续步骤。
807:构建模拟请求。
当该服务与其他服务的网络连通正常时,根据第一接口信息在第一代理层中生成模拟接口调用请求,模拟接口调用请求与各待调用接口一一对应,且模拟接口调用请求与真实接口调用请求的格式相同,区别仅在于模拟接口调用请求携带有测试标识,如请求字段中携带“test_flag=1”这样的标志位,而真实接口调用请求未携带测试标识。在前述步骤中进行接口注册时具有注册顺序,在发送模拟接口调用请求时可以按照注册顺序依次向各待调用接口对应的服务发送模拟接口调用请求。
808:判断调用是否正常。
其他服务在接收到接口调用请求后,会返回接口调用响应,接口调用响应用于表征接收接口调用请求的格式与接口可以被成功调用的预设请求格式是否一致,若一致,给出接口调用成功响应,若不一致,给出接口调用失败响应。
809:上报信息。
代理层通过接口调用响应可判断接口调用是否正常,并进行相应的结果上报。
810:检查结束。
当服务作为接口提供方811时,先执行812:判断格式是否正确。服务在通过代理层接收到接口调用请求后,先判断该接口调用请求是针对哪个待提供接口的,然后将该接口调用请求与该待提供接口的预设请求格式进行对比,判断两者的格式是否一致,若一致,生成接口调用成功响应,若不一致,生成接口调用失败响应,并返回给发送该接口调用请求的服务。在格式不一致时,还执行814:上报信息,将调用失败的结果上报。
813:判断是否为模拟请求。
在接口调用请求的格式与对应的预设请求格式一致时,表示该待提供接口可以正常被调用,且可以进一步执行该请求对应的操作。当接口调用请求为真实接口调用请求,正常调用接口和执行请求对应的操作是没有问题的,但如果是模拟接口调用请求,如果接口也被调用且执行了对应操作,则会造成服务功能的紊乱。因此,在两者格式一致时,先根据接口调用请求是否携带有测试标识来对接口调用请求的身份进行判别,若其为模拟接口调用请求,则直接由代理层去除该模拟接口调用请求,使得该请求不会到达真正的服务中去,服务也不会真的执行对应操作,从而保证了真实线上环境的可靠性;若其为真实接口调用请求,执行815:转给服务,即通过代理层将真实接口调用请求转发给服务进行处理,执行正常的操作流程。
814:上报信息。
将接口调用情况上报给后台。
816:检查结束。
通过上述步骤可知,本申请通过在服务中设置代理层,当服务作为接口调用方和接口提供方时,均可通过代理层在真实线上环境中完成接口测试,从而降低了接口连通性测试难度。
在上述实施例所述方法的基础上,本实施例将从接口测试装置的角度进一步进行描述,该接口测试装置适用于服务系统,所述服务系统包括多个服务,各服务均包括至少一个接口,所述多个服务包括至少一个第一服务和至少一个第二服务,所述第一服务为接口调用方,所述第二服务为所述第一服务的接口提供方,所述第一服务包括第一服务器,所述第二服务包括第二服务器,请参阅图9,图9具体描述了本申请实施例提供的位于第一服务器内的接口测试装置,其可以包括:
第一获取模块101,用于响应所述第一服务启动,通过所述第一服务的第一代理层获取待调用接口的第一接口信息;
第一生成模块102,用于根据所述第一接口信息,在所述第一代理层中生成所述待调用接口对应的模拟接口调用请求,其中,所述模拟接口调用请求与真实接口调用请求的格式相同,所述模拟接口调用请求携带测试标识;
发送模块103,用于通过所述第一代理层向所述待调用接口对应的第二服务发送模拟接口调用请求,以使所述第二服务根据接收到的所述模拟接口调用请求的格式和所述测试标识生成并向所述第一服务返回接口调用响应;
第一接收模块104,用于通过第一服务接收所述第二服务返回的接口调用响应,根据所述接口调用响应上报所述待调用接口的接口连通性测试结果。
在一种实施例中,发送模块103用于,通过所述第二服务的第二代理层识别所述模拟接口调用请求的格式与对应的预设请求格式是否一致;在识别到所述模拟接口调用请求的格式与对应的预设请求格式一致,且携带测试标识时,通过所述第二代理层去除所述模拟接口调用请求,且在所述第二代理层中生成并向所述第一服务返回接口调用响应。
在一种实施例中,所述接口测试装置还包括网络连通性测试模块,网络连通性测试模块用于判断所述待调用接口对应的第二服务与所述第一服务之间的网络是否连通;若是,根据所述第一接口信息,在所述第一代理层中生成所述待调用接口对应的模拟接口调用请求;若否,上报网络连通性失败结果。
在一种实施例中,所述接口测试装置还包括第一发送模块,第一发送模块用于通过所述第一服务接收用户终端发送的业务请求;根据所述业务请求,通过所述第一代理层向对应的第二服务发送真实接口调用请求,以使所述第二服务的第二代理层在接收到所述真实接口调用请求时,将所述真实接口调用请求转发给对应的第二服务进行处理。
在一种实施例中,所述接口测试装置还包括轮询模块,所述轮询模块用于获取预设轮询参数,所述预设轮询参数包括轮询时间段和轮询周期;根据所述预设轮询参数,在所述轮询时间段内,按照所述轮询周期重复生成和发送模拟接口调用请求的操作。
在一种实施例中,所述接口测试装置还包括配置模块,所述配置模块用于展示连通性测试界面;通过所述连通性测试界面接收测试模式参数配置,所述测试模式参数包括初始测试模式参数、实时测试模式参数或定时测试模式参数;根据所述测试模式参数,生成并发送所述模拟接口调用请求。
在一种实施例中,所述接口测试装置还包括报警模块,所述报警模块用于获取预设报警参数,所述预设报警参数包括报警对象和报警方式;在所述接口连通性测试结果表征接口连通性测试失败时,生成报警信息;根据所述预设报警参数,以所述报警方式向所述报警对象发送所述报警信息。
请参阅图10,图10具体描述了本申请实施例提供的位于第二服务器内的接口测试装置,其可以包括:
第二获取模块105,用于在第二服务启动后,通过第二代理层获取待提供接口的预设请求格式;
第二接收模块106,用于通过所述第二代理层接收所述第一服务发送的接口调用请求;
第二生成模块107,用于对比所述接口调用请求的格式与对应的预设请求格式,根据对比结果在所述第二代理层中生成并向所述第一服务返回接口调用响应;
处理模块108,用于在对比结果表征所述接口调用请求的格式与对应的预设请求格式一致时,若所述接口调用请求携带测试标识,将所述接口调用请求确定为模拟接口调用请求,通过所述第二代理层去除所述模拟接口调用请求;若所述接口调用请求未携带测试标识,将所述接口调用请求确定为真实接口调用请求,通过所述第二代理层将所述真实接口调用请求转发给对应的第二服务进行处理。
在一种实施例中,第二生成模块107用于,当所述接口调用请求的格式与对应的预设请求格式一致时,在所述第二代理层中生成并向所述第一服务返回接口调用成功响应;当所述接口调用请求的格式与对应的预设请求格式不一致时,在所述第二代理层中生成并向所述第一服务返回接口调用失败响应;上报接口调用结果。
区别于现有技术,本申请提供的接口测试装置,在各服务中设置代理层,在接口调用方,对可能调用的接口,由代理层生成和真实接口调用请求格式相同的模拟接口调用请求,并用测试标识进行区分后发送给各接口对应的服务,在接口提供方,由代理层来判断接收到的接口调用请求是否与预设请求格式一致,然后直接在代理层中生成并返回对应的接口调用响应,同时根据测试标识判断接口调用请求为模拟请求还是真实请求,仅将真实请求转发给第二服务进行处理,模拟请求则进行拦截;通过上述方式,一方面使得接口的连通性测试可以在真实服务环境进行,所有的请求和响应均在真实环境中正常产生和发送,不需要采用沙盒环境来模拟,降低了成本,另一方面通过测试标识对模拟请求和真实请求进行区分,模拟请求可以模拟所有真实调用的内容,覆盖所有的验证场景,但又不会被第二服务真的处理,不会对真实服务环境造成影响,例如可以模拟排名最高的用户获取重要奖励的请求,对应的接口可以在该项请求下完成连通性测试,但服务不会处理请求去真的发送奖励。因此,本申请的接口连通性测试难度大大降低,进而提高了服务的稳定性。
相应的,本申请实施例还提供一种电子设备,如图11所示,该电子设备可以包括射频(RF,Radio Frequency)电路1101、包括有一个或一个以上计算机可读存储介质的存储器1102、输入单元1103、显示单元1104、传感器1105、音频电路1106、WiFi模块1107、包括有一个或者一个以上处理核心的处理器1108、以及电源1109等部件。本领域技术人员可以理解,图11中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
射频电路1101可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1108处理;另外,将涉及上行的数据发送给基站。存储器1102可用于存储软件程序以及模块,处理器1108通过运行存储在存储器1102的软件程序以及模块,从而执行各种功能应用以及数据处理。输入单元1103可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
显示单元1104可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
电子设备还可包括至少一种传感器1105,比如光传感器、运动传感器以及其他传感器。音频电路1106包括扬声器,扬声器可提供用户与电子设备之间的音频接口。
WiFi属于短距离无线传输技术,电子设备通过WiFi模块1107可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块1107,但是可以理解的是,其并不属于电子设备的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略。
处理器1108是电子设备的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1102内的软件程序和/或模块,以及调用存储在存储器1102内的数据,执行电子设备的各种功能和处理数据,从而对手机进行整体监控。
电子设备还包括给各个部件供电的电源1109(比如电池),优选的,电源可以通过电源管理系统与处理器1108逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,服务器中的处理器1108会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1102中,并由处理器1108来运行存储在存储器1102中的应用程序,从而实现以下功能:
响应第一服务启动,通过第一服务的第一代理层获取待调用接口的第一接口信息;根据第一接口信息,在第一代理层中生成待调用接口对应的模拟接口调用请求,其中,模拟接口调用请求与真实接口调用请求的格式相同,模拟接口调用请求携带测试标识;通过第一代理层向待调用接口对应的第二服务发送模拟接口调用请求,以使第二服务根据接收到的模拟接口调用请求的格式和测试标识生成并向第一服务返回接口调用响应;接收第二服务返回的接口调用响应,根据接口调用响应上报待调用接口的接口连通性测试结果。
或者实现以下功能:
响应第二服务启动,通过第二代理层获取待提供接口的预设请求格式;通过第二代理层接收第一服务发送的接口调用请求;对比接口调用请求的格式与对应的预设请求格式,根据对比结果在第二代理层中生成并向第一服务返回接口调用响应;在对比结果表征接口调用请求的格式与对应的预设请求格式一致时,若接口调用请求携带测试标识,将接口调用请求确定为模拟接口调用请求,通过第二代理层去除模拟接口调用请求;若接口调用请求未携带测试标识,将接口调用请求确定为真实接口调用请求,通过第二代理层将真实接口调用请求转发给对应的第二服务进行处理。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文的详细描述,此处不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以实现以下功能:
响应第一服务启动,通过第一服务的第一代理层获取待调用接口的第一接口信息;根据第一接口信息,在第一代理层中生成待调用接口对应的模拟接口调用请求,其中,模拟接口调用请求与真实接口调用请求的格式相同,模拟接口调用请求携带测试标识;通过第一代理层向待调用接口对应的第二服务发送模拟接口调用请求,以使第二服务根据接收到的模拟接口调用请求的格式和测试标识生成并向第一服务返回接口调用响应;接收第二服务返回的模拟接口调用响应,根据模拟接口调用响应上报待调用接口的接口连通性测试结果。
或者实现以下功能:
响应第二服务启动,通过第二代理层获取待提供接口的预设请求格式;通过第二代理层接收第一服务发送的接口调用请求;对比接口调用请求的格式与对应的预设请求格式,根据对比结果在第二代理层中生成并向第一服务返回接口调用响应;在对比结果表征接口调用请求的格式与对应的预设请求格式一致时,若接口调用请求携带测试标识,将接口调用请求确定为模拟接口调用请求,通过第二代理层去除模拟接口调用请求;若接口调用请求未携带测试标识,将接口调用请求确定为真实接口调用请求,通过第二代理层将真实接口调用请求转发给对应的第二服务进行处理。
以上对本申请实施例所提供的一种接口测试方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例的技术方案的范围。
Claims (10)
1.一种接口测试方法,其特征在于,适用于服务系统,所述服务系统包括多个服务,各服务均包括至少一个接口,所述多个服务包括至少一个第一服务和至少一个第二服务,所述第一服务为接口调用方,所述第二服务为所述第一服务的接口提供方,所述接口测试方法包括:
响应所述第一服务启动,通过所述第一服务的第一代理层获取待调用接口的第一接口信息;
根据所述第一接口信息,在所述第一代理层中生成所述待调用接口对应的模拟接口调用请求,其中,所述模拟接口调用请求与真实接口调用请求的格式相同,所述模拟接口调用请求携带测试标识;
通过所述第一代理层向所述待调用接口对应的第二服务发送模拟接口调用请求,以使所述第二服务的第二代理层在识别到所述模拟接口调用请求的格式与对应的预设请求格式一致,且携带测试标识时,通过所述第二代理层去除所述模拟接口调用请求,且在所述第二代理层中生成并向所述第一服务返回接口调用响应;
通过所述第一服务接收所述第二服务返回的接口调用响应,根据所述接口调用响应上报所述待调用接口的接口连通性测试结果。
2.如权利要求1所述的接口测试方法,其特征在于,在通过所述第一服务的第一代理层获取所述待调用接口的第一接口信息的步骤之后,还包括:
判断所述待调用接口对应的第二服务与所述第一服务之间的网络是否连通;
若是,根据所述第一接口信息,在所述第一代理层中生成所述待调用接口对应的模拟接口调用请求;若否,上报网络连通性失败结果。
3.如权利要求1所述的接口测试方法,其特征在于,在通过所述第一服务接收所述第二服务返回的接口调用响应的步骤之前,还包括:
通过所述第一服务接收用户终端发送的业务请求;
根据所述业务请求,通过所述第一代理层向对应的第二服务发送真实接口调用请求,以使所述第二服务的第二代理层在接收到所述真实接口调用请求时,将所述真实接口调用请求转发给对应的第二服务进行处理。
4.如权利要求1所述的接口测试方法,其特征在于,所述接口测试方法还包括:
获取预设轮询参数,所述预设轮询参数包括轮询时间段和轮询周期;
根据所述预设轮询参数,在所述轮询时间段内,按照所述轮询周期重复生成和发送模拟接口调用请求的操作。
5.如权利要求1所述的接口测试方法,其特征在于,所述接口测试方法还包括:
展示连通性测试界面;
通过所述连通性测试界面接收测试模式参数配置,所述测试模式参数包括初始测试模式参数、实时测试模式参数或定时测试模式参数;
根据所述测试模式参数,生成并发送所述模拟接口调用请求。
6.如权利要求1所述的接口测试方法,其特征在于,在根据所述接口调用响应上报所述待调用接口的接口连通性测试结果的步骤之后,还包括:
获取预设报警参数,所述预设报警参数包括报警对象和报警方式;
在所述接口连通性测试结果表征接口连通性测试失败时,生成报警信息;
根据所述预设报警参数,以所述报警方式向所述报警对象发送所述报警信息。
7.一种接口测试方法,其特征在于,适用于服务系统,所述服务系统包括多个服务,各服务包括至少一个接口,所述多个服务包括至少一个第一服务和至少一个第二服务,所述第一服务为接口调用方,所述第二服务为所述第一服务的接口提供方,所述接口测试方法包括:
响应所述第二服务启动,通过第二代理层获取待提供接口的预设请求格式;
通过所述第二代理层接收所述第一服务发送的接口调用请求;
对比所述接口调用请求的格式与对应的预设请求格式,根据对比结果在所述第二代理层中生成并向所述第一服务返回接口调用响应;
在对比结果表征所述接口调用请求的格式与对应的预设请求格式一致时,若所述接口调用请求携带测试标识,将所述接口调用请求确定为模拟接口调用请求,通过所述第二代理层去除所述模拟接口调用请求;若所述接口调用请求未携带测试标识,将所述接口调用请求确定为真实接口调用请求,通过所述第二代理层将所述真实接口调用请求转发给对应的第二服务进行处理。
8.如权利要求7所述的接口测试方法,其特征在于,对比所述接口调用请求的格式与对应的预设请求格式,根据对比结果在所述第二代理层中生成并向所述第一服务返回接口调用响应的步骤,包括:
当所述接口调用请求的格式与对应的预设请求格式一致时,在所述第二代理层中生成并向所述第一服务返回接口调用成功响应;
当所述接口调用请求的格式与对应的预设请求格式不一致时,在所述第二代理层中生成并向所述第一服务返回接口调用失败响应;
上报接口调用结果。
9.一种接口测试装置,其特征在于,适用于服务系统,所述服务系统包括多个服务,各服务均包括至少一个接口,所述多个服务包括至少一个第一服务和至少一个第二服务,所述第一服务为接口调用方,所述第二服务为所述第一服务的接口提供方,所述接口测试装置包括:
第一获取模块,用于响应所述第一服务启动,通过所述第一服务的第一代理层获取待调用接口的第一接口信息;
第一生成模块,用于根据所述第一接口信息,在所述第一代理层中生成所述待调用接口对应的模拟接口调用请求,其中,所述模拟接口调用请求与真实接口调用请求的格式相同,所述模拟接口调用请求携带测试标识;
发送模块,用于通过所述第一代理层向所述待调用接口对应的第二服务发送模拟接口调用请求,以使所述第二服务的第二代理层在识别到所述模拟接口调用请求的格式与对应的预设请求格式一致,且携带测试标识时,通过所述第二代理层去除所述模拟接口调用请求,且在所述第二代理层中生成并向所述第一服务返回接口调用响应;
第一接收模块,用于通过所述第一服务接收所述第二服务返回的接口调用响应,根据所述接口调用响应上报所述待调用接口的接口连通性测试结果。
10.一种接口测试装置,其特征在于,适用于服务系统,所述服务系统包括多个服务,各服务均包括至少一个接口,所述多个服务包括至少一个第一服务和至少一个第二服务,所述第一服务为接口调用方,所述第二服务为所述第一服务的接口提供方,所述接口测试装置包括:
第二获取模块,用于响应所述第二服务启动,通过第二代理层获取待提供接口的预设请求格式;
第二接收模块,用于通过所述第二代理层接收所述第一服务发送的接口调用请求;
第二生成模块,用于对比所述接口调用请求的格式与对应的预设请求格式,根据对比结果在所述第二代理层中生成并向所述第一服务返回接口调用响应;
处理模块,用于在对比结果表征所述接口调用请求的格式与对应的预设请求格式一致时,若所述接口调用请求携带测试标识,将所述接口调用请求确定为模拟接口调用请求,通过所述第二代理层去除所述模拟接口调用请求;若所述接口调用请求未携带测试标识,将所述接口调用请求确定为真实接口调用请求,通过所述第二代理层将所述真实接口调用请求转发给对应的第二服务进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111172758.XA CN113923134B (zh) | 2021-10-08 | 2021-10-08 | 一种接口测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111172758.XA CN113923134B (zh) | 2021-10-08 | 2021-10-08 | 一种接口测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113923134A CN113923134A (zh) | 2022-01-11 |
CN113923134B true CN113923134B (zh) | 2023-03-24 |
Family
ID=79238390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111172758.XA Active CN113923134B (zh) | 2021-10-08 | 2021-10-08 | 一种接口测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113923134B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949508A (zh) * | 2019-05-17 | 2020-11-17 | 北京京东尚科信息技术有限公司 | 测试接口的方法、装置、设备和计算机可读介质 |
CN112597007A (zh) * | 2020-12-14 | 2021-04-02 | 中国航发控制系统研究所 | 一种嵌入式软件集成测试完整性分析方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980313A (zh) * | 2008-10-31 | 2015-10-14 | 电子湾有限公司 | 测试可执行指令的系统和方法 |
CN107977308A (zh) * | 2016-10-25 | 2018-05-01 | 传化物流集团有限公司 | 接口测试方法及装置 |
US20190188119A1 (en) * | 2017-12-14 | 2019-06-20 | Cognizant Technology Solutions India Pvt. Ltd. | System and a method for providing automated performance detection of application programming interfaces |
US11425018B2 (en) * | 2019-05-28 | 2022-08-23 | Mcafee, Llc | Methods and apparatus to implement a virtual private network with probe for network connectivity |
US10929276B2 (en) * | 2019-06-14 | 2021-02-23 | Paypal, Inc. | Simulation computing services for testing application functionalities |
CN110781070A (zh) * | 2019-09-06 | 2020-02-11 | 平安科技(深圳)有限公司 | 大数据测试验证方法、装置、计算机设备及存储介质 |
CN111552610A (zh) * | 2020-04-17 | 2020-08-18 | 上海中通吉网络技术有限公司 | 全链路监控方法和装置 |
CN112363941A (zh) * | 2020-11-13 | 2021-02-12 | 平安普惠企业管理有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
-
2021
- 2021-10-08 CN CN202111172758.XA patent/CN113923134B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949508A (zh) * | 2019-05-17 | 2020-11-17 | 北京京东尚科信息技术有限公司 | 测试接口的方法、装置、设备和计算机可读介质 |
CN112597007A (zh) * | 2020-12-14 | 2021-04-02 | 中国航发控制系统研究所 | 一种嵌入式软件集成测试完整性分析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113923134A (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020107905A1 (zh) | 一种设备的监控、管理方法及终端设备 | |
CN107800565B (zh) | 巡检方法、装置、系统、计算机设备和存储介质 | |
WO2022127504A1 (zh) | 网元管理方法、装置及存储介质 | |
CN106874152A (zh) | 一种支持电子设备自检硬件性能的方法 | |
CN111555920B (zh) | 一种智能运维方法、系统、设备和用户端 | |
CN113037616B (zh) | 用于协同控制多台机器人的交互方法和装置 | |
CN111611140A (zh) | 埋点数据的上报验证方法、装置、电子设备及存储介质 | |
CN109768980A (zh) | 服务器访问方法、装置、移动终端及计算机可读存储介质 | |
CN115391219A (zh) | 测试用例生成方法、装置、电子设备及存储介质 | |
CN111224828A (zh) | 一种智能cpe设备的网络管理方法 | |
CN111935177B (zh) | 一种业务控制方法及装置 | |
CN113923134B (zh) | 一种接口测试方法和装置 | |
JP2008523756A (ja) | 構成ステータスの表示 | |
CN112448850A (zh) | 一种对网络接入设备进行识别配置的方法 | |
CN111193636A (zh) | 测试单机可用性的方法及装置 | |
KR100619424B1 (ko) | 동적 번랙 모니터 리스너 서버 | |
CN109947630B (zh) | 一种故障告示方法、装置及存储介质 | |
CN112073322B (zh) | 一种网络测试仪的发现方法和装置 | |
CN112559289A (zh) | 一种监控系统 | |
CN112118420A (zh) | 一种监控系统自动配置方法及装置 | |
CN112367298B (zh) | 一种业务控制方法及装置 | |
CN115378803B (zh) | 日志管理方法、装置、区块链节点和存储介质 | |
JP5452161B2 (ja) | 通信試験装置、通信試験方法、通信試験ソフトウェア、および該ソフトウェアを格納したコンピュータ可読記憶媒体 | |
US20230262140A1 (en) | Method for updating a presence status of a user of a communication terminal for a set of communication applications | |
CN115460109A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |