网络应用接口的测试方法、装置及电子设备与流程

文档序号:11253807阅读:862来源:国知局
网络应用接口的测试方法、装置及电子设备与流程
本发明涉及测试
技术领域
,具体涉及一种网络应用接口的测试方法、装置及电子设备。
背景技术
:随着互联网技术的发展,互联网服务端的接口测试是一项非常重要的测试环节。现有技术中通过构造客户端请求,利用http协议获取返回结果,然后客户端通过charles等协议工具定向到目标测试服务器,实现协议功能,然后对比客户端的响应结果和构造请求返回的结果是否一致,从而判断测试是否成功。然而,两个不同请求返回的结果在很大程度上会存在不一致,影响自动化测试的准确程度。技术实现要素:本发明实施例提供一种网络应用接口的测试方法、装置及电子设备,用于解决基于http协议客户端发出的请求和预期请求的返回结果异步,导致测试结果准确率低的问题。本发明实施例第一方面提供一种网络应用接口的测试方法,包括:接收网络应用接口发送的第一http请求;根据所述第一http请求生成第二http请求;向目标测试服务器发送所述第二http请求;接收由所述目标测试服务器发送的根据http协议获取所述第二http请求对应的第二响应结果,并保存所述第二响应结果;接收由所述网络应用接口根据所述http协议获取所述第一http请求对应的第一响应结果;当所述第一响应结果与所述第二响应结果匹配时,确定所述网络应用接口测试成功。结合本发明实施例第一方面,在本发明实施例第一方面的第一种可能的实现方式中,所述根据所述第一http请求生成第二http请求包括:将所述第一http请求分为域名和非域名两部分,根据所述第一http请求中的非域名部分和所述目标测试服务器的域名生成第二http请求。结合本发明实施例第一方面,在本发明实施例第一方面的第二种可能的实现方式中,在所述接收由所述网络应用接口根据所述http协议获取所述第一http请求对应的第一响应结果之后,所述方法还包括:在所述第二响应结果中查找第二验证信息,所述第二验证信息包括所述第二http请求对应的网络地址;在所述第一响应结果中查找与所述第二验证信息对应的第一验证信息,当所述第一验证信息与所述第二验证信息匹配时,确定所述第一响应结果与所述第二响应结果匹配。结合本发明实施例第一方面的第二种可能的实现方式,在本发明实施例第一方面的第三种可能的实现方式中,所述方法还包括:当所述第一验证信息与所述第二验证信息不匹配时,生成提示信息;接收所述网络应用接口发送的针对所述提示信息生成的所述第一http请求。结合本发明实施例第一方面的第一种可能的实现方式,在本发明实施例第一方面的第四种可能的实现方式中,在所述根据所述第一http请求中的非域名部分和所述目标测试服务器的域名生成第二http请求之前,所述方法还包括:当存在多个测试服务器时,在所述多个测试服务器中选择最优网络带宽的测试服务器作为所述目标测试服务器;根据所述测试服务器与所述域名之间的映射关系查找所述目标测试服务器的域名。本发明实施例第二方面提供一种网络应用接口的测试装置,包括:第一接收单元,用于接收网络应用接口发送的第一http请求;生成单元,用于根据所述第一http请求生成第二http请求;第一发送单元,用于向目标测试服务器发送所述第二http请求;第二接收单元,用于接收由所述目标测试服务器发送的根据http协议获取所述第二http请求对应的第二响应结果,并保存所述第二响应结果;第三接收单元,用于接收由所述网络应用接口根据所述http协议获取所述第一http请求对应的第一响应结果;确定单元,用于当所述第一响应结果与所述第二响应结果匹配时,确定所述网络应用接口测试成功。结合本发明实施例第二方面,在本发明实施例第二方面的第一种可能的实现方式中,所述装置还包括:所述生成单元,具体用于将所述第一http请求分为域名和非域名两部分,根据所述第一http请求中的非域名部分和所述目标测试服务器的域名生成第二http请求。结合本发明实施例第二方面,在本发明实施例第二方面的第二种可能的实现方式中,所述装置还包括:所述确定单元,具体用于在所述第二响应结果中查找第二验证信息,所述第二验证信息包括所述第二http请求对应的网络地址;在所述第一响应结果中查找与所述第二验证信息对应的第一验证信息,当所述第一验证信息与所述第二验证信息匹配时,确定所述第一响应结果与所述第二响应结果匹配。结合本发明实施例第二方面的第二种可能的实现方式,在本发明实施例第二方面的第三种可能的实现方式中,所述装置还包括:提示单元,用于当所述第一验证信息与所述第二验证信息不匹配时,生成提示信息;所述第一接收单元,还用于接收所述网络应用接口发送的针对所述提示信息生成的所述第一http请求。结合本发明实施例第二方面的第一种可能的实现方式,在本发明实施例第二方面的第四种可能的实现方式中,所述装置还包括:选择单元,用于当存在多个测试服务器时,在所述多个测试服务器中选择最优网络带宽的测试服务器作为所述目标测试服务器;查找单元,用于根据所述测试服务器与所述域名之间的映射关系查找所述目标测试服务器的域名。本发明实施例第三方面提供了一种电子设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:接收网络应用接口发送的第一http请求;根据所述第一http请求生成第二http请求;向目标测试服务器发送所述第二http请求;接收由所述目标测试服务器发送的根据http协议获取所述第二http请求对应的第二响应结果,并保存所述第二响应结果;接收由所述网络应用接口根据所述http协议获取所述第一http请求对应的第一响应结果;当所述第一响应结果与所述第二响应结果匹配时,确定所述网络应用接口测试成功。本发明实施例第四方面提供了一种存储介质,其中,该存储介质用于存储应用程序,所述应用程序用于在运行时执行本发明实施例第一方面提供的一种网络应用接口的测试方法。本发明实施例第五方面提供了一种应用程序,其中,该应用程序用于在运行时执行本发明实施例第一方面提供的一种网络应用接口的测试方法。本发明实施例中,当接收到网络应用接口发送的第一http请求后,将第一http请求中的域名修改为目标测试服务器的域名得到第二http请求;然后向目标测试服务器发送第二http请求,接收由目标测试服务器根据http协议获取第二http请求对应的第二响应结果,并保存第二响应结果,获取网络应用接口根据http协议获取第一http请求对应的第一响应结果,当第一响应结果与第二响应结果匹配时,测试成功。同时运用socket协议和http协议,接收目标测试服务器返回的第二响应结果,确保基于http协议客户端发出的请求和预期请求的返回结果一致,可保存目标测试服务器返回的第二响应结果,从而提高了测试结果的准确性。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种网络应用接口的测试方法的流程图;图2是本发明实施例提供的一种网络应用接口的测试方法的场景示意图;图3是socket协议的连接过程的流程图;图4是本发明实施例提供的另一种网络应用接口的测试方法的流程图;图5是本发明实施例提供的一种网络应用接口的测试装置的结构图;图6是本发明实施例提供的另一种网络应用接口的测试装置的结构图;图7是本发明实施例提供的一种电子设备的结构图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明的说明书和权利要求书及附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。本发明实施例所描述的电子设备可以包括智能手机(如android手机)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mid,mobileinternetdevices)或穿戴式设备等基于socket协议的电子设备,上述电子设备仅是举例,而非穷举,包含但不限于上述电子设备。本发明实施例提供一种网络应用接口的测试方法、装置及电子设备,用于基于socket协议无法正确保存测试服务器的响应结果的技术问题。以下分别进行详细说明。请参阅图1,图1是本发明实施例提供的一种网络应用接口的测试方法的流程图。如图1所示,该方法可以包括以下步骤。步骤101、接收网络应用接口发送的第一http请求。本发明实施例中,网络应用接口可以是互联网
技术领域
中任一应用程序中用于进行数据交换的接口,例如:用户终端与网络侧(例如:服务器)进行数据交换的接口,或者服务器与用户侧(例如:用户终端)进行数据交换的接口。上述应用程序包括但不限于浏览器应用程序、聊天应用程序、游戏应用程序、音视频播放应用程序等等。http协议(hypertexttransferprotocol,超文本传输协议)是用于从www(worldwideweb,万维网)服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。本发明实施例中,http请求是指从客户端到服务器端的请求消息,包括消息首行中,对资源的请求方法、资源的标识符及使用的协议。将socket接口接收到网络应用接口发送的http请求作为第一http请求。需要说明的是,第一http请求包含的请求方法、资源的标识符及使用的协议由应用程序预设编程算法决定,本实施例中对于实现socket协议的编程语言不作限定,可选的为python。举例来说,如图2所示的应用界面,网络应用接口包括输入数字的输入框和“loadad”按钮,当用户在输入数字的输入框中输入“128103”后,点击“loadad”按钮时,则第一http请求为向目标测试服务器请求上传一个编号为“128103”的广告。步骤102、根据第一http请求生成第二http请求。可选的,将第一http请求分为域名和非域名两部分,根据第一http请求中的非域名部分和目标测试服务器的域名生成第二http请求。通过修改第一http请求的域名为目标测试服务器的域名,使得第二http请求的域名为目标测试服务器的域名,从而避免了使用socket协议导致返回的结果为乱码,且确保目标测试服务器返回的响应结果为客户端发送的请求,提高测试结果的准确性。举例来说,假设第一http请求为“http://www.xxx.com.cn”,“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”,则域名:“http://www.xxx.com.cn”,非域名为:“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”,目标测试服务器的域名为“http://www.xxx102.com.cn”,则第二http请求为“http://www.xxx102.com.cn”,“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”。步骤103、向目标测试服务器发送第二http请求。网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,通常也称作“套接字”,用于描述ip地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。socket协议可以说是对http协议的加强,它不仅是对http协议进行协议,而是对所有向外的连接进行协议。socket接口是传输控制协议/因特网互联协议(transmissioncontrolprotocol/internetprotocol,tcp/ip)网络的api(applicationprogramminginterface,应用程序编程接口),socket接口定义了许多函数或例程,程序员可以用它们来开发tcp/ip网络上的应用程序。网络的socket数据传输是一种特殊的输入/输出端口(i/o,input/output)。socket协议的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认,具体如图3所示,绑定地址和端口;监听访问该地址和端口的请求;建立连接;接收连接并返回响应结果。具体的实现代码如下所示:s=socket.socket(socket.af_inet,socket.sock_stream);//初始化协议s.bind(addr);//绑定地址和端口s.listen(10);//监听访问这个地址和端口的请求s.connect(to_addr);//建立连接s.accept();//接收连接并返回s.close();//关闭协议地址是指互联网协议地址(internetprotocoladdress,ipaddress)。ip地址是ip协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。端口就是指的是socket接口,各种服务采用不同的端口分别提供不同的服务,比如:通常tcp/ip协议规定网络连接采用80号端口,文件传输协议(filetransferprotocol,ftp)采用21号端口等,而邮件服务器是采用25号端口。域名(domainname),是由一串用点分隔的名字组成的internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,ftp等)。域名的ip地址绑定了以后,当别人访问这个域名的时候就可以通过dns解析成ip,再进行访问。ip地址与域名有对应的关系。某个ip,对应的域名只有一个。由于socket协议是底层协议,则socket协议返回的响应结果为乱码,将该响应结果处理成可以识别的编码很复杂。在接收到第一http请求后,不是直接将第一http请求转发给测试服务端,而是将第一http请求中的域名修改为目标测试服务器的域名,得到第二http请求。也就是说通过目标测试服务器实现第二http请求,从而避免了使用socket协议导致返回的结果为乱码,且确保目标测试服务器返回的响应结果为客户端发送的请求,提高测试结果的准确性。举例来说,假设第一http请求的域名为“http://www.xxx.com.cn”,目标测试服务器的域名为“http://www.xxx102.com.cn”,则目标测试服务器接收的第二http请求的域名为“http://www.xxx102.com.cn”。步骤104、接收由目标测试服务器发送的根据http协议获取第二http请求对应的第二响应结果,并保存第二响应结果。http协议是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。基于http协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。在本实施例中,目标测试服务器接收第二http请求后,根据http协议获取第二http请求对应的第二响应结果。且将第二响应结果进行保存,从而解决了采用socket协议无法将服务器的响应结果进行保存的弊端。步骤105、接收由网络应用接口根据http协议获取第一http请求对应的第一响应结果。在本实施例中,网络应用接口根据http协议获取第一http请求对应的第一响应结果与目标测试服务器根据http协议获取第二http请求对应的第二响应结果的步骤一致,在此不再赘述。步骤106、当第一响应结果与第二响应结果匹配时,确定网络应用接口测试成功。可选的,在第二响应结果中查找第二验证信息,第二验证信息包括第二http请求对应的网络地址;在第一响应结果中查找与第二验证信息对应的第一验证信息,当第一验证信息与第二验证信息匹配时,确定第一响应结果与第二响应结果匹配。其中,验证信息可以是与http请求对应的编号id、命名name、文本名text、标题title、网络地址、样式数据中的颜色color、字体font、对齐方式等等。其中编号id、命名name、文本名text和标题title对响应结果进行标识,位置数据表示响应结果在应用页面上的位置信息,通常用顶点坐标(x、y)、宽度width和高度height来表示。样式数据表示响应结果的样式属性,例如颜色、文字的字体、对齐方式和四周间隔的距离等等。其中,第二验证信息和第一验证信息仅用于区别。本实施例对于存储响应结果的文本形式不做限定,可选的为txt格式,存储验证信息以json格式表示,按照最简单的形式表示“名称/值对”的组合。上述网络地址可以是统一资源定位符(uniformresourcelocator,url),它包含的信息指出文件的位置以及浏览器应该怎么处理它。举例来说,假设第一http请求的域名为“http://www.xxx.com.cn”,目标测试服务器的域名为“http://www.xxx102.com.cn”。如图2所示的应用场景中,当用户在输入数字的输入框中输入“128103”后,点击“loadad”按钮时,向socket发送第一http请求为向目标测试服务器请求上传一个编号为“128103”的广告;socket接收到第一http请求后将请求域名“http://www.xxx.com.cn”修改为目标测试服务器域名“http://www.xxx102.com.cn”得到第二http请求;目标测试服务器根据http协议处理第二http请求得到第二响应结果,并在guanggao.txt文件中保存第二响应结果,假设guanggao.txt中的第二验证信息包括:("pic_url":"http://orionimg.adkmob.com/liehu/20151230/1451445246mm841_l.png","title":"mobilestrike");此外将第二响应结果转发给网络应用接口,获取该网络应用接口根据http协议处理第一http请求得到的第一响应结果,当第一响应结果的第一验证信息中的"pic_url"与"title"对应的值与第二响应结果中的值匹配时,确定网络应用接口测试成功,则手机显示的广告跟guanggao.txt保存的一致。在图1所描述的网络应用接口的测试方法中,当接收到网络应用接口发送的第一http请求后,将第一http请求中的域名修改为目标测试服务器的域名得到第二http请求。然后向目标测试服务器发送第二http请求,接收由目标测试服务器根据http协议获取第二http请求对应的第二响应结果,保存第二响应结果,获取网络应用接口根据http协议获取第一http请求对应的第一响应结果,当第一响应结果与第二响应结果匹配时,测试成功。同时运用socket协议和http协议,接收目标测试服务器返回的第二响应结果,确保基于http协议客户端发出的请求和预期请求的返回结果一致,可保存目标测试服务器返回的第二响应结果,从而提高了测试结果的准确性。请参阅图4,图4是本发明实施例提供的另一种网络应用接口的测试方法的流程图。如图4所示,该方法可以包括以下步骤。步骤201、接收网络应用接口发送的第一http请求。其中,上述步骤201的具体描述可参见上述步骤101的相关描述,在此不再赘述。步骤202、当存在多个测试服务器时,在多个测试服务器中选择最优网络带宽的测试服务器作为目标测试服务器。本实施例中,根据socket对网络应用接口和测试服务器之间的测试请求和响应结果进行转发,不需要耗费资源来建立与网络应用接口之间的通信连接,从而降低了测试工具的负载,提高了测试的稳定性。本实施例中,当socket与多个测试服务器建立连接时,获取每一个与socket连接的测试服务器的网络带宽,选择最优网络带宽的测试服务器作为目标测试服务器,可减小测试服务器的压力,从而提高测试效率。举例来说,假设与socket连接的测试服务器的编号为1000、1001和1002,则获取每一个测试服务器的网络带宽,其中,编号为1000的测试服务器的网络带宽为20%,编号为1001的测试服务器的网络带宽为50%,编号为1002的测试服务器的网络带宽为80%,则将编号为1000的测试服务器作为目标测试服务器。步骤203、根据测试服务器与域名之间的映射关系查找目标测试服务器的域名。本实施例中,通过对建立的测试服务器与域名之间的映射关系进行管理,可以在不同的测试项目中,实现对不同测试服务器与不同网络应用接口之间的统一管理和调度,打破了实施工具之间存在的壁垒。根据测试服务器与域名之间的映射关系来查找目标测试服务器的域名,可提高查找效率。举例来说,如下表1所示,当目标测试服务器的编号为1000时,则根据测试服务器与域名之间的映射关系查表可得目标测试服务器的域名为“http://www.xxx1000.com.cn”。表1测试服务器域名1000http://www.xxx1000.com.cn1001http://www.xxx1001.com.cn1002http://www.xxx1002.com.cn…………步骤204、将第一http请求分为域名和非域名两部分,根据第一http请求中的非域名部分和目标测试服务器的域名生成第二http请求。通过修改第一http请求的域名为目标测试服务器的域名,使得第二http请求的域名为目标测试服务器的域名,从而避免了使用socket协议导致返回的结果为乱码,且确保目标测试服务器返回的响应结果为客户端发送的请求,提高测试结果的准确性。举例来说,假设第一http请求为“http://www.xxx.com.cn”,“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”,则域名:“http://www.xxx.com.cn”,非域名为:“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”,目标测试服务器的域名为“http://www.xxx102.com.cn”,则第二http请求为“http://www.xxx102.com.cn”,“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”。步骤205、向目标测试服务器发送第二http请求。步骤206、接收由目标测试服务器发送的根据http协议获取第二http请求对应的第二响应结果,并保存第二响应结果。步骤207、接收由网络应用接口根据http协议获取第一http请求对应的第一响应结果。其中,上述步骤205-207的具体描述可参见上述步骤103-105的相关描述,在此不再赘述。步骤208、判断第一响应结果与第二响应结果是否匹配。其中,若是,执行步骤209;若否,执行完步骤210后,再执行步骤202。在本实施例中,验证信息可以是与http请求对应的编号id、命名name、文本名text、标题title、网络地址、样式数据中的颜色color、字体font、对齐方式等等。其中编号id、命名name、文本名text和标题title对响应结果进行标识,位置数据表示响应结果在应用页面上的位置信息,通常用顶点坐标(x、y)、宽度width和高度height来表示。样式数据表示响应结果的样式属性,例如颜色、文字的字体、对齐方式和四周间隔的距离等等。其中,第二验证信息和第一验证信息仅用于区别。本实施例对于存储响应结果的文本形式不做限定,可选的为txt格式,存储验证信息以json格式表示,按照最简单的形式表示“名称/值对”的组合。上述网络地址可以是统一资源定位符(uniformresourcelocator,url),它包含的信息指出文件的位置以及浏览器应该怎么处理它。举例来说,假设第一http请求的域名为“http://www.xxx.com.cn”,目标测试服务器的域名为“http://www.xxx102.com.cn”。如图2所示的应用场景中,当用户在输入数字的输入框中输入“128103”后,点击“loadad”按钮时,向socket发送第一http请求为向目标测试服务器请求上传一个编号为“128103”的广告;socket接收到第一http请求后将请求域名“http://www.xxx.com.cn”修改为目标测试服务器域名“http://www.xxx102.com.cn”得到第二http请求;目标测试服务器根据http协议处理第二http请求得到第二响应结果,并在guanggao.txt文件中保存第二响应结果,假设guanggao.txt中的第二验证信息包括:("pic_url":"http://orionimg.adkmob.com/liehu/20151230/1451445246mm841_l.png","title":"mobilestrike");此外将第二响应结果转发给网络应用接口,获取该网络应用接口根据http协议处理第一http请求得到的第一响应结果,当第一响应结果的第一验证信息中的"pic_url"与"title"对应的值与第二响应结果中的值匹配时,确定网络应用接口测试成功,则手机显示的广告跟guanggao.txt保存的一致。步骤209、确定网络应用接口测试成功。在本实施例中,当第一响应结果与第二响应结果匹配时,确定网络应用接口测试成功。步骤210、生成提示信息,接收网络应用接口发送的针对提示信息生成的第一http请求。在本实施例中,当第一验证信息与第二验证信息不匹配时,对匹配不成功的验证信息进行分析生成提示信息,用户根据提示信息修改测试参数生成第一http请求,向网络应用接口发送第一http请求,执行步骤202,从而利于提高测试的准确性。在图4所描述的网络应用接口的测试方法中,当接收到网络应用接口发送的第一http请求后,选择最优网络带宽的测试服务器作为目标测试服务器。通过测试服务器与域名之间的映射关系查找目标测试服务器的域名。将第一http请求中的域名修改为目标测试服务器的域名生成第二http请求。向目标测试服务器发送第二http请求,接收由目标测试服务器根据http协议获取第二http请求对应的第二响应结果,保存第二响应结果。获取网络应用接口根据http协议获取第一http请求对应的第一响应结果,判断第一响应结果中是否有与第二验证信息匹配的第一验证信息,若是,确定第一响应结果与第二响应结果匹配,从而确定测试成功;若否,生成提示信息,接收网络应用接口发送的针对提示信息生成的第一http请求。同时运用socket协议和http协议,接收目标测试服务器返回的第二响应结果,确保基于http协议客户端发出的请求和预期请求的返回结果一致,可保存目标测试服务器返回的第二响应结果,当验证信息不匹配时,根据提示信息修改测试参数生成第一http请求,重新对网络应用接口进行测试,从而提高了测试结果的准确性。请参阅图5,图5是本发明实施例提供的一种网络应用接口的测试装置的结构图。如图5所示,该装置300可以包括:第一接收单元301,用于接收网络应用接口发送的第一http请求。本发明实施例中,网络应用接口可以是互联网
技术领域
中任一应用程序中用于进行数据交换的接口。本发明实施例中,http请求是指从客户端到服务器端的请求消息,包括消息首行中,对资源的请求方法、资源的标识符及使用的协议。将socket接口接收到网络应用接口发送的http请求作为第一http请求。生成单元302,用于根据第一http请求生成第二http请求。作为一种可能的实施方式,生成单元303具体用于将第一http请求分为域名和非域名两部分,根据第一http请求中的非域名部分和目标测试服务器的域名生成第二http请求。也就是说,修改第一http请求的域名为目标测试服务器的域名,使得第二http请求的域名为目标测试服务器的域名,则使得返回结果一致。举例来说,假设第一http请求为“http://www.xxx.com.cn”,“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”,则域名:“http://www.xxx.com.cn”,非域名为:“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”,目标测试服务器的域名为“http://www.xxx102.com.cn”,则第二http请求为“http://www.xxx102.com.cn”,“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”。第一发送单元303,用于向目标测试服务器发送第二http请求。由于socket协议是底层协议,则socket协议返回的响应结果为乱码,将该响应结果处理成可以识别的编码很复杂。在接收到第一http请求后,不是直接将第一http请求转发给测试服务端,而是将第一http请求中的域名修改为目标测试服务器的域名,得到第二http请求。也就是说通过目标测试服务器实现第二http请求,从而避免了使用socket协议导致返回的结果为乱码,且确保目标测试服务器返回的响应结果为客户端发送的请求。举例来说,假设第一http请求的域名为“http://www.xxx.com.cn”,目标测试服务器的域名为“http://www.xxx102.com.cn”,则目标测试服务器接收的第二http请求的域名为“http://www.xxx102.com.cn”。第二接收单元304,用于接收由目标测试服务器发送的根据http协议获取第二http请求对应的第二响应结果,并保存第二响应结果。http协议是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。基于http协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。在本实施例中,目标测试服务器接收第二http请求后,根据http协议获取第二http请求对应的第二响应结果。且将第二响应结果进行保存,从而解决了采用socket协议无法将服务器的响应结果进行保存的弊端。第三接收单元305,用于接收由网络应用接口根据http协议获取第一http请求对应的第一响应结果。在本实施例中,网络应用接口根据http协议获取第一http请求对应的第一响应结果与目标测试服务器根据http协议获取第二http请求对应的第二响应结果的步骤一致,在此不再赘述。确定单元306,用于当第一响应结果与第二响应结果匹配时,确定网络应用接口测试成功。作为一种可能的实施方式,确定单元306具体用于:在第二响应结果中查找第二验证信息,第二验证信息包括第二http请求对应的网络地址;在第一响应结果中查找与第二验证信息对应的第一验证信息,当第一验证信息与第二验证信息匹配时,确定第一响应结果与第二响应结果匹配。其中,验证信息可以是与http请求对应的编号id、命名name、文本名text、标题title、网络地址、样式数据中的颜色color、字体font、对齐方式等等。其中编号id、命名name、文本名text和标题title对响应结果进行标识,位置数据表示响应结果在应用页面上的位置信息,通常用顶点坐标(x、y)、宽度width和高度height来表示。样式数据表示响应结果的样式属性,例如颜色、文字的字体、对齐方式和四周间隔的距离等等。其中,第二验证信息和第一验证信息仅用于区别。本实施例对于存储响应结果的文本形式不做限定,可选的为txt格式,存储验证信息以json格式表示,按照最简单的形式表示“名称/值对”的组合。上述网络地址可以是统一资源定位符(uniformresourcelocator,url),它包含的信息指出文件的位置以及浏览器应该怎么处理它。举例来说,假设第一http请求的域名为“http://www.xxx.com.cn”,目标测试服务器的域名为“http://www.xxx102.com.cn”。如图2所示的应用场景中,当用户在输入数字的输入框中输入“128103”后,点击“loadad”按钮时,向socket发送第一http请求为向目标测试服务器请求上传一个编号为“128103”的广告;socket接收到第一http请求后将请求域名“http://www.xxx.com.cn”修改为目标测试服务器域名“http://www.xxx102.com.cn”得到第二http请求;目标测试服务器根据http协议处理第二http请求得到第二响应结果,并在guanggao.txt文件中保存第二响应结果,假设guanggao.txt中的第二验证信息包括:("pic_url":"http://orionimg.adkmob.com/liehu/20151230/1451445246mm841_l.png","title":"mobilestrike");此外将第二响应结果转发给网络应用接口,获取该网络应用接口根据http协议处理第一http请求得到的第一响应结果,当第一响应结果的第一验证信息中的"pic_url"与"title"对应的值与第二响应结果中的值匹配时,确定网络应用接口测试成功,则手机显示的广告跟guanggao.txt保存的一致。在图5所描述的网络应用接口的测试装置中,当接收到网络应用接口发送的第一http请求后,将第一http请求中的域名修改为目标测试服务器的域名得到第二http请求。然后向目标测试服务器发送第二http请求,接收由目标测试服务器根据http协议获取第二http请求对应的第二响应结果,保存第二响应结果,获取网络应用接口根据http协议获取第一http请求对应的第一响应结果,当第一响应结果与第二响应结果匹配时,测试成功。同时运用socket协议和http协议,接收目标测试服务器返回的第二响应结果,确保基于http协议客户端发出的请求和预期请求的返回结果一致,可保存目标测试服务器返回的第二响应结果,从而提高了测试结果的准确性。请参阅图6,图6是本发明实施例提供的另一种网络应用接口的测试装置的结构图。如图6所示,该装置400可以包括:第一接收单元401,用于接收网络应用接口发送的第一http请求。其中,上述第一接收单元401的具体描述可参见上述的第一接收单元301,在此不再赘述。选择单元402,用于当存在多个测试服务器时,在多个测试服务器中选择最优网络带宽的测试服务器作为目标测试服务器。本实施例中,根据socket对网络应用接口和测试服务器之间的测试请求和响应结果进行转发,不需要耗费资源来建立与网络应用接口之间的通信连接,从而降低了测试工具的负载,提高了测试的稳定性。本实施例中,当socket与多个测试服务器建立连接时,获取每一个与socket连接的测试服务器的网络带宽,选择最优网络带宽的测试服务器作为目标测试服务器,可减小测试服务器的压力,从而提高测试效率。举例来说,假设与socket连接的测试服务器的编号为1000、1001和1002,则获取每一个测试服务器的网络带宽,其中,编号为1000的测试服务器的网络带宽为20%,编号为1001的测试服务器的网络带宽为50%,编号为1002的测试服务器的网络带宽为80%,则将编号为1000的测试服务器作为目标测试服务器。查找单元403,用于根据测试服务器与域名之间的映射关系查找目标测试服务器的域名。本实施例中,通过对建立的测试服务器与域名之间的映射关系进行管理,可以在不同的测试项目中,实现对不同测试服务器与不同网络应用接口之间的统一管理和调度,打破了实施工具之间存在的壁垒。根据测试服务器与域名之间的映射关系来查找目标测试服务器的域名,可提高查找效率。生成单元404,用于将第一http请求分为域名和非域名两部分,根据第一http请求中的非域名部分和目标测试服务器的域名生成第二http请求。通过修改第一http请求的域名为目标测试服务器的域名,使得第二http请求的域名为目标测试服务器的域名,从而避免了使用socket协议导致返回的结果为乱码,且确保目标测试服务器返回的响应结果为客户端发送的请求,提高测试结果的准确性。举例来说,假设第一http请求为“http://www.xxx.com.cn”,“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”,则域名:“http://www.xxx.com.cn”,非域名为:“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”,目标测试服务器的域名为“http://www.xxx102.com.cn”,则第二http请求为“http://www.xxx102.com.cn”,“pkg”:“com.epicwaskds.ms”,“pkg_size”,“pkg_url”。第一发送单元405,用于向目标测试服务器发送第二http请求。由于socket协议是底层协议,则socket协议返回的响应结果为乱码,将该响应结果处理成可以识别的编码很复杂。在接收到第一http请求后,不是直接将第一http请求转发给测试服务端,而是将第一http请求中的域名修改为目标测试服务器的域名,得到第二http请求。也就是说通过目标测试服务器实现第二http请求,从而避免了使用socket协议导致返回的结果为乱码,且确保目标测试服务器返回的响应结果为客户端发送的请求,提高测试结果的准确性。举例来说,假设第一http请求的域名为“http://www.xxx.com.cn”,目标测试服务器的域名为“http://www.xxx102.com.cn”,则目标测试服务器接收的第二http请求的域名为“http://www.xxx102.com.cn”。第二接收单元406,用于接收由目标测试服务器发送的根据http协议获取第二http请求对应的第二响应结果,并保存第二响应结果。第三接收单元407,用于接收由网络应用接口根据http协议获取第一http请求对应的第一响应结果。确定单元408,用于当第一响应结果与第二响应结果匹配时,确定第一响应结果与第二响应结果匹配,确定网络应用接口测试成功。其中,第二接收单元406、第三接收单元407确定单元408的具体描述可参见上述的第二接收单元304、第三接收单元305和确定单元306,在此不再赘述。提示单元409,用于当第一响应结果与第二响应结果不匹配时,生成提示信息。第一接收单元401还用于接收网络应用接口发送的针对提示信息生成的第一http请求。在本实施例中,当第一验证信息与第二验证信息不匹配时,对匹配不成功的验证信息进行分析生成提示信息,用户根据提示信息修改测试参数生成第一http请求,向网络应用接口发送第一http请求,从而利于提高测试的准确性。在图6所描述的网络应用接口的测试方法中,当接收到网络应用接口发送的第一http请求后,选择最优网络带宽的测试服务器作为目标测试服务器。通过测试服务器与域名之间的映射关系查找目标测试服务器的域名。将第一http请求中的域名修改为目标测试服务器的域名生成第二http请求。向目标测试服务器发送第二http请求,接收由目标测试服务器根据http协议获取第二http请求对应的第二响应结果,保存第二响应结果。获取网络应用接口根据http协议获取第一http请求对应的第一响应结果,判断第一响应结果中是否有与第二验证信息匹配的第一验证信息,若是,确定第一响应结果与第二响应结果匹配,从而确定测试成功;若否,生成提示信息,接收网络应用接口发送的针对提示信息生成的第一http请求。同时运用socket协议和http协议,接收目标测试服务器返回的第二响应结果,确保基于http协议客户端发出的请求和预期请求的返回结果一致,可保存目标测试服务器返回的第二响应结果,当验证信息不匹配时,根据提示信息修改测试参数生成第一http请求,重新对网络应用接口进行测试,从而提高了测试结果的准确性。请参阅图7,图7是本发明实施例提供的电子设备。其中,该网络应用接口的测试方法适用于手机、平板电脑等基于socket协议的电子设备。如图7所示,该电子设备可以包括壳体501、处理器502、存储器503、电路板504和电源电路505,其中,电路板504安置在壳体围成的空间内部,处理器502和存储器503设置在电路板504上;电源电路505,用于为电子设备的各个电路或器件供电;存储器503用于存储可执行程序代码;处理器502通过读取存储器503中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:接收网络应用接口发送的第一http请求;根据第一http请求生成第二http请求;向目标测试服务器发送第二http请求;接收由目标测试服务器发送的根据http协议获取第二http请求对应的第二响应结果,并保存第二响应结果;接收由网络应用接口根据http协议获取第一http请求对应的第一响应结果;当第一响应结果与第二响应结果匹配时,确定网络应用接口测试成功。作为一种可能的实施方式,处理器502还用于执行以下操作:将第一http请求分为域名和非域名两部分,根据第一http请求中的非域名部分和目标测试服务器的域名生成第二http请求。作为一种可能的实施方式,在根据第一http请求生成第二http请求时,处理器502还用于执行以下操作:将第一http请求分为域名和非域名两部分,根据第一http请求中的非域名部分和目标测试服务器的域名生成第二http请求。作为一种可能的实施方式,在接收由网络应用接口根据http协议获取第一http请求对应的第一响应结果之后,处理器502还用于执行以下操作:在第二响应结果中查找第二验证信息,第二验证信息包括第二http请求对应的网络地址;在第一响应结果中查找与第二验证信息对应的第一验证信息,当第一验证信息与第二验证信息匹配时,确定第一响应结果与第二响应结果匹配。作为一种可能的实施方式,处理器502还用于执行以下操作:当第一验证信息与第二验证信息不匹配时,生成提示信息;接收网络应用接口发送的针对提示信息生成的第一http请求。作为一种可能的实施方式,在根据第一http请求中的非域名部分和目标测试服务器的域名生成第二http请求之前,处理器502还用于执行以下操作:当存在多个测试服务器时,在多个测试服务器中选择最优网络带宽的测试服务器作为目标测试服务器;根据测试服务器与域名之间的映射关系查找目标测试服务器的域名。在图7所描述的电子设备中,当接收到网络应用接口发送的第一http请求后,将第一http请求中的域名修改为目标测试服务器的域名得到第二http请求。然后向目标测试服务器发送第二http请求,接收由目标测试服务器根据http协议获取第二http请求对应的第二响应结果,保存第二响应结果,获取网络应用接口根据http协议获取第一http请求对应的第一响应结果,当第一响应结果与第二响应结果匹配时,测试成功。同时运用socket协议和http协议,接收目标测试服务器返回的第二响应结果,确保基于http协议客户端发出的请求和预期请求的返回结果一致,可保存目标测试服务器返回的第二响应结果,从而提高了测试结果的准确性。在一个实施例中提供了一种存储介质,该存储介质用于存储应用程序,应用程序用于在运行时执行实施例一或实施例二的网络应用接口的测试方法。在一个实施例中提供了一种应用程序,该应用程序用于在运行时执行实施例一或实施例二的网络应用接口的测试方法。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。以上对本发明实施例所提供的网络应用接口的测试方法、装置及电子设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1