一种网络接口测试装置及方法与流程

文档序号:11657279阅读:173来源:国知局
一种网络接口测试装置及方法与流程

本发明涉及网络测试技术领域,具体涉及一种网络接口测试装置及方法。



背景技术:

随着计算技术和网络技术的飞速发展,大量的网络应用系统不断涌现,网络软硬件设施之间通过指定的网络通信协议进行相互通信,共同协作以完成特定的功能。要确保网络应用系统的顺畅运行,则必须保证网络中的各个网络接口能够正常发挥作用。

因此,在网络应用部署之前或者运行维护过程中需要对网络接口进行测试,以确定是否可以提供正常的网络连接功能。目前,对网络接口例如http接口的测试大都基于浏览器实现,通过为浏览器开发指定测试功能的插件来测试网络接口是否可用。

这种基于现有浏览器的方法虽然看似简化了测试工具的实现,但实际上由于对浏览器的依赖,很大程度上限制了这种测试方法的应用范围。要使用该方法进行测试,就必须在目标机器上预装浏览器,以及相应的测试插件,使得没有安装这些工具的机器无法进行测试。而且,测试时不能根据实际需要对编码进行灵活设置,使得非英文数据传输时会出现无法识别的乱码。因此,需要一种不依赖于浏览器的独立测试工具和方法以克服上述缺陷。



技术实现要素:

有鉴于此,本发明实施例提供一种网络接口测试装置及方法,以提升测 试的效率。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

第一方面,本发明实施例提供了一种网络接口测试装置,包括:

测试数据接收单元,用于接收外部输入的测试数据,其中,所述测试数据包括:待测试的接口地址、测试类型;

测试请求生成单元,用于根据外部输入的测试数据生成测试请求;

测试请求发送单元,用于将所述测试请求发送至所述待测试的接口地址;

测试结果接收单元,用于从所述接口地址接收返回的测试结果数据;

测试结果输出单元,用于输出所述测试结果数据。

第二方面,本发明实施例还提供了网络接口测试方法,包括以下步骤:

接收外部输入的测试数据,其中,所述测试数据包括:待测试的接口地址、测试类型;

根据外部输入的测试数据生成测试请求;

将所述测试请求发送至所述待测试的接口地址;

从所述接口地址接收返回的测试结果数据;

输出所述测试结果数据。

本发明通过设计一种独立于浏览器实现的网络接口测试装置及相应的方法,能够广泛地适用于内外网等各种网络接口测试场合,摒弃了对浏览器的依赖,可独立、完整地提供网络接口测试功能,扩展了其应用的范围,提升了测试的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例 描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。

图1是本发明具体实施例一所述的网络接口测试装置的结构框图;

图2是本发明具体实施例二所述的网络接口测试方法流程图;

图3是本发明具体实施例三所述的网络接口测试方法流程图;

图4是本发明具体实施例三所述的java.awt包的层次结构图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

实施例一

图1是本实施例所述的网络接口测试装置的结构框图,如图1所示,本实施例所述的网络接口测试装置100包括:

测试数据接收单元101,接收外部输入的测试数据;其中,所述测试数据包括:待测试的接口地址、以及测试类型;

所述网络接口测试装置为用户或外部系统提供测试数据输入接口,可以通过测试数据接收单元101从用户或外部系统接收所输入的测试数据。通常,所述测试数据包括如下几项,但并不限于此:待测试的接口地址以及测试类型。其中,所述待测试的接口地址即为当前所要测试的网络接口的具体 地址,可以指定为外网地址或者内网地址;所述测试类型是指当前要针对上述接口地址测试哪些类型的网络功能,最常见的为上传数据和下载数据。如果为上传数据,则通常还需从外部输入待发送的具体数据,即所述外部输入的测试数据还需包括所述待发送数据。当然,根据实际的测试需求还可以指定其他类型,本发明对此不作限制;所述数据格式是指在测试时要以何种编码格式来上传或下载数据。

测试请求生成单元102,根据外部输入的测试数据生成测试请求;

测试请求通常涉及要测试的目标地址以及测试请求的类型等信息。在接收到外部输入的上述测试数据后,从中解析出相应的数据,并根据得到的数据对测试请求的具体参数进行设置。例如,将测试请求的目标地址设置为所述待测试的接口地址,以及将测试请求的请求类型设置为所述测试类型。需要指出,对于测试类型为上传数据时,还需将测试请求的上传数据设置为所述待发送数据;进一步地,为了避免传输非英文数据时出现乱码,还需将所述上传数据的编码格式设置为所述从外部指定的特定数据格式。

测试请求发送单元103,将所述测试请求发送至所述待测试的接口地址;

在设置好测试请求的各项参数之后即可将该测试请求发送到外部所指定的待测试接口地址,针对上述地址的网络接口来测试相应测试类型的网络功能是否正常。

测试结果接收单元104,从所述接口地址接收返回的测试结果数据;

当所述指定的待测试网络接口完成相应的功能测试后会向测试请求发起端返回测试结果数据。在已经从外部指定了数据格式的前提下,所述测试结果接收单元104会按照所述数据格式从所述接口地址接收返回的结果数据。

