【JSP开源代码栏目提醒】:网学会员,鉴于大家对JSP开源代码十分关注,论文会员在此为大家搜集整理了“Web服务测试工具 - 硕士论文”一文,供大家参考学习!
中山大学 硕士学位
论文Web服务测试工具 级别:硕士 专业:软件工程 指导教师:李师贤 20080605 Wreb服务测试工具 中山大学硕士学位
论文论文题目: 乳b服务测试工具专 业: 软件工程硕(博士)生: 唐昊喜指导教师: 李师贤教授 摘 要 SOA概念的提出也有好些年了。
虽然早期的一些CORBA、RMI等分布式技术没有实现SoA真正意义上的松耦合,但是对SoA的发展还是给予了相当大的推动作用,Web Services正是在此基础上提出来的。
最近几年,Web Services发展相当迅猛,业界已经出现了大量的WebServices。
由于web Services的自身特点,使得web Services测试成为软件测试的一个新挑战。
目前,面向原子web Services测试的研究比较多,而且主要是侧重于功能性的测试,自动化测试的研究还比较少。
本文在简要介绍webServices的特点与相关技术的前提下,总结了他人的有关web Services测试采用的框架与方法,分析web Services测试的难点与解决方案的思路,阐述一个针对基于WSDL的web服务的测试工具。
该测试工具用Java语言实现,在完全解析wSDL数据类型与操作方法的约束的前提下,以边界值测试的方法,自动生成测试用例。
该工具以生成SoAP消息的方式与服务提供方进行通信,基本达到了服务功能性测试的要求。
该工具目前仅支持SOAPl.1协议的符合w3C标准的web Services测试,还不支持标准外的服务的测试。
通过测试的效果来看,实现web Services的自动化或半自动化测试是完全可行的。
关键字:Web服务,测试,功能性。
m Title: The design and impl鲫entation of a web servi ces testing t001 Major: Software Engineering Name: TANG Haoxi Supervi sor: Prof.LI Shixian Abstract SOA has been talked about for several years,and Web Services had beenput forWard based 0n those di stributed techn0109i es such as CoRBA, 麟I that although didn’t reach the goal of SOA intrinsic 100se coupling,hadbeen contributed to SQA development. Web SerVices grows up Very quickly in recent years,and it alreadyexist seVeral serVices in the World. Due to Web Services 0Wn characters, it poses new challenges for software testing. There are many researchesoriented Web SerVices functional testing, but very feW about automatedtesting. And this paper introduces s0皿e technology and soⅢe charactersof the web services,summarizes some struts and methods about Web Servicestesting,and analyses the difficulties and ways of testing Web Services,then illustrates how to design and complete a testing t001 for services. Thi s t001 has been c唧1 eted by Java language, and uses boundarytesting method to generate testing cases at the conditions that the datakind or operati。
ns restrietions of wSDL have been analyzed. Itco姗unicates with the Web SerVices based 0n SoAP message, and had beenalready reached the basic demands of service functional testing.But thist001 has just supported the Web Serv i ces based on SOAPl.1 that accord wi thstandards of W3C.Through the results of testing, it has been proved thefeasibility of testing Web SerVices automatically or semi—automatically.Key words:Web serVices, testing,functional. Ⅳw.eb服务测试工具设计与实现 中山大学硕士学位
论文 原创性声明 本人郑重声明:所呈交的学位
论文,是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学位
论文作者虢声要毫 日期:p孑年6月厂日w曲服务测试工具 中山大学硕士学位
论文 学位
论文使用授权声明 本人完全了解中山大学有关保留、使用学位
论文的规定,即:学校有权保留学位
论文并向国家主管部门或其指定机构送交
论文的电子版和纸质版,有权将学位
论文用于非赢利目的的少量复制并允许
论文进入学校图书馆、院系资料室被查阅,有权将学位
论文的内容编入有关数据库进行检索,可以采用复印、缩印或其他方法保存学位
论文。
保密的学位
论文在解密后使用本规定。
w曲服务测试工具设计与实现 中山大学硕士学位
论文 第1章 概述1.1问题的提出 随着分布式计算技术的日益成熟,企业之间的相互合作与通信逐渐成为可能。
虽然CoRBA、DcoM、跚I等技术的出现极大地缓解了计算机异构环境下的通信痛楚,但是这些技术却缺乏企业之间统一的标准,从而导致企业系统之间的通信依然由于接口、协议、数据类型等等的不一致而变得困难。
SoA作为解决企业之间的标准壁垒的核心理念已经逐步成为企业IT系统实施的一个时尚。
最近,无论是对旧信息系统的改造,还是新信息系统的开发,面向服务体系架构均成为了首先方案。
Web Services作为体现SoA的一个代表,其标准在2001年才被提出,但已经被不少IT企业所接受,最近的几年发展十分迅猛。
虽然在第一代WebServices协议奠定一个良好的基础上,随后新的规范与标准大量涌现,WS一协议族当中有的已经很成熟,但是Web Services的相关技术规范仍然很不成熟,如今可以说Web Services的开发都还处于一个比较混乱的年代。
有的企业开发出的服务非常的粗糙,并没有很好的体现SoA的精髓,但却自称自己的构架是面向SoA的。
就目前发展情况而言,离真正SoA的实现还有很长一段路要走。
虽然SoA正处于发展阶段,而作为SoA的一个代表形式的web Services也仍处于完善阶段,但是现今已存在大量web Services。
Web Services测试的重要性自然不言丽喻,但它与测试传统的web应用的有着根本的区别,它有着自身的一些特点: 1)不同于传统的应用(web开发,胖客户端应用),正在构建和测试的services没有直接的用户界面,所以需要把它组合到一个界面中,使其能够和这些services轻松地进行交互(例如提供数据,构建信息等等)。
2)类似于传统的应用,有些是要求你的services符合的功能性的要求,例如正确执行那些要求和正确实行你的用例场景,但也有一些非功能性质的要求: A.符合标准(w3C,oASIS,Ws—I等等),以便你可以成功地随时重用和访问那些serviceso Wreb服务测试工具 中山大学硕士学位
论文 B.遵循政策,其中包括标准以及设计和运行时的政策,还有的政策是确保ser、,ices内部一致性,使其能够重用和加强信任,以便能够实现services的重用。
3)在SoA中的功能和性能的考虑需要更多的关注和与传统的应用不同的方式,因为一旦你围绕你的SOA中的services构建业务流程,你的services可能会以难以预测的方式被访问和应用,这是因为它们使用的范围不再受具体流程和约束的控制,所以你需要注意负面测试,并确保在突发状况(例如不良数据、数据丢失、错误数据等等)下services功能是可靠的。
4)内部外部都要考虑安全性问题,需要避免一些专门针对涮L的攻击,还有传统安全考虑,比如要阻止对SQL的注入攻击。
5)Web Services可能要涉及到并发线程和对象共享,对并发线程的测试也是十分困难的。
6)由于在运行时间中涉及包括中间件和其他的Web Services的发现与绑定,这种动态行为的测试是一大难题。
所以,要全面地测出web Services存在的问题还是有很大的难度的。
测试难度大的原因很多,主要是由于Web Services的标准还不够成熟,而且要测试的内容也非常多,比如SoAP消息的测试、wSDL文档的测试、发布及绑定能力的测试、模拟web Services的服务端、客户端的测试、同步和异步测试、SoAP中介测试、压力测试、性能测试、安全测试、服务级别协议测试和服务质量测试等危盘号宇。
虽然由于诸多IT企业对SoA的极大关注,当今已经出现不少的
开源或商用的Web Services测试工具,但是测试工具还是存在许多不足,而且大多都只限于功能测试或服务性能测试等,自动化测试更是几乎为零。
由于Web Services只是开放接口,并不开放源码,所以,即便是功能测试还是有大量的技术和方法有待去研究。
1.2国内外研究现状 当今研究web Services测试的人很多,测试的内容也十分丰富,下面先介绍一下测试的内容。
2 w曲服务测试工具 中山大学硕士学位
论文1.2.1乳b Services测试的主要内容 Web Services测试的内容很多,当前比较成熟的web Services测试的主要内容包括:Ⅱ1〔注:对原文的翻译与理解〕 1)黑盒测试也即功能测试,仅仅关注的是输入输出的测试。
2)白盒测试也即结构测试,分析其组织结构,比如基于BPEL的合成服务的 测试。
3)回归测试,指确保新版本的服务是否向下兼容的测试。
4)负载测试,指的是压力、吞吐量等的测试。
5)单元测试,单个原子服务的测试。
6)系统测试,整个服务体系的测试。
未来的或还有待于完善的测试内容主要有: 1)SoAP消息的测试,这不仅仅将SoAP消息作为web Services的接口,我 们还得测试它的格式。
2)用WSDL生成黑盒测试用例。
3)模拟生成客户、服务端的测试。
4)对Web Services的三角结构(具体描述在2.1中的Web Services的工作 机理)每条边的测试。
5)同步、异步的测试,相对于同步测试,异步测试较为困难一些。
6)对SoAP中间件的安全性问题的测试。
7)多个服务组合的测试。
8)对服务水平和质量的测试。
9)Web Services版本更新以及敏捷结构测试等等。
1.2.2 Web Services测试的方法 测试的内容如此之多,那么,我们究竟应该如何对Web Services进行测试以及如何根据测试的内容制订测试的计划昵?我们有必要将Web Services的体系架构进行分解,以方便我们应用适当的工具或者方法对其进行测试。
由于WebServices的各个组成都是松耦合的,无论哪种测试都应该符合同一种模式。
图卜1分析了Web Services的内容和层次结构。
3 w曲服务测试工具 中山大学硕士学位
论文 该图展现了Web Services的各个组成部分以及它们之间的相互关联,我们可以将整个服务的测试生命期里划分成几个阶段,如组合测试、服务测试、工作流测试、系统测试、整合测试以及链接测试等等。
测试团队在理解和组件之间协作机理及测试内容才能更好地设计测试方法与制订测试计划。
一一一一一一 符镌弘靛p譬.1Eu。
_£f}“E戥‖歌戤黔弘FE}“£黔弘k豁E鞋#封 、— 斛豳矧—甲。
脚 ‖。
勘,、 图卜1‰b Services的结构图脚 有了计划,还必须得要有方法。
测试web Services的方法很多,其实只要对String类型的数据加以简单处理,比如people=“Gates”改为“Gates oR””就可能测出设计是否有数据库注入攻击的漏洞。
我们将他人的测试方法作了个简要的总结,可以从大体上对它们进行归类。
1)传统的测试方法 a)边界值方法 经验告诉我们传统的边界值测试方法能够用较少的测试用例测试出软件的bug,D1lrham大学的SaⅡ财H锄11a Makolm Munro采用该测试方法针对WSDL文档的数据类型描述自动生成测试用例【3l。
他们利用WSDL当中的Schema的数据约束,采用算法自动生成较少的测试用例以达到最大限度测试出功能错误的目的。
4 wreb服务测试工具 中山大学硕士学位
论文 b)变异方法 由于涉及商业与技术秘密,一般公司不愿向外界提供服务实现
代码,自盒测试比较困难,测试可采用由DeMillo,Lipton和SayWard在1978年提出的接口变异理论。
变异算法可以说是被提出和应用于web Services功能测试的比较常见的方法,中外有不少学者做过这方面的研究,下面将对此作一些介绍。
在变异理论提出的前期,人们通常将程序变异的测试方法用于单元测试别,Del锄aro等首次把变异测试思想应用到集成测试级别。
陈佳蕊,蔡国永闻等将变异测试理论用于web Services测试,提出了一种基于合约式设计的测试技术,通过对WSDL文档的变化去挖掘出服务的业务逻辑与接口定义等错误。
姜瑛等提出一种基于合约式设计的测试技术曙1,并在此理论基础上提出一种Web Services的测试数据自动生成方法旧,解决其中测试数据只能手工生成的问题。
在基于Web Services的功能说明,即其wSDL文档中的方法描述及合约,采用随机法于web Services测试数据的选择,与贪心算法相结合,对初始测试数据进行两次选择,最终产生一组达到一定合约变异充分度的测试数据,并通过对实际的Web Services进行多组实验,对测试数据在选择前后的语句覆盖率和分支覆盖率以及这两种覆盖率与合约变异。
充分度进行比较,验证本文方法的有效性。
并且在Microsoft.NET平台上用C#语言开发了一个测试数据生成工具(web ServicesTest Data Generat i on Tool,WSTDGT)。
Jeff offutt和Wuzhi Xu提出了“数据摄动”(data perturbation)口1的测试方法,该方法包括数据数值摄动和相互作用的摄动(包括RPC通信和数据通信),通过变换数据和通信的内容或方式,并通过实验验证测试的良好效果。
Reda SiliIli’N弱11at M锄S01lrl8】也将接口变异理论用到了W曲Services的测试。
吴蕾,李心科等∞1采用错误注入技术,主要对SoAP消息进行有意义的修改以达到测试分布式网络环境中数据传输中的问题。
其具体模型如图卜2所示。
5 W曲服务测试工具 中山大学硕士学位
论文 图1—2测试模型 2)非传统的测试方法 a)扩展WSDL w.T.Tsai,Ray Paul等n帕针对wSDL对服务约束描述的不足,如:输入输出的信息的相互依赖、服务访问接口的调用顺序、功能层次结构以及并发顺序的约束四个方面对wSDL提出了了改进的方法与方案。
b)模拟测试 针对web Services的特点,尤其是基于工作流编制的服务,模拟测试很有必要。
模拟测试的具体内容可以参考IoNA的模拟测试,具体在下小节详述。
c)其它方法 Gerardo Canfora和Massimil iano Di Penta‘111针对组合服务测试所包括的问题,如:各个服务节点的性能及功能参数等指标的不同、跨网络访问的数据传输问题、不同时间段服务访问量等等均有很大差异,采用嵌入一个监控程序,来达到快速有效的测试服务,方便自动化测试的顺利进行,如图卜3所示。
L雠e d《:a州fa¨t nat Excemlon甜behavior conBklered cq船e-re脚aI科oacl售¥ R锄re窜蚪ah te科Ing Use硝m_硼。
一ng协mh忆 the serv‘ce behaⅣIor Lack一。
b∞nH吐■e墨 Hgh∞时 LacIc dcontd 图1—3 The role of testing。
of monitor ing and thei r interaction 6 W.eb服务测试工具 中山大学硕士学位
论文 Mohan K Jaudhav,Mansoor Ahmed【l刁在I跏技术论坛中连载过有关Web Services. 自动化测试的文章,他们主要采取对比测试响应结果的瑚L文档与预期的Xj|IL文档 的对比与分析的方法,以达到Web Services测试的自动化的目的。
1.2.3 Web Services测试框架 上面已经了测试的方法,我们还有必要了解一下web Services测试的框架, 本人总结了比较常用的两种。
a)常用测试框架 测试Web Services通常采用的如图卜4的测试框架,它的工作流程分为如下 几步: 1)测试用例生成器先根据以WSDL形式发布的服务自动生成测试用例,然后 将生成的用例储存在测试数据库中。
生成器还可以扩展储存基于BPEL4Ws以及0WL —S等其它的规范语言的测试用例。
2)测试运行控制器负责控制测试程序在分布式环境下的运行,它从测试数 据库中获得用例,将测试用例定位到指定的测试代理,监督测试的运行,并且收 集测试数据。
3)测试代理分布在广域网或局域网内,负责对指定服务的通信,并且产生 测试日志。
4)测试分析器分析测试结果,评估服务质量,生成测试报告。
图1_4讹b Services测试的总体框架‘埘 7 W曲服务测试工具 中山大学硕士学位
论文b)接口模拟测试框架 要体现单元业务过程,就十分必要去模拟它的合作过程,主要原因有三: 1)在单元测试阶段,相关服务可能还在开发阶段,如果等到所有服务开发完成再进行原子服务的测试,意味着后期的维护、测试代价非常高,最终会给整个服务的开发带来负面影响。
2)即使有些相关服务已开发完毕,但是这些企业却不想向外界提供
代码或模块,甚至不愿搭建环境给你去测试。
3)即使上述两条都不是问题,模拟测试却更方便,因为它可以提供更多的不同的交互方式。
而且,接口模拟测试有非常多的好处,具体有以下几点: 1)在服务开发的早期发现错误,从而减少纠正错误的成本。
2)在服务的构建阶段就发现错误,从而减少项目的开发时间。
3)能比较早的发现BUG,方便开发方与客户的沟通与交流,从而从整体上的减少研发工作量。
4)可以在服务开发的前期让用户积极参与进来,这有利于开发人员与用户的沟通,从而更快更早更准确地理解需求,最终增加了用户满意度。
正是因为上述的诸多原因,有不少人提出模拟测试的方案。
如图卜5所示,我们可以先设计测试用例,再将客户应用程序与服务的模拟客户端或者模拟服务端进行通信。
图卜5 10№Interfa∞Si舢lation Testing Fra舱帅rk‘埘 8 Wreb服务测试工具 中山大学硕士学位
论文1.3常见的Web Services测试工具 由于IT界对web services的持续关注和偏爱,以及越来越多的web Services构建工具的出现,有关Web Services测试的
开源及商用工具也越来越多。
其实任何一个实现了抓包功能并能正确解析SoAP消息的工具都可以作为测试工具,但是要进行比较专业的测试,还是要用比较专业的测试工具,下面将介绍其中一些比较常见的web Services测试工具。
1.3.1商用工具1)Green}lat GH Tester 这是一款基于测试基于消息系统的图形化测试工具。
它可以发布和订阅广泛的协议簇,比如JMS,SoAP,以及商用产品SoNIC MQ、TIBCO RV等等。
它可以快速地创建测试集,并且允许用户设计、实现工作流。
2)Mercury №rcury提供了一系列的产品,如Quick Test,Service Test,Load Runner以及Mercury Quality Centre。
这些工具集成在一起可以帮助用户完成WebServices功能测试、自动化回归测试以及性能测试。
这无疑是一款功能强大的测试工具。
3)Parasoft SOAtest 这是~款自动化测试Web Services的产品,方便用户测试服务的方方面面。
SoAtest支持WSDL有效性验证,客户/服务端单元及功能测试,以及性能测试等,展现服务的交互性、安全性、稳定性等等。
4)Advent№t QEngi ne 这是一款完全基于Web的自动化测试工具,支持髓b、web Services的功能和性能测试。
它是完全用Java语言实现的,可以在多平台下使用(windoWs和Linux)。
5) B0rlalld Sill【Perf咖er SoA edi t ion 一款自动化测试工具,支持功能和性能测试,功能强大,支持Apache AXISSoAP协议栈以及Ms.NElI SoAP协议栈。
9 w曲服务测试工具 中山大学硕士学位
论文6)LISA WS—Testing LISA WS—Testing是完全基于功能性测试的测试工具,支持现有的所有协议,方便开发团队以及质量评估团队的共同使用。
1.3.2
开源工具 本人分析了四款声称能验证了web services的正确性的工.
上一篇:
毕业论文
下一篇:
关于大学英语教学