CN109739711B - 一种接口测试方法、装置、设备和存储介质 - Google Patents
一种接口测试方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN109739711B CN109739711B CN201910007503.4A CN201910007503A CN109739711B CN 109739711 B CN109739711 B CN 109739711B CN 201910007503 A CN201910007503 A CN 201910007503A CN 109739711 B CN109739711 B CN 109739711B
- Authority
- CN
- China
- Prior art keywords
- interface
- client
- time
- target
- page
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种接口测试方法、装置、设备和存储介质。该方法通过在客户端加载目标页面时加载接口测试装置,该接口测试装置检测通过所述目标页面访问目标接口所产生的响应时延;当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据;根据所述性能数据满足预设性能条件,确定所述目标接口异常,由此,排除目标接口的响应时延主要是受到客户端性能差或不稳定影响的情况,解决因仅根据目标接口的响应时延判断目标接口性能而带来的误检问题,从而保证目标接口测试结果的正确性。
Description
技术领域
本发明实施例涉及网站服务器测试的技术领域,尤其涉及一种接口测试方法、装置、设备和存储介质。
背景技术
在对网站对应的服务器提供的接口进行测试的过程中,一般的,采用检测接口响应时延来进行确定。具体的,通过客户端向服务器提供的接口发送访问请求,服务器的接口则响应该访问请求,并向客户端发送回包,客户端可以根据收到回包和发送访问请求的时间差值,确定接口响应时延。但是,该响应时延还受到客户端的性能的影响,如客户端所使用硬件的运行性能,客户端与服务器之间的网络传输性能,所以该响应时延无法真正体现接口的性能。
发明内容
本发明提供一种接口测试方法、装置、设备和存储介质,以实现避免客户端的性能影响,保证接口测试结果的正确性。
第一方面,本发明实施例提供了一种接口测试方法,该方法应用于接口测试装置,所述接口测试装置在客户端加载目标页面时进行加载,包括:
检测通过所述目标页面访问目标接口所产生的响应时延;
当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据;
根据所述性能数据满足预设性能条件,确定所述目标接口异常。
进一步的,检测通过所述目标页面访问目标接口所产生的响应时延,包括:
检测到通过所述目标页面向所述目标接口发送的测试请求,记录第一时间点;
确定所述目标页面接收到从所述目标接口响应所述测试请求发送的回包,记录第二时间点;
根据所述第二时间点和所述第一时间点的时间差,确定所述目标接口的响应时延。
进一步的,当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据,包括:
根据所述响应时延超过预设阈值,获取所述客户端和所述目标接口所在的服务器之间的网络时延;
获取所述客户端从开始加载所述目标页面到所述接口测试装置加载完毕的运行时长;
获取所述客户端在加载当前页面时各阶段的耗时确定页面加载时长;
根据所述网络时延、运行时长和页面加载时长至少一种生成所述客户端运行时的性能数据。
进一步的,获取所述客户端和所述目标接口所在的服务器之间的网络时延,包括:
控制所述客户端向所述目标接口所在的服务器发送携带有随机参数的访问请求;
根据所述服务器响应所述访问请求的时延,确定所述客户端和所述服务器之间的网络时延。
进一步的,所述随机参数为所述客户端的本地时间戳。
进一步的,获取所述客户端从开始加载所述目标页面到所述接口测试装置加载完毕的运行时长,包括:
确定客户端加载所述目标页面时的白屏时间点和所述接口测试装置加载完毕的加载时间点;
将所述加载时间点和所述白屏时间点的差值作为第一时长;
获取所述接口测试装置的加载持续时间;
将所述第一时长和所述加载持续时间的差值作为运行时长。
进一步的,获取所述客户端在加载当前页面时各阶段的耗时确定页面加载时长,包括:
获取当前页面的DNS解析耗时、TCP连接耗时、SSL安全连接耗时、TTFB网络请求耗时、首包时间和当前页面的白屏时间,确定当前页面的页面加载时长。
进一步的,根据所述性能数据满足预设性能条件,确定所述目标接口异常,包括:
当所述网络时延、运行时长和页面加载时长均小于各自对应的预设时间阈值时,确定所述客户端的性能数据满足预设性能条件;
根据所述客户端满足预设性能条件,确定所述目标接口异常;
上报关于所述目标接口异常的消息。
第二方面,本发明实施例还提供了一种接口测试装置,该装置应用于接口测试设备,所述接口测试设备在客户端加载目标页面时进行加载,包括:
响应时延检测模块,用于检测通过所述目标页面访问目标接口所产生的响应时延;
性能数据获取模块,用于当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据;
接口异常确定模块,用于根据所述性能数据满足预设性能条件,确定所述目标接口异常。
第三方面,本发明实施例还提供了一种接口测试设备,该设备包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述的接口测试方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面中任一所述的接口测试方法。
本发明实施例通过在客户端加载目标页面时加载接口测试装置,该接口测试装置检测通过所述目标页面访问目标接口所产生的响应时延;当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据;根据所述性能数据满足预设性能条件,确定所述目标接口异常,由此,排除目标接口的响应时延主要是受到客户端性能差或不稳定影响的情况,解决因仅根据目标接口的响应时延判断目标接口性能而带来的误检问题,从而保证目标接口测试结果的正确性。
附图说明
图1为本发明实施例一提供的一种接口测试方法的流程图;
图2为本发明实施例二提供的一种接口测试方法的流程图;
图3为本发明实施例三提供的一种接口测试装置的结构示意图;
图4为本发明实施例四提供的一种接口测试设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种接口测试方法的流程图。一般的,一个网站其实就是一个服务器,网站所展示的新闻、数据、信息都存在自己的服务器中。当两个网站,也就是两台服务器之间,需要数据传输,或者共享某些数据时,就需要一条通道或是一种方法,让两台服务器进行数据交互。而接口就是为其他服务器提供的访问通道和方法。具体的,接口位于展示内容的服务器中。示例性的,接口可以是采用HTTP服务(httpservice)和网页服务(webservice)等。其中,httpservice主要是通过的POST或GET方式进行请求;webservice是一个平台独立的,低耦合的,自包含的、基于可编程的网页的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序;接口传输的数据的格式可以是json、xml和vdf等。
进一步的,本实施例可适用于对设置在网站服务器中的接口进行测试的情况。本实施例对应用场景不作限定,凡是考虑客户端对接口响应时延的影响,从而提高接口性能测试准确性的应用场景均可以适用。
具体的,该方法可以应用于接口测试装置,由接口测试装置来执行,本实施例对该接口测试装置不作限定,该接口测试装置主要通过软件和/或硬件方式来实现,该接口测试装置可集成在能够进行接口测试的设备中,例如服务器或客户端中。示例性的,该接口测试装置可集成在服务器中,可以通过集成有接口测试装置的服务器对接口进行测试。需要注意的是,接口所在的服务器和接口测试装置所在的服务器可以是同一台或不同台。本实施例中,以接口测试装置集成在客户端中进行详细说明,其中,客户端可以是浏览器或者是带有浏览器功能的软件客户端。
进一步的,接口测试装置在客户端加载目标页面时进行加载,其中,目标页面为目标接口所在服务器提供的网站内容,用户可以通过该目标页面访问目标接口;目标接口是本实施例中将要进行性能测试的接口。在客户端加载目标页面时加载接口测试装置,以执行本实施例提供的接口测试方法,对该目标接口进行性能测试。
需要注意的是,本实施例中对如何在客户端加载目标页面时加载接口测试装置不作限定。本实施例通过举例的方式进行说明。在一实施例中,接口测试装置为客户端的插件,当客户端检测到目标页面时,则运行接口测试装置。在又一实施例中,接口测试装置为脚本,当客户端检测到目标页面时,将该脚本嵌入到目标页面中。示例性的,该脚本可以是js脚本,即Javascript脚本。Javascript脚本是一种服务器终端语言。
参照图1,本实施例以客户端为浏览器为例进行说明,该接口测试方法具体包括如下步骤:
S110、检测通过所述目标页面访问目标接口所产生的响应时延。
本实施例对目标接口的确定方式不作限定,可以是客户端通过目标页面访问的所有接口,也可以是接口测试装置通过预设过滤条件确定的接口。其中,预设过滤条件可以用于设置目标接口的接口信息,该接口信息可以包括接口所在的服务器、接口的形式和接口的名称等。
进一步的,本实施例以根据目标接口所产生的响应时延进行性能判断为例进行说明。其中,响应时延是根据超文本传输协议(Hypertext Transfer Protocol,HTTP)中的请求/响应范式进行确定,将发送访问请求并收到服务器响应该访问请求发送的回包之间的时间差作为响应时延。
一般的,HTTP是用于从服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。本实施例中,通过所述目标页面访问目标接口可以采用发送HTTP请求的方式。由于HTTP协议是基于请求/响应范式的协议。具体的,一个客户端与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(UniformResource Locator,URL)、协议版本号,后边是多用途互联网邮件扩展类型(MultipurposeInternet Mail Extensions,MIME)信息包括请求修饰符和客户端信息等。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息和实体信息等。进一步的,从发送请求到收到响应信息的时间为通过所述目标页面访问目标接口所产生的响应时延。
一般的,响应时延越长,目标接口出现异常的可能性越大。但需要注意的是,响应时延还可能受到网络性能和客户端性能的影响,单纯的使用响应时延判断目标接口的测试结果,有可能出现误检的情况。如,客户端与目标接口所在的服务器之间的网络传输性能较差,存在丢包的情况,从而影响响应时延。也就是说,在目标接口正常的情况下,该响应时延也可能因为网络传输性能较差而变长,进而无法通过响应时延确定真正的目标接口的性能。
S120、当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据。
一般的,请求和响应必定存在响应时延,在正常情况下,响应时延具有一定的范围。本实施例中,由于响应时延受到接口性能、网络性能和客户端性能等的影响,当响应时延超过预设阈值时,表示目标接口有可能出现异常。本实施例通过获取客户端运行时的性能数据分析网络性能和客户端性能等,来对目标接口的性能做进一步判断。
进一步的,客户端运行时的性能数据可以是客户端加载接口测试模块并进行接口测试时的性能数据。本实施例对客户端运行时的性能数据不作限定,本实施例将通过举例的方式进行说明。
在一实施例中,由于客户端运行在硬件设备之上,客户端运行时的性能数据可以是硬件设备在客户端运行时的硬件性能数据。如在使用客户端访问目标接口所在服务器时,确定硬件设备中该客户端对应的各硬件的使用情况,该硬件可以是中央处理器(Central Processing Unit,CPU)、内存、硬盘存储和网卡等。具体的,如可以确定CPU占用率、内存占用率、硬盘存储读写速度和网络传输速度等。
在又一实施例中,客户端运行时的性能数据可以用于表示页面加载性能、加载接口测试装置的性能和网络性能。具体的,页面加载性能可以通过统计页面的加载时间进行确定;加载接口测试装置的性能也可以通过统计接口测试装置从开始加载到加载完成的时间长度进行确定;网络性能可以通过获取客户端与目标接口所在的服务器之间的请求/响应速度确定。
S130、根据所述性能数据满足预设性能条件,确定所述目标接口异常。
本实施例中,当给性能数据满足预设性能条件时,则表明客户端运行时的性能正常,则排除了网络性能和客户端性能等异常引起响应时延超过预设阈值的情况,则可以进一步确定该响应时延超过预设阈值确实是由目标接口异常所引起。
本实施例中对预设性能条件不作限定,根据性能数据的不同进行相应的设置。具体的,预设性能条件可以是通过统计客户端正常运行时的性能数据的范围进行确定的,当实际检测到的性能数据在该范围内时,则可以确定该性能数据满足预设性能条件,否则不满足该预设性能条件。
进一步的,若性能数据不满足预设性能条件,则确定客户端的性能存在异常。
本实施例的技术方案,通过在客户端加载目标页面时加载接口测试装置,该接口测试装置检测通过所述目标页面访问目标接口所产生的响应时延;当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据;根据所述性能数据满足预设性能条件,确定所述目标接口异常,由此,排除目标接口的响应时延主要是受到客户端性能差或不稳定影响的情况,解决因仅根据目标接口的响应时延判断目标接口性能而带来的误检问题,从而保证目标接口测试结果的正确性,节省服务器运维人员的时间成本。
实施例二
图2为本发明实施例二提供的一种接口测试方法的流程图。
参照图2,本实施例在上述实施例的基础上进一步细化,该接口测试方法具体包括如下步骤:
S210、检测通过所述目标页面访问目标接口所产生的响应时延。
本实施例中,将发送请求并收到服务器响应该请求发送的回包之间的时间差作为响应时延,可以通过检测到通过所述目标页面向所述目标接口发送的测试请求,记录第一时间点;确定所述目标页面接收到从所述目标接口响应所述测试请求发送的回包,记录第二时间点;根据所述第二时间点和所述第一时间点的时间差,确定所述目标接口的响应时延。
S220、根据所述响应时延超过预设阈值,获取所述客户端和所述目标接口所在的服务器之间的网络时延。
本实施例中,控制所述客户端向所述目标接口所在的服务器发送携带有随机参数的访问请求;根据所述服务器响应所述访问请求的时延,确定所述客户端和所述服务器之间的网络时延。
具体的,本实施例以发送携带有随机参数的访问请求进行网络时延的确定,可以避免客户端存储有目标接口所在服务器的网页缓存或小型文字档案(Cookie)等信息对网络时延的确定造成影响。其中,Cookie,某些网站为了辨别用户身份、进行会话(session)跟踪而储存在用户本地终端上的数据。网页缓存则是将进行过的访问请求的响应结果进行本地存储,以便在确定发出同样访问请求时,可以直接从本地的存储中获取。所以为了避免发出相同的访问请求,使得直接从本地存储中获取响应结果,影响服务器响应访问请求的时延,在访问请求中携带随机参数。进一步的,随机参数可以为客户端的本地时间戳。
本实施例中,客户端运行时的网络时延越长,表示客户端运行时的性能越差。
S230、获取所述客户端从开始加载所述目标页面到所述接口测试装置加载完毕的运行时长。
本实施例将通过举例方式对运行时长的获取方式进行详细说明,在一实施例中,确定客户端加载所述目标页面时的白屏时间点和所述接口测试装置加载完毕的加载时间点;将所述加载时间点和所述白屏时间点的差值作为第一时长;获取所述接口测试装置的加载持续时间;将所述第一时长和所述加载持续时间的差值作为运行时长。以客户端为浏览器进行详细说明,具体的,在需要对目标接口进行测试时,该客户端根据用户输入的目标页面的访问地址开始加载目标页面,并记录目标页面的白屏时间点。其中,白屏时间为浏览器从打开页面开始到页面开始有页面内容呈现为止的时间段,白屏时间点为浏览器开始有页面内容呈现的时间点。在加载目标页面之时或之后开始加载接口测试装置。本实施例以该接口测试装置为js脚本为例进行说明,加载接口测试装置的方式可以是将接口测试装置对应的js脚本添加到目标页面所对应的超文本标记语言(HyperText Markup Language,HTML)文件中的脚本标签(如<script>标签)中,以便该js脚本可以在目标页面中运行,以对目标接口进行测试。进一步的,在该接口测试装置加载完毕后,可以调用浏览器自带的Date.now()函数记录接口测试装置加载完毕的加载时间点。之后,将加载时间点和白屏时间点的差值作为第一时长。一般情况下,接口测试装置(js脚本)与目标页面的加载为异步加载的方式,第一时长包括了加载目标页面和接口测试装置(js脚本)的总时长,为了更好的确定客户端的运行时长,需要在第一时长的基础上减去接口测试装置的加载持续时间。其中,接口测试装置的加载持续时间可以通过调用浏览器自带的window.performance.getEntriesByType('resource')函数,获得目标页面当前加载的资源列表,从中筛选出该接口测试装置(js脚本),并进一步得到加载持续时间(如duration)。需要说明的是,上述的白屏时间和加载持续时间均可以通过浏览器自带的函数得到,还可以在后台面板(console)中进行显示。
本实施例中,客户端运行时的运行时长越长,表示客户端运行时的性能越差。
S240、获取所述客户端在加载当前页面时各阶段的耗时确定页面加载时长。
本实施例将通过举例方式对加载时长的获取方式进行详细说明,在一实施例中,获取当前页面的域名系统(Domain Name System,DNS)解析耗时、传输控制协议(Transmission Control Protocol,TCP)连接耗时、安全套接层(Secure Sockets Layer,SSL)安全连接耗时、首字节(Time To First Byte,TTFB)网络请求耗时、首包时间和当前页面的白屏时间,确定当前页面的页面加载时长。其中,当前页面是目标页面或从目标页面跳转的页面。具体的,DNS解析耗时、TCP连接耗时、SSL安全连接耗时、TTFB网络请求耗时、首包时间和当前页面的白屏时间均可以通过调用浏览器自带的函数得到,该函数可以是window.performance.timing。进一步的,DNS解析耗时是主机名和域名转换为IP地址耗费的时间,具体的是从浏览器终端访问请求开始,到浏览器终端获得最终访问主机网际协议(Internet Protocol,IP)地址的时间;TCP连接耗时是浏览器和目标接口所在的服务器建立TCP连接所消耗的时间;TTFB网络请求耗时是从“最初的网络请求被发起”到“从服务器接收到第一个字节前”所花费的毫秒数;首包时间是浏览器发送HTTP请求结束开始,到收到服务器返回的第一个数据包的消耗时间;当前页面的白屏时间是从打开当前页面开始,到浏览器第一屏不为白屏的时间。白屏是指打开当前页面的时候,浏览器未加载出任何一个字符或元素。进一步的,可以将当前页面的DNS解析耗时、TCP连接耗时、SSL安全连接耗时、TTFB网络请求耗时、首包时间之和确定当前页面的页面加载时长。当然也可以只使用当前页面的白屏时间确定当前页面的页面加载时长。
本实施例中,客户端运行时的页面加载时长越长,表示客户端运行时的性能越差。
S250、根据所述网络时延、运行时长和页面加载时长至少一种生成所述客户端运行时的性能数据。
本实施例中,可以通过网络时延、运行时长和页面加载时长至少一种确定客户端运行时的性能。可以将网络时延、运行时长和页面加载时长至少一种打包生成所述客户端运行时的性能数据。
S260、当所述网络时延、运行时长和页面加载时长均小于各自对应的预设时间阈值时,确定所述客户端的性能数据满足预设性能条件。
本实施例中的预设时间阈值可以通过实际的应用进行设定,在一实施例中,网络时延、运行时长和页面加载时长均小于各自对应的预设阈值相应的设置为700ms、1000ms和700ms,当网络时延小于700ms,运行时长小于1000ms,页面加载时长小于700ms时,则可以确定客户端的性能数据满足预设性能条件。
S270、根据所述客户端满足预设性能条件,确定所述目标接口异常。
本实施例中,当给性能数据满足预设性能条件时,则表明客户端运行时的性能正常,则排除了网络性能和客户端性能等异常引起响应时延超过预设阈值的情况,则可以进一步确定该响应时延超过预设阈值确实是由目标接口异常所引起。
S280、上报关于所述目标接口异常的消息。
本实施例中对上报的形式不作限定,可以是在浏览器中以弹窗的形式上报,或者在浏览器中的后台面板(console)中显示,也可以将该消息保存到日志中,也可以将该消息发送向预设的服务器进行处理。
本实施例的技术方案,通过检测通过所述目标页面访问目标接口所产生的响应时延;根据所述响应时延超过预设阈值,获取所述客户端和所述目标接口所在的服务器之间的网络时延;获取所述客户端从开始加载所述目标页面到所述接口测试装置加载完毕的运行时长;获取所述客户端在加载当前页面时各阶段的耗时确定页面加载时长;根据所述网络时延、运行时长和页面加载时长至少一种生成所述客户端运行时的性能数据;当所述网络时延、运行时长和页面加载时长均小于各自对应的预设时间阈值时,确定所述客户端的性能数据满足预设性能条件;根据所述客户端满足预设性能条件,确定所述目标接口异常;上报关于所述目标接口异常的消息,由此,通过获取网络时延、运行时长和页面加载时长至少一种生成所述客户端运行时的性能数据确定客户端性能差的情况,进一步排除目标接口的响应时延主要是受到客户端性能差或不稳定影响的情况,解决因仅根据目标接口的响应时延判断目标接口性能而带来的误检问题,从而保证目标接口测试结果的正确性,节省服务器接口测试人员的时间成本。进一步的,网络时延、运行时长和页面加载时长等性能数据可以简便的获得,开发成本低,但对于反映正确的目标接口测试结果具有校正的效果。
实施例三
图3为本发明实施例三提供的一种接口测试装置的结构示意图。一般的,一个网站其实就是一个服务器,网站所展示的新闻、数据、信息都存在自己的服务器中。当两个网站,也就是两台服务器之间,需要数据传输,或者共享某些数据时,就需要一条通道或是一种方法,让两台服务器进行数据交互。而接口就是为其他服务器提供的访问通道和方法。具体的,接口位于展示内容的服务器中。一般的,接口具有如下形式:httpservice和webservice等;传输数据的格式有json、xml、vdf等。
进一步的,本实施例可适用于对设置在网站服务器中的接口进行测试的情况。本实施例对应用场景不作限定,凡是考虑客户端对接口响应时延的影响,从而提高接口性能测试准确性的应用场景均可以适用。
具体的,该装置可以应用于接口测试设备中,本实施例对该接口测试装置不作限定,该接口测试装置主要通过软件和/或硬件方式来实现,该接口测试装置可集成在能够进行接口测试的设备中,例如服务器或客户端中。示例性的,该接口测试装置可集成在服务器中,可以通过集成有接口测试装置的服务器对接口进行测试。需要注意的是,接口所在的服务器和接口测试装置所在的服务器可以是同一台或不同台。本实施例中,以接口测试装置集成在客户端中进行详细说明,其中,客户端可以是浏览器或者是带有浏览器功能的软件客户端。
进一步的,接口测试装置在客户端加载目标页面时进行加载,其中,目标页面为目标接口所在服务器提供的网站内容,用户可以通过该目标页面访问目标接口;目标接口是本实施例中将要进行性能测试的接口。在客户端加载目标页面时加载接口测试装置,以执行上述实施例提供的接口测试方法,对该目标接口进行性能测试。
需要注意的是,本实施例中对如何在客户端加载目标页面时加载接口测试装置不作限定。本实施例通过举例的方式进行说明。在一实施例中,接口测试装置为客户端的插件,当客户端检测到目标页面时,则运行接口测试装置。在又一实施例中,接口测试装置为脚本,当客户端检测到目标页面时,将该脚本嵌入到目标页面中。示例性的,该脚本可以是js脚本。
参照图3,该接口测试装置应用于接口测试设备,所述接口测试设备在客户端加载目标页面时进行加载,本实施例以客户端为浏览器为例进行说明,具体包括如下结构:响应时延检测模块310、性能数据获取模块320和接口异常确定模块330。
响应时延检测模块310,用于检测通过所述目标页面访问目标接口所产生的响应时延。
性能数据获取模块320,用于当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据。
接口异常确定模块330,用于根据所述性能数据满足预设性能条件,确定所述目标接口异常。
本实施例的技术方案,通过在客户端加载目标页面时加载接口测试装置,该接口测试装置检测通过所述目标页面访问目标接口所产生的响应时延;当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据;根据所述性能数据满足预设性能条件,确定所述目标接口异常,由此,排除目标接口的响应时延主要是受到客户端性能差或不稳定影响的情况,解决因仅根据目标接口的响应时延判断目标接口性能而带来的误检问题,从而保证目标接口测试结果的正确性,节省服务器运维人员的时间成本。
在上述技术方案的基础上,响应时延检测模块310包括:
第一时间点记录单元,用于检测到通过所述目标页面向所述目标接口发送的测试请求,记录第一时间点。
第二时间点记录单元,用于确定所述目标页面接收到从所述目标接口响应所述测试请求发送的回包,记录第二时间点。
响应时延确定单元,用于根据所述第二时间点和所述第一时间点的时间差,确定所述目标接口的响应时延。
在上述技术方案的基础上,性能数据获取模块320包括:
网络时延获取单元,用于根据所述响应时延超过预设阈值,获取所述客户端和所述目标接口所在的服务器之间的网络时延。
运行时长获取单元,用于获取所述客户端从开始加载所述目标页面到所述接口测试装置加载完毕的运行时长。
页面加载时长获取单元,用于获取所述客户端在加载当前页面时各阶段的耗时确定页面加载时长;
性能数据生成单元,用于根据所述网络时延、运行时长和页面加载时长至少一种生成所述客户端运行时的性能数据。
在上述技术方案的基础上,网络时延获取单元,包括:
访问请求发送子单元,用于控制所述客户端向所述目标接口所在的服务器发送携带有随机参数的访问请求。
网络时延确定子单元,用于根据所述服务器响应所述访问请求的时延,确定所述客户端和所述服务器之间的网络时延。
在上述技术方案的基础上,所述随机参数为所述客户端的本地时间戳。
在上述技术方案的基础上,运行时长获取单元,包括:
时间点确定子单元,用于确定客户端加载所述目标页面时的白屏时间点和所述接口测试装置加载完毕的加载时间点。
第一时长确定子单元,用于将所述加载时间点和所述白屏时间点的差值作为第一时长。
加载持续时间获取子单元,用于获取所述接口测试装置的加载持续时间。
运行时长计算子单元,用于将所述第一时长和所述加载持续时间的差值作为运行时长。
在上述技术方案的基础上,页面加载时长获取单元,包括:
页面加载时长确定子单元,用于获取当前页面的DNS解析耗时、TCP连接耗时、SSL安全连接耗时、TTFB网络请求耗时、首包时间和当前页面的白屏时间,确定当前页面的页面加载时长。
在上述技术方案的基础上,接口异常确定模块330,包括:
预设性能条件判断单元,用于当所述网络时延、运行时长和页面加载时长均小于各自对应的预设时间阈值时,确定所述客户端的性能数据满足预设性能条件。
目标接口异常确定单元,用于根据所述客户端满足预设性能条件,确定所述目标接口异常。
目标接口异常上报单元,用于上报关于所述目标接口异常的消息。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种接口测试设备的结构示意图。如图4所示,该接口测试设备包括:处理器40、存储器41、输入装置42以及输出装置43。该接口测试设备中处理器40的数量可以是一个或者多个,图4中以一个处理器40为例。该接口测试设备中存储器41的数量可以是一个或者多个,图4中以一个存储器41为例。该接口测试设备的处理器40、存储器41、输入装置42以及输出装置43可以通过总线或者其他方式连接,图4中以通过总线连接为例。该接口测试设备可以是电脑和服务器等。本实施例以接口测试设备为服务器进行详细说明,该服务器可以是独立服务器或集群服务器,可以是实体服务器或是云服务器。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的接口测试方法对应的程序指令/模块(例如,接口测试装置中的响应时延检测模块310、性能数据获取模块320和接口异常确定模块330。)。存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或者字符信息,以及产生与接口测试设备的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置43可以包括扬声器等音频设备。需要说明的是,输入装置42和输出装置43的具体组成可以根据实际情况设定。
处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的接口测试方法。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种接口测试方法,应用于接口测试装置,所述接口测试装置在客户端加载目标页面时进行加载,包括:
检测通过所述目标页面访问目标接口所产生的响应时延;
当所述响应时延超过预设阈值时,获取所述客户端运行时的性能数据;
根据所述性能数据满足预设性能条件,确定所述目标接口异常。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的接口测试方法操作,还可以执行本发明任意实施例所提供的接口测试方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的接口测试方法。
值得注意的是,上述接口测试装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种接口测试方法,其特征在于,应用于接口测试装置,所述接口测试装置在客户端加载目标页面时进行加载,包括:
检测通过所述目标页面访问目标接口所产生的响应时延;
根据所述响应时延超过预设阈值,获取所述客户端和所述目标接口所在的服务器之间的网络时延;
获取所述客户端从开始加载所述目标页面到所述接口测试装置加载完毕的运行时长;
获取所述客户端在加载当前页面时各阶段的耗时确定页面加载时长,所述页面加载时长包括所述当前页面的白屏时间;
根据所述网络时延、运行时长和页面加载时长至少一种生成所述客户端运行时的性能数据;
根据所述性能数据满足预设性能条件,确定所述目标接口异常。
2.根据权利要求1所述的方法,其特征在于,检测通过所述目标页面访问目标接口所产生的响应时延,包括:
检测到通过所述目标页面向所述目标接口发送的测试请求,记录第一时间点;
确定所述目标页面接收到从所述目标接口响应所述测试请求发送的回包,记录第二时间点;
根据所述第二时间点和所述第一时间点的时间差,确定所述目标接口的响应时延。
3.根据权利要求1所述的方法,其特征在于,获取所述客户端和所述目标接口所在的服务器之间的网络时延,包括:
控制所述客户端向所述目标接口所在的服务器发送携带有随机参数的访问请求;
根据所述服务器响应所述访问请求的时延,确定所述客户端和所述服务器之间的网络时延。
4.根据权利要求3所述的方法,其特征在于,所述随机参数为所述客户端的本地时间戳。
5.根据权利要求1所述的方法,其特征在于,获取所述客户端从开始加载所述目标页面到所述接口测试装置加载完毕的运行时长,包括:
确定客户端加载所述目标页面时的白屏时间点和所述接口测试装置加载完毕的加载时间点;
将所述加载时间点和所述白屏时间点的差值作为第一时长;
获取所述接口测试装置的加载持续时间;
将所述第一时长和所述加载持续时间的差值作为运行时长。
6.根据权利要求1所述的方法,其特征在于,获取所述客户端在加载当前页面时各阶段的耗时确定页面加载时长,包括:
获取当前页面的DNS解析耗时、TCP连接耗时、SSL安全连接耗时、TTFB网络请求耗时、首包时间和当前页面的白屏时间,确定当前页面的页面加载时长。
7.根据权利要求1-6任一所述的方法,其特征在于,根据所述性能数据满足预设性能条件,确定所述目标接口异常,包括:
当所述网络时延、运行时长和页面加载时长均小于各自对应的预设时间阈值时,确定所述客户端的性能数据满足预设性能条件;
根据所述客户端满足预设性能条件,确定所述目标接口异常;
上报关于所述目标接口异常的消息。
8.一种接口测试设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的接口测试方法。
9.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的接口测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007503.4A CN109739711B (zh) | 2019-01-04 | 2019-01-04 | 一种接口测试方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007503.4A CN109739711B (zh) | 2019-01-04 | 2019-01-04 | 一种接口测试方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739711A CN109739711A (zh) | 2019-05-10 |
CN109739711B true CN109739711B (zh) | 2023-02-28 |
Family
ID=66361554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910007503.4A Active CN109739711B (zh) | 2019-01-04 | 2019-01-04 | 一种接口测试方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739711B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110995813B (zh) * | 2019-11-26 | 2022-07-12 | 上海掌门科技有限公司 | 一种检测页面性能的方法与设备 |
CN111858304B (zh) * | 2020-06-10 | 2022-06-07 | 南京领行科技股份有限公司 | 一种接口性能测试的方法及装置 |
CN112559304A (zh) * | 2020-10-20 | 2021-03-26 | 深圳市前海手绘科技文化有限公司 | 一种软件性能测试方法 |
CN114398281A (zh) * | 2022-01-18 | 2022-04-26 | 北京自如信息科技有限公司 | 一种应用接口耗时测试方法、系统和电子设备 |
CN116708149B (zh) * | 2022-12-29 | 2024-05-14 | 荣耀终端有限公司 | 网络诊断方法和电子设备 |
CN116248550A (zh) * | 2022-12-29 | 2023-06-09 | 中国联合网络通信集团有限公司 | 接口性能确定方法、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026503A (zh) * | 2006-02-24 | 2007-08-29 | 国际商业机器公司 | Web服务业务流程的单元测试的方法和设备 |
CN102955722A (zh) * | 2011-08-17 | 2013-03-06 | 联想(北京)有限公司 | 一种异常检测方法、装置、电子终端及系统 |
CN106100936A (zh) * | 2016-08-10 | 2016-11-09 | 乐视控股(北京)有限公司 | 网页性能监控方法和装置及网络服务器、客户端 |
CN107231272A (zh) * | 2017-05-26 | 2017-10-03 | 上海斐讯数据通信技术有限公司 | 一种无线信息获取的自动化测试装置及方法 |
CN107784011A (zh) * | 2016-08-30 | 2018-03-09 | 广州市动景计算机科技有限公司 | 网页访问方法、客户端、网页服务器及可编程设备 |
CN108259266A (zh) * | 2017-12-19 | 2018-07-06 | 广州供电局有限公司 | 网站性能监测方法和系统 |
CN108667855A (zh) * | 2018-07-19 | 2018-10-16 | 百度在线网络技术(北京)有限公司 | 网络流量异常监测方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7600014B2 (en) * | 2000-11-16 | 2009-10-06 | Symantec Corporation | Method and system for monitoring the performance of a distributed application |
-
2019
- 2019-01-04 CN CN201910007503.4A patent/CN109739711B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026503A (zh) * | 2006-02-24 | 2007-08-29 | 国际商业机器公司 | Web服务业务流程的单元测试的方法和设备 |
CN102955722A (zh) * | 2011-08-17 | 2013-03-06 | 联想(北京)有限公司 | 一种异常检测方法、装置、电子终端及系统 |
CN106100936A (zh) * | 2016-08-10 | 2016-11-09 | 乐视控股(北京)有限公司 | 网页性能监控方法和装置及网络服务器、客户端 |
CN107784011A (zh) * | 2016-08-30 | 2018-03-09 | 广州市动景计算机科技有限公司 | 网页访问方法、客户端、网页服务器及可编程设备 |
CN107231272A (zh) * | 2017-05-26 | 2017-10-03 | 上海斐讯数据通信技术有限公司 | 一种无线信息获取的自动化测试装置及方法 |
CN108259266A (zh) * | 2017-12-19 | 2018-07-06 | 广州供电局有限公司 | 网站性能监测方法和系统 |
CN108667855A (zh) * | 2018-07-19 | 2018-10-16 | 百度在线网络技术(北京)有限公司 | 网络流量异常监测方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
《性能测试知多少——响应时间》;虫师;《https://www.cnblogs.com/fnng/archive/2012/07/01/2571990.html》;20170701;第1-3页 * |
《记录一次http接口请求的延迟问题排查》;小明同鞋;《http://blog.csdn.net/sinat_30802291/article/details/85166787》;20181221;第1页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109739711A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739711B (zh) | 一种接口测试方法、装置、设备和存储介质 | |
US8122124B1 (en) | Monitoring performance and operation of data exchanges | |
US9112808B2 (en) | Devices, systems, and methods for providing data | |
CN108521353B (zh) | 定位性能瓶颈的处理方法、设备及可读存储介质 | |
US8122082B2 (en) | System and method for detecting a proxy between a client and a server | |
US8856325B2 (en) | Network element failure detection | |
US8595327B2 (en) | Obtaining instrumentation data | |
CN110224896B (zh) | 一种网络性能数据采集方法、装置及存储介质 | |
CN110730196B (zh) | 一种网络资源访问方法、计算机设备、存储介质 | |
CN103825783A (zh) | 一种测试方法及装置 | |
US20210258386A1 (en) | Connection control method and device | |
CN111522711A (zh) | 一种数据监控处理系统、方法、执行端、监控端及电子设备 | |
CN107992416B (zh) | 一种网页时延的确定方法及装置 | |
CN111522706A (zh) | 前端应用的页面异常的监控方法及其装置 | |
CN112653736B (zh) | 一种并行回源方法、装置及电子设备 | |
CN111045934A (zh) | 页面分析方法、装置、客户端、存储介质及电子设备 | |
US10432490B2 (en) | Monitoring single content page application transitions | |
CN103051722B (zh) | 一种确定页面是否被劫持的方法及相关设备 | |
CN110825603A (zh) | 页面首次加载时间确定方法、装置、电子设备及存储介质 | |
CN113127788B (zh) | 页面处理方法、对象处理方法、装置及设备 | |
US11785431B1 (en) | Industrial monitoring system device connection | |
CN112491612B (zh) | 网络异常数据的上报方法、终端以及计算机存储介质 | |
CN111338928A (zh) | 基于chrome浏览器测试的方法及装置 | |
CN114461485A (zh) | 一种资源加载监测方法、装置、设备及存储介质 | |
CN113839828B (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 |