CN104866422B - Web Service自动化测试系统和方法 - Google Patents
Web Service自动化测试系统和方法 Download PDFInfo
- Publication number
- CN104866422B CN104866422B CN201510260095.5A CN201510260095A CN104866422B CN 104866422 B CN104866422 B CN 104866422B CN 201510260095 A CN201510260095 A CN 201510260095A CN 104866422 B CN104866422 B CN 104866422B
- Authority
- CN
- China
- Prior art keywords
- data
- data file
- web service
- test
- service
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种Web Service自动化测试系统,包括:WSDL/WADL解析模块、数据解析模块、连接和调用服务模块、结果校验模块、及执行控制模块。本发明还提供基础前述系统实现的方法。通过前述系统和方法,本发明能够获得以下技术效果:1)通过自动化测试系统和方法,可以实现对Web Service的功能进行自动化测试,提高测试工作效率。2)在Web Service的自动化测试过程中,测试人员只需要简便地编写和维护测试数据,降低对测试人员的技能要求,便于实施自动化测试。3)Web Service的自动化测试可以和持续集成环境结合,整体提升研发效率。4)方法具有通用性,适合大多数Web Service的自动化测试。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种Web Service自动化测试系统和方法。
背景技术
Web Service作为一种应用广泛的分布式网络应用程序,用户或客户端利用HTTP请求方式即可简便地调用其接口服务。Web Service一般基于SOAP(简单对象访问协议)设计实现,具有扩展性强,灵活易用的特点,随着RESTful风格越来越广泛的被应用到WebService的架构设计中,Web Service的开发和应用更加简洁,RESTful风格的Web Service在性能、效率和易用性方面更加优秀。
对Web Service的测试一般需要开发本地代理(客户端)模拟对服务的调用,并解析和检查服务器返回的内容。这类测试通常有如下缺点:a、数据跟代码不方便分离,数据组织复杂,代码和数据都不易维护。b、对测试人员有开发编码需求,技能要求高,不利于开展自动化测试。c、扩展性不强,随着被测系统规模变化,测试代码也将变复杂。d、对服务响应结果缺乏简单准确的自动化检查手段。e、代码缺乏通用性,需要根据不同的服务开发不同的代码。
发明内容
针对上述现有技术存在的缺点,本发明的目的在于提供一种Web Service自动化测试系统,包括:
WSDL/WADL解析模块,用以解析被测Web Service的WSDL或WADL描述,从而获取编写测试数据文件的依据;所述测试数据文件包括输入数据文件和检查数据文件;
数据解析模块,用以读取所述输入数据文件,并从中解析出调用服务所需数据,读取所述检查数据文件,并从中解析出测试结果检查所需数据;
连接和调用服务模块,用以连接被测Web Service、根据输入数据文件组装调用服务所需数据、执行服务调用并接收服务返回的执行结果数据;
结果校验模块,用以根据测试结果检查所需数据对服务调用结果数据进行校验;
执行控制模块用以调度数据解析模块、连接和调用服务模块及结果校验模块,进行测试数据文件的依次读取、解析、数据组装、调用接口服务和结果检查,并最终生成测试报告。
进一步地,所述测试数据文件还包括参数数据文件。
进一步地,所述数据解析模块还用以读取所述参数数据文件,并从中解析出对输入数据或检查数据进行参数化处理所需数据。
进一步地,所述编写测试数据文件的依据包括:Web服务接口对应的URL、接口方法名、输入/输出参数、Web Service的http method属性信息(对应服务的数据传送方式)。
进一步地,还包括数据管理模块,用以以Web页面的方式让用户对测试数据文件进行录入、存储、修改及解析或转换。
本发明的另一目的在于提供一种Web Service自动化测试方法,包括以下步骤:
1)编写测试数据文件,包括输入数据文件和检查数据文件;
2)依序获取每个用例对应的输入数据文件和检查数据文件,从中解析出调用服务所需数据和测试结果检查所需数据;
3)连接被测Web Service、根据输入数据文件组装调用服务所需数据、执行服务调用并接收服务返回的执行结果数据;
4)根据测试结果检查所需数据对服务调用结果数据进行校验;
5)全部测试数据文件读取和执行完毕,生成测试报告。
进一步地,步骤1)中所述编写测试数据文件的依据包括:Web服务接口对应的URL、接口方法名、输入/输出参数、Web Service的http method属性信息(对应服务的数据传送方式)。
进一步地,步骤1)还包括:若有数据参数化需求,则在输入数据文件或检查数据文件中插入参数化标志序号,并编写参数数据文件。
进一步的,步骤2)还包括:若输入数据中存在参数化标志序号,则以参数数据循环替换相应参数标志序号后再组装数据,从而实现一个有参数化需求的测试用例的循环执行。
通过采取上述技术方案,本发明能够获得以下技术效果:
1)通过自动化测试系统和方法,可以实现对Web Service的功能进行自动化测试,提高测试工作效率。
2)在Web Service的自动化测试过程中,测试人员只需要简便地编写和维护测试数据,降低对测试人员的技能要求,便于实施自动化测试。
3)Web Service的自动化测试可以和持续集成环境结合,整体提升研发效率。
4)方法具有通用性,适合大多数Web Service的自动化测试。
附图说明
图1为本发明的系统的模块组成示意图。
图2为本发明一实施例中参数数据文件的内容示意图。
图3为本发明的方法流程图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
如图1所示,本发明的Web Service自动化测试系统包括以下模块:
1),WSDL/WADL解析模块负责解析Web Service服务的WSDL或WADL描述,从而获取Web服务接口对应的URL、接口方法名、输入/输出参数,从WADL描述中还可获取到Web服务的http method属性信息(对应服务的数据传送方式)。
2),测试数据文件包括输入数据文件、检查数据文件和参数数据文件,其中输入数据文件内容为调用接口服务所需数据信息,检查数据文件内容为服务调用后进行结果检查所需数据信息,参数数据文件内容为对输入数据或检查数据进行参数化处理所需数据。
3),数据解析模块负责读取输入的三类数据文件,并根据格式定义从中解析出调用服务所需数据、测试结果检查所需数据和进行参数化处理所需的数据。
4),连接和调用服务模块负责连接被测服务、根据输入数据组装调用服务所需数据、执行服务调用并接收服务返回的执行结果数据。
5),结果校验模块负责根据检查数据文件中解析出的内容对服务调用结果数据进行校验,从而判断测试执行结果的正确性。
6),执行控制模块负责对各模块调度,进行测试数据的依次读取、解析、数据组装、调用接口服务和结果检查,并最终生成测试报告。若输入数据中存在参数化标志,则以参数数据循环替换相应参数化标志后再组装数据,从而实现一个有参数化需求的测试用例的循环执行。
每个用例对应的输入数据文件、检查数据文件和参数数据文件存在于同一个目录中,其中参数数据文件可选,仅当需要进行参数化处理时才需要存在。
输入数据文件为纯文本文件,输入数据的格式和定义方法,包括服务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解析模块获取,然后根据测试用例修改其中的待测字段值即可。或都通过服务接口说明书获取参数示例。
输入数据文件示例1(接口遵从SOAP协议,即以HTTP POST方式传输数据):
URL=http://testdev.cn/WebServiceProject/services/HelloService
TYPE=soap+xml
<?xml version='1.0'encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<sayHelloToPersonNew xmlns="http://service.axis2.com">
<arg0xmlns="">Jeffrey</arg0>
</sayHelloToPersonNew>
</soapenv:Body>
</soapenv:Envelope>
输入数据文件示例2(接口以HTTP GET方式传输数据):
URL=http://testdev.cn/srs_api/domain/protect/update
TYPE=get+value
parameter1=value1
parameter2=value2
输入数据文件示例3(接口以HTTP POST方式传输数据,请求和响应数据为JSON格式):
URL=http://api.mytest.cn/reviews
TYPE=post+json
{
"job":[
{"title":"2月26日","date":"2015/1/15","val":[
{"ispicture":"False","content":"data"},
}]
}
检查数据文件为纯文本文件,检查数据的格式和定义方法,包括期望返回码的定义、期望存在/不存在字符串的定义和返回数据具体节点期望值描述方式。可在其中描述本次接口调用期望的结果代码,可描述接口调用返回数据中期望包含或不包含的字符串,也可用XPath(对应XML数据格式)/JSONPath(对应JSON数据格式)语言描述返回数据中某特定节点的期望值。
示例1(接口响应的数据为JSON格式):
result code==200
contain==SUCCESS;
$.openplatform_response.status.code==40
$.tld.wikipedia_url==http://domai.nr/cn/Wikipedia
示例2(接口响应的数据为XML格式):
result code==200
notcontain==action pending
//Envelope/Body/sayHello/return/text()==hello,xiao jianfang
/root/list/catalog[starts-with(catalogname,'房产')]==天天地产
若输入数据或检查数据中有参数化需求,则需提供参数数据文件,参数数据文件为表格形式,可为CSV或Excel文件,每一列代表一个参数的取值序列,总列数对应所有需要参数化的数据字段个数。
参数数据文件内容示例如图2所示。
输入数据或检查数据文件内容中若有字段需要参数化,则输入参数化标志序号,并以符号%包括,形如:
parameter1==%p1%(“%p1%”表示需以参数文件中的第1列数据代替)
result code==%p2%(“%p2%”表示需以参数文件中的第2列数据代替)
数据解析模块解析出文件中的数据后,执行控制模块若检测到数据中包含类似如上的参数化标识符,则对此用例循环执行,执行前先以参数文件数据中的相应列数据代替相应参数化字段,直至列中数据都使用完毕,则此用例循环执行结束。
若Web Service服务调用时,有身份验证要求,则可在连接和调用服务模块加入相应功能,并可根据需要设置相应配置文件。
本实施例的自动化测试流程如图3所示。其步骤描述如下:
1)根据接口服务使用说明书或WSDL/WADL解析模块编写输入数据文件。
2)编写检查数据文件。
3)若有数据参数化需求,则在输入数据文件或检查数据文件中插入参数化标志序号,并编写参数数据文件。数据参数化的实现方式,包括参数化字段定义和参数数据组织和应用方式。
4)依序读取每个用例对应的数据文件夹,获取每个用例对应的二或三个数据文件。
5)解析数据文件内容,若有参数化标志序号,则以参数数据文件相应列内容循环代替,并组装服务调用所需数据。
6)根据不同的接口调用选项,连接接口服务,并执行调用请求,接收服务返回的数据。
7)根据检查数据文件内容,用每条检查规则,对服务返回数据进行正确性检查,获得用例执行结果。
8)全部数据读取和执行完毕,生成测试报告。
为增加易用性,提高测试人员编写三类数据(输入数据、检查数据和参数数据)效率,可以Web页面的方式供测试人员进行数据录入和编辑,然后转化为文件方式存储,或使用数据库存储数据,则此方案下,应有相应的数据处理模块,以完成此方案下测试相关数据的录入、存储、修改及解析或转换工作。
根据测试需要,可选择建立配置文件和增加相应功能。
由于采用了以上的方案,可实现:1)全部功能测试用例的自动化执行,覆盖率高。2)数据和代码分离,测试人员只需要准备测试数据,便可实现自动化测试,简便易用。3)方法实现可跟平台无关,可以跟持续集成环境结合,提高研发过程的自动化水平。4)通用性强,可应用于大多数Web Service服务的自动化测试,且一次实现多次使用。
Claims (9)
1.一种Web Service自动化测试方法,包括以下步骤:
1)解析被测Web Service的WSDL或WADL描述,获取编写测试数据文件的依据,该依据包括:Web服务接口对应的URL、接口方法名、输入/输出参数、Web Service的http method属性信息;编写测试数据文件,包括输入数据文件和检查数据文件;
2)依序获取每个用例对应的输入数据文件和检查数据文件,读取所述输入数据文件,并从中解析出调用服务所需数据,读取所述检查数据文件,并从中解析出测试结果检查所需数据;
3)连接被测Web Service、根据输入数据文件组装调用服务所需数据、执行服务调用并接收服务返回的执行结果数据;
4)根据测试结果检查所需数据对服务调用结果数据进行校验;
5)全部测试数据文件读取和执行完毕,生成测试报告。
2.如权利要求1所述的Web Service自动化测试方法,其特征在于,步骤1)还包括:若有数据参数化需求,则在输入数据文件或检查数据文件中插入参数化标志序号,并编写参数数据文件。
3.如权利要求1所述的Web Service自动化测试方法,其特征在于,步骤2)还包括:若输入数据中存在参数化标志序号,则以参数数据循环替换相应参数标志序号后再组装数据,从而实现一个有参数化需求的测试用例的循环执行。
4.一种基于上述权利要求1至3任一所述方法的Web Service自动化测试系统,包括:
WSDL/WADL解析模块,用以解析被测Web Service的WSDL或WADL描述,从而获取编写测试数据文件的依据;所述测试数据文件包括输入数据文件和检查数据文件;
数据解析模块,用以读取所述输入数据文件,并从中解析出调用服务所需数据,读取所述检查数据文件,并从中解析出测试结果检查所需数据;
连接和调用服务模块,用以连接被测Web Service、根据输入数据文件组装调用服务所需数据、执行服务调用并接收服务返回的执行结果数据;
结果校验模块,用以根据测试结果检查所需数据对服务调用结果数据进行校验。
5.如权利要求4所述的Web Service自动化测试系统,其特征在于,所述测试数据文件还包括参数数据文件。
6.如权利要求4所述的Web Service自动化测试系统,其特征在于,还包括执行控制模块,用以调度数据解析模块、连接和调用服务模块及结果校验模块,进行测试数据文件的依次读取、解析、数据组装、调用接口服务和结果检查,并最终生成测试报告。
7.如权利要求4所述的Web Service自动化测试系统,其特征在于,所述数据解析模块还用以读取参数数据文件,并从中解析出对输入数据或检查数据进行参数化处理所需数据。
8.如权利要求4所述的Web Service自动化测试系统,其特征在于,所述编写测试数据文件的依据包括:Web服务接口对应的URL、接口方法名、输入/输出参数、Web Service的http method属性信息。
9.如权利要求4所述的Web Service自动化测试系统,其特征在于,还包括数据管理模块,用以以Web页面的方式让用户对测试数据文件进行录入、存储、修改及解析或转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510260095.5A CN104866422B (zh) | 2015-05-20 | 2015-05-20 | Web Service自动化测试系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510260095.5A CN104866422B (zh) | 2015-05-20 | 2015-05-20 | Web Service自动化测试系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104866422A CN104866422A (zh) | 2015-08-26 |
CN104866422B true CN104866422B (zh) | 2019-02-05 |
Family
ID=53912268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510260095.5A Active CN104866422B (zh) | 2015-05-20 | 2015-05-20 | Web Service自动化测试系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104866422B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021111A (zh) * | 2016-05-30 | 2016-10-12 | 上海携程商务有限公司 | 接口测试方法及系统 |
CN107797911A (zh) * | 2016-09-02 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 用于测试http接口的方法和装置 |
CN107026773B (zh) * | 2017-05-16 | 2020-03-17 | 四川长虹电器股份有限公司 | 用于接口自动化测试的自动关联方法 |
CN109992499A (zh) * | 2017-12-29 | 2019-07-09 | 北京奇虎科技有限公司 | 接口测试方法、装置和计算机可读存储介质 |
CN108540351B (zh) * | 2018-04-20 | 2021-06-25 | 西北工业大学 | 分布式大数据服务的自动化测试方法 |
CN109558311A (zh) * | 2018-10-26 | 2019-04-02 | 深圳点猫科技有限公司 | 一种教育系统的自动化接口校验方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771725A (zh) * | 2010-01-04 | 2010-07-07 | 北京航空航天大学 | 服务测试环境的构建方法和系统 |
US8032644B2 (en) * | 2006-01-24 | 2011-10-04 | Alcatel Lucent | Service creation method, computer program product and computer system for implementing that method |
CN102710460A (zh) * | 2012-05-14 | 2012-10-03 | 南京邮电大学 | 一种基于单子技术的Web服务测试数据自动生成方法 |
CN102799629A (zh) * | 2012-06-26 | 2012-11-28 | 天津大学 | Wsdl文件质量保证系统及其实现方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100353714C (zh) * | 2005-12-26 | 2007-12-05 | 北京航空航天大学 | 一种实现Web服务自动化测试的方法 |
CN101339532B (zh) * | 2007-07-06 | 2012-09-05 | 中国银联股份有限公司 | 一种Web应用系统的自动化测试方法及装置 |
CN101217425A (zh) * | 2008-01-04 | 2008-07-09 | 中兴通讯股份有限公司 | Web测试的方法及装置 |
US20090282136A1 (en) * | 2008-05-08 | 2009-11-12 | Oracle International Corporation | Automatic Generation of Web Service client for Web Services Interoperability Testing |
JP2013122660A (ja) * | 2011-12-09 | 2013-06-20 | Hitachi Systems Ltd | Webアプリケーションシステム及びそのデータ処理方法 |
CN103186467B (zh) * | 2011-12-31 | 2016-04-20 | 北京新媒传信科技有限公司 | 数据正确性验证方法及装置 |
CN104156313B (zh) * | 2014-08-12 | 2017-01-25 | 南京大学 | 一种Web服务测试用例自动生成方法 |
-
2015
- 2015-05-20 CN CN201510260095.5A patent/CN104866422B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8032644B2 (en) * | 2006-01-24 | 2011-10-04 | Alcatel Lucent | Service creation method, computer program product and computer system for implementing that method |
CN101771725A (zh) * | 2010-01-04 | 2010-07-07 | 北京航空航天大学 | 服务测试环境的构建方法和系统 |
CN102710460A (zh) * | 2012-05-14 | 2012-10-03 | 南京邮电大学 | 一种基于单子技术的Web服务测试数据自动生成方法 |
CN102799629A (zh) * | 2012-06-26 | 2012-11-28 | 天津大学 | Wsdl文件质量保证系统及其实现方法 |
Non-Patent Citations (3)
Title |
---|
一种Web服务的测试数据自动生成方法;姜瑛 等;《计算机学报》;20050430;第28卷(第4期);全文 |
一种基于扩展WSDL的Web服务测试数据自动生成方法;蒋乃乾 等;《仪器仪表学报》;20110630;第32卷(第6期);全文 |
基于扩展WSDL的测试用例自动生成;袁雪莉 等;《西南师范大学学报(自然科学版)》;20090430;第34卷(第2期);全文 |
Also Published As
Publication number | Publication date |
---|---|
CN104866422A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866422B (zh) | Web Service自动化测试系统和方法 | |
CN104077140B (zh) | 用于持续集成的自动化编译方法和编译装置 | |
CN107273286A (zh) | 针对任务应用的场景自动化测试平台及方法 | |
CN107329890A (zh) | 基于Mock的测试方法、装置及服务器 | |
CN103150249A (zh) | 一种自动化测试的方法和系统 | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
CN105389256A (zh) | 一种单元测试方法及系统 | |
CN102760096B (zh) | 测试用数据的生成方法、单元测试方法以及单元测试系统 | |
CN104683386A (zh) | 可定制响应的桩服务实现方法及装置 | |
CN102014016A (zh) | 一种网络协议缺陷测试系统及方法 | |
CN112052172B (zh) | 第三方通道的快速测试方法、装置和电子设备 | |
CN107729228A (zh) | 接口测试方法、装置、存储介质和处理器 | |
CN103246606B (zh) | Esb平台的性能测试方法和系统 | |
CN110046091B (zh) | 一种自动测试方法和装置 | |
CN108664385A (zh) | 一种应用程序编程接口的测试方法及装置 | |
CN107783902A (zh) | 一种免于编码的Selenium自动化测试方法及系统 | |
CN101241491A (zh) | 一种检查数据的方法和系统 | |
CN104598619A (zh) | 一种基于约束求解器的服务组合验证方法 | |
CN110209584A (zh) | 一种测试数据自动生成方法和相关装置 | |
CN110413465A (zh) | 一种基于信息交互总线的信息一致性测试方法、系统和验证服务器 | |
EP2511841A2 (en) | System and method for generation of cim-based power system circuit models | |
CN105630667A (zh) | 一种测试方法和终端设备 | |
Yu | Design and application on agile software exploratory testing model | |
CN103955425A (zh) | 网页web探索测试装置及方法 | |
US20140324918A1 (en) | Database Generation System, Method For Generating A Database, Product Line Management System And Non-Transitory Data Carrier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |