WebService自动化测试系统和方法

文档序号:8543622阅读:344来源:国知局
Web Service自动化测试系统和方法
【技术领域】
[0001]本发明涉及信息技术领域,尤其涉及一种Web Service自动化测试系统和方法。
【背景技术】
[0002]Web Service作为一种应用广泛的分布式网络应用程序,用户或客户端利用HTTP请求方式即可简便地调用其接口服务。Web Service —般基于SOAP(简单对象访问协议)设计实现,具有扩展性强,灵活易用的特点,随着RESTful风格越来越广泛的被应用到WebService的架构设计中,Web Service的开发和应用更加简洁,RESTful风格的Web Service在性能、效率和易用性方面更加优秀。
[0003]对Web Service的测试一般需要开发本地代理(客户端)模拟对服务的调用,并解析和检查服务器返回的内容。这类测试通常有如下缺点:a、数据跟代码不方便分离,数据组织复杂,代码和数据都不易维护。b、对测试人员有开发编码需求,技能要求高,不利于开展自动化测试。C、扩展性不强,随着被测系统规模变化,测试代码也将变复杂。d、对服务响应结果缺乏简单准确的自动化检查手段。e、代码缺乏通用性,需要根据不同的服务开发不同的代码。

【发明内容】

[0004]针对上述现有技术存在的缺点,本发明的目的在于提供一种Web Service自动化测试系统,包括:
[0005]WSDL/WADL解析模块,用以解析被测Web Service的WSDL或WADL描述,从而获取编写测试数据文件的依据;所述测试数据文件包括输入数据文件和检查数据文件;
[0006]数据解析模块,用以读取所述输入数据文件,并从中解析出调用服务所需数据,读取所述检查数据文件,并从中解析出测试结果检查所需数据;
[0007]连接和调用服务模块,用以连接被测Web Service、根据输入数据文件组装调用服务所需数据、执行服务调用并接收服务返回的执行结果数据;
[0008]结果校验模块,用以根据测试结果检查所需数据对服务调用结果数据进行校验;
[0009]执行控制模块用以调度数据解析模块、连接和调用服务模块及结果校验模块,进行测试数据文件的依次读取、解析、数据组装、调用接口服务和结果检查,并最终生成测试?艮胃。
[0010]进一步地,所述测试数据文件还包括参数数据文件。
[0011]进一步地,所述数据解析模块还用以读取所述参数数据文件,并从中解析出对输入数据或检查数据进行参数化处理所需数据。
[0012]进一步地,所述编写测试数据文件的依据包括:Web服务接口对应的URL、接口方法名、输入/输出参数、Web Service的http method属性信息(对应服务的数据传送方式)。
[0013]进一步地,还包括数据管理模块,用以以Web页面的方式让用户对测试数据文件进行录入、存储、修改及解析或转换。
[0014]本发明的另一目的在于提供一种Web Service自动化测试方法,包括以下步骤:
[0015]I)编写测试数据文件,包括输入数据文件和检查数据文件;
[0016]2)依序获取每个用例对应的输入数据文件和检查数据文件,从中解析出调用服务所需数据和测试结果检查所需数据;
[0017]3)连接被测Web Service、根据输入数据文件组装调用服务所需数据、执行服务调用并接收服务返回的执行结果数据;
[0018]4)根据测试结果检查所需数据对服务调用结果数据进行校验;
[0019]5)全部测试数据文件读取和执行完毕,生成测试报告。
[0020]进一步地,步骤I)中所述编写测试数据文件的依据包括:Web服务接口对应的URL、接口方法名、输入/输出参数、Web Service的http method属性信息(对应服务的数据传送方式)。
[0021]进一步地,步骤I)还包括:若有数据参数化需求,则在输入数据文件或检查数据文件中插入参数化标志序号,并编写参数数据文件。
[0022]进一步的,步骤2)还包括:若输入数据中存在参数化标志序号,则以参数数据循环替换相应参数标志序号后再组装数据,从而实现一个有参数化需求的测试用例的循环执行。
[0023]通过采取上述技术方案,本发明能够获得以下技术效果:
[0024]I)通过自动化测试系统和方法,可以实现对Web Service的功能进行自动化测试,提高测试工作效率。
[0025]2)在Web Service的自动化测试过程中,测试人员只需要简便地编写和维护测试数据,降低对测试人员的技能要求,便于实施自动化测试。
[0026]3)Web Service的自动化测试可以和持续集成环境结合,整体提升研发效率。
[0027]4)方法具有通用性,适合大多数Web Service的自动化测试。
【附图说明】
[0028]图1为本发明的系统的模块组成示意图。
[0029]图2为本发明一实施例中参数数据文件的内容示意图。
[0030]图3为本发明的方法流程图。
【具体实施方式】
[0031]为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
[0032]如图1所示,本发明的Web Service自动化测试系统包括以下模块:
[0033]I),WSDL/WADL解析模块负责解析Web Service服务的WSDL或WADL描述,从而获取Web服务接口对应的URLJi 口方法名、输入/输出参数,从WADL描述中还可获取到Web服务的http method属性信息(对应服务的数据传送方式)。
[0034]2),测试数据文件包括输入数据文件、检查数据文件和参数数据文件,其中输入数据文件内容为调用接口服务所需数据信息,检查数据文件内容为服务调用后进行结果检查所需数据信息,参数数据文件内容为对输入数据或检查数据进行参数化处理所需数据。
[0035]3),数据解析模块负责读取输入的三类数据文件,并根据格式定义从中解析出调用服务所需数据、测试结果检查所需数据和进行参数化处理所需的数据。
[0036]4),连接和调用服务模块负责连接被测服务、根据输入数据组装调用服务所需数据、执行服务调用并接收服务返回的执行结果数据。
[0037]5),结果校验模块负责根据检查数据文件中解析出的内容对服务调用结果数据进行校验,从而判断测试执行结果的正确性。
[0038]6),执行控制模块负责对各模块调度,进行测试数据的依次读取、解析、数据组装、调用接口服务和结果检查,并最终生成测试报告。若输入数据中存在参数化标志,则以参数数据循环替换相应参数化标志后再组装数据,从而实现一个有参数化需求的测试用例的循环执行。
[0039]每个用例对应的输入数据文件、检查数据文件和参数数据文件存在于同一个目录中,其中参数数据文件可选,仅当需要进行参数化处理时才需要存在。
[0040]输入数据文件为纯文本文件,输入数据的格式和定义方法,包括服务URL、数据传送方式、参数数据类型和请求调用所需参数数据。第一行数据表示所测试接口的URL,形如URL = testurl,testurl为调用接口服务所需的URL。第二行数据表示接口的http数据传送方式和接口调用所需参数类型,形如TYPE = X+Y形式,X取值可为soap、get、post、delete和put,Y取值可为value、xml和json,其中X取值为soap时,Y值必须是xml,代表接口服务遵从SOAP协议,客户端连接和调用服务时需服从SOAP协议,X的其他取值对应http的method属性,客户端调用服务时需采取相应请求方式;Y取值为value时,表示接口调用需用到普通的参数字符串,文件中相应需提供键值对,Y取值为xml或json时,表示接口调用需用到XML或JSON数据,文件中需提供相应格式的数据。文件其余各行输入组装数据所需的与TYPE取值匹配的键值对或XML/JSON字符串,其中TYPE = soap+xml时,输入的XML字符串示例可通过WSDL解析模块获取,然后根据测试用例修改其中的待测字段值即可。或都通过服务接口说明书获取参数示例。
[0041]输入数据文件示例I (接口遵从SOAP协议,即以HTTP POST方式传输数据):
[0042]URL = http://testdev.cn/ffebServiceProject/services/HeI1Service
[0043]TYPE = soap+xml
[0044]< ? xml vers1n = ’1.0,encoding = ’ UTF-8,? >
[0045]<soapenv: Envelope xmlns: soapenv = "http://www.w3.0rg/2003/05/soap_envelope〃>
[0046]〈soapenv:Body〉
[0047]<sayHel1ToPersonNew xmlns = 〃http://service.axis2.com〃>
[0048]〈argOxmlns = ////>Jeffrey</arg0>
[0049]</sayHelloToPersonNew>
[0050]</soapenv:Body>
[0051]</soapenv: Envelope)
[0052]输入数据文件示例2 (接口以HTTP GET方式传输数据):
[0053]URL = http://testdev.cn/srs_api/
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1