进一步地,在得到返回的测试结果数据后即可通过判断该数据是否与预设的标准相吻合,从而来验证其是否正确。根据该验证结果,即可得知所测 试的网络接口的相应功能是否存在异常。

测试结果输出单元105,用于输出所述测试结果数据。

测试结果输出单元105用于向外部输出测试结果数据。例如可以通过显示屏显示、打印成测试报告、或者通过声/光/电等方式向外部呈现测试的具体结论。

此处所测试的网络接口可以是任何类型,最常见的接口为http接口。相应地,可以通过java语言中的基于底层httpurlconnection类实现与所述待测试接口交互httpurlconnection类来实现所述测试请求生成单元102、测试请求发送单元103、以及测试结果接收单元104,从而完成对http接口的测试。下面对此进行示例性说明。

所述测试请求生成单元102根据外部输入的测试数据生成测试请求、以及测试请求发送单元103将所述测试请求发送至所述待测试的接口地址的相关操作,具体示例如下所示:

将测试请求的目标地址设置为所述待测试的接口地址:

urlserverurl=newurl("http://localhost:8090/lctest/testserver");

基于httpurlconnection类创建http网络连接对象实例;

urlconnectionuct=serverurl.openconnection();

httpurlconnectionhutc=(httpurlconnection)uct;

将测试请求的请求类型设置为所述测试类型,此处以上传类型为例:

hutc.setrequestmethod("post");

将测试请求的上传数据设置为所述待发送数据,并且,为了避免传输非英文数据时出现乱码,将所述上传数据的编码格式设置为所述从外部指定的特定数据格式,然后发送数据:

outputstreamout=hutc.getoutputstream();

out.write(param.getbytes("utf-8"));

其中,param为待发送数据;所述数据格式为utf-8,但并不限于此, 还可以包括:unicode,gb2313,gb18030,gbk,big5等格式。

所述测试结果接收单元104按照所述数据格式从所述接口地址接收返回数据的相关操作,具体示例如下所示:

stringbufferbuffer=newstringbuffer();

bufferedreaderreader=null;

inputstreamins=hutc.getinputstream();

reader=newbufferedreader(newinputstreamreader(ins,"utf-8"));

获取返回数据时将该返回数据的编码格式设置为外部指定的所述数据格式,例如此处的utf-8。

本发明所述的网络接口测试装置可以不依赖于浏览器独立实现。具体实现方式上,可以采用swt和jface实现可视化框架,通过httpurlconnection类来实现测试功能,并通过exe4j进行打包生成可执行文件,此处所生成的可执行文件自带jre运行环境,无需测试端安装浏览器以及java环境,通过本发明所述的网络接口测试装置即可实现完整的网络接口测试功能。

所述网络接口测试装置能够广泛地适用于内外网等各种网络接口测试场合,摒弃了对浏览器的依赖,可独立、完整地提供网络接口测试功能,扩展了其应用的范围,提升了测试的效率。

实施例二

图2是本实施例所述的网络接口测试方法流程图,如图2所示,本实施例所述的网络接口测试方法包括以下步骤:

步骤s201、接收外部输入的测试数据;

本步骤用于为用户或外部系统提供测试数据输入接口,从用户或外部系统接收所输入的测试数据。通常,所述测试数据包括如下几项,但并不限于此:待测试的接口地址,测试类型。

其中,所述待测试的接口地址即为当前所要测试的网络接口的具体地址,可以指定为外网地址或者内网地址;所述测试类型是指当前要针对上述接口地址测试哪些类型的网络功能,最常见的为上传数据和下载数据。

如果为上传数据,则通常还需从外部输入待发送的具体数据,即所述外部输入的测试数据还需包括所述待发送数据。当然,根据实际的测试需求还可以指定其他类型,本发明对此不作限制。

步骤s202、根据外部输入的测试数据生成测试请求;

测试请求通常涉及要测试的目标地址以及测试请求的类型等信息。在接收到外部输入的上述测试数据后,从中解析出相应的数据,并根据得到的数据对测试请求的具体参数进行设置。例如,将测试请求的目标地址设置为所述待测试的接口地址,以及将测试请求的请求类型设置为所述测试类型。需要指出,对于测试类型为上传数据时,还需将测试请求的上传数据设置为所述待发送数据。

进一步地,为了避免传输非英文数据时出现乱码,还需将所述上传数据的编码格式设置为所述从外部指定的特定数据格式。

步骤s203、将所述测试请求发送至所述待测试的接口地址;

在设置好测试请求的各项参数之后即可将该测试请求发送到外部所指定的待测试接口地址,针对上述地址的网络接口来测试相应测试类型的网络功能是否正常。

步骤s204、从所述接口地址接收返回的测试结果数据;

当所述指定的待测试网络接口完成相应的功能测试后会向测试请求发起端返回测试结果数据。在已经从外部指定了数据格式的前提下,会按照所述数据格式从所述接口地址接收返回的数据,即,将该返回数据的编码格式设置为所述数据格式。

步骤s205、输出所述测试结果数据。

例如可以通过显示屏显示、打印成测试报告、或者通过声/光/电等方式向外部呈现测试的具体结论。

需要说明的是,在得到返回的测试结果数据后,且在输出结果数据之前,进一步地,还可验证返回的所述测试结果数据是否符合预设标准。例如,通过判断该数据是否与预设的标准相吻合,从而来验证其是否正确。根据该验证结果,即可得知所测试的网络接口的相应功能是否存在异常。

此处所测试的网络接口可以是任何类型,最常见的接口为http接口。相应地,可以基于java语言中的httpurlconnection类来实现所述测试请求生成步骤s202、测试请求发送步骤s203、以及测试结果数据接收步骤s204,从而完成对http接口的测试。具体的示例可参见实施例一所示。

本发明所述的网络接口测试方法可以不依赖于浏览器独立实施。具体实现方式上,可以采用swt和jface实现可视化框架,通过httpurlconnection类来实现测试功能,并通过exe4j进行打包生成可执行文件,此处所生成的可执行文件自带jre运行环境,无需在测试端安装浏览器以及java环境,通过本发明所述的网络接口测试方法即可实现完整的网络接口测试功能。

所述网络接口测试方法能够广泛地适用于内外网等各种网络接口测试场合,摒弃了对浏览器的依赖,可独立、完整地提供网络接口测试功能,扩展了其应用的范围,提升了测试的效率。

实施例三

图3是本发明具体实施例三所述的网络接口测试方法流程图,如图3所示,本实施例所述的网络接口测试方法包括:

步骤s301、创建窗体。

步骤s302、接收所输入的url。

步骤s303、找到url所指的接口。

步骤s304、选择检测接口类型。

若所述接口类型为下载数据,则执行步骤s305,若所述接口类型为上传数据,则执行步骤s306。

步骤s305、get是从服务器上获取数据,执行步骤s308。

步骤s306、是向服务器传送数据,执行步骤s307。

步骤s307、输入检测参数(json串等),执行步骤s308。

步骤s308、生成接口连接,与服务器会话。

本步骤需通过基于底层httpurlconnection类实现与所述待测试接口交互。

步骤s309、测试端口从服务器获取回流(字节流)。

本步骤需使用函数connection.getinputstream()。

步骤s310、生成返回字符流。

本步骤基于newinputstreamreader((),"utf-8")命令来实现对所述测试结果数据的读取识别。在读取识别所述测试结果数据时使用utf-8字符集。

步骤s311、存入缓存区

本步骤通过函数newbufferdereader执行。

步骤s312、转换为字符串。

步骤s313、发送屏幕,显示。

其中,inputstream,用于得到的是字节输入流,inputstream.read("filename")之后,得到字节流reader:读取的是字符流inputstreamreader:从字节到字符的桥梁。inputstreamreader(inputstream.read("filename"));

reader.read(inputstreamreader(inputstreamin));便可从字节变为字符,打印显示了。

bufferedreaderread=newbufferedreader(new inputstreamreader(connection

.getinputstream(),”utf-8”));

一般工具调用都使用httpclient方式,本实施例这种方式有bug,会造成一些特殊问题,很难解决包括诸如中文乱码等问题。而本实施例采用用httpurlconnection方式,本领域普通技术人员很难想到可以在实例化inputstreamreader的时候,添加了“utf-8”字符集参数,从而能够解决乱码问题。

第一,本工具使用了httpurlconnection类直接连接服务器端接口,可以提供post和get两种传输方式。httpurlconnection的父类是urlconnection抽象类。httpurlconnection可以生成http请求,请求后在inputstream和outputstream上调用close()方法即可释放相关的网络资源。

第二,本工具还使用了ibm开源的gui框架:swt和jface,保证了java输出的窗口更加美观,并且更易编写。

swt和jface是基于sun公司awt,awt(abstractwindowtoolkit)抽象窗口工具包,是java的图形用户界面的基本工具。java.awt包的层次结构如图4所示。

第三,本工具使用exe4j开源打包工具,把本工具打包成exe可执行文件,并集成java运行环境jre1.6。因为本工具是使用java语言编写的,所以必须有java运行环境才可以使用,而本工具集成了jre,方便用户可以在无java运行环境的机器上进行使用。

http接口开发及调用人员,使用本工具可以更加快捷的测试接口,并且节省了编写测试代码的时间,为项目开发及系统连调节省了大量时间。

本实施例的技术方案使用了ibm开源的gui框架:swt和jface,开发可视化窗口,从而不依赖于任何浏览器。使用exe4j进行打包,生成exe文件,并且自带jre运行环境,用户可以直接使用本工具,不用安装本工具,也不用安装java运行环境,并且内外网接口均可进行测试。通过底层 httpurlconnection类及其方法的有效调用,克服了jar/exe文件中文乱码的问题。

以上实施例提供的技术方案中的全部或部分内容可以通过软件编程或专用硬件设备实现,其中软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘;专用硬件设备可以是asic、fpga、soc、或具有相应电路的ipcore。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1