Web服务和RIA测试

日期: 2008-06-29 作者:William Brogden翻译:杨君 来源:TechTarget中国 英文

考虑到许多组件进入完整的Web服务,完整测试如此困难不足为奇,只要想一下有多少不同的技术参与到甚至一个简单的客户和服务器中。例如一个Ajax格式的丰富网络应用将JavaScript, CSS以及单独在客户方的HTML markup结合在了一起。和服务方应用程序密码、工作数据库一道加入到网络连接中,便会遇到许多潜在的矛盾、故障以及性能问题。   一般测试原则   让我们回顾一下测试和调试的一般原则,不管你使用何种工具包和语言,这些原则都适用。

  ·在设计时不忘测试。抽取输入和输出的最佳原则就是不用添加网络或者HTTP服务器而准许测试。   ·无论在何种情况下都检查单独的部件。有些开发……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

考虑到许多组件进入完整的Web服务,完整测试如此困难不足为奇,只要想一下有多少不同的技术参与到甚至一个简单的客户和服务器中。例如一个Ajax格式的丰富网络应用将JavaScript, CSS以及单独在客户方的HTML markup结合在了一起。和服务方应用程序密码、工作数据库一道加入到网络连接中,便会遇到许多潜在的矛盾、故障以及性能问题。

  一般测试原则

  让我们回顾一下测试和调试的一般原则,不管你使用何种工具包和语言,这些原则都适用。

  ·在设计时不忘测试。抽取输入和输出的最佳原则就是不用添加网络或者HTTP服务器而准许测试。

  ·无论在何种情况下都检查单独的部件。有些开发商偏爱“单位测试”这一基本原理,并在低层强制测试。无论如何,像Java语言这样的特征被用来扑捉并验证功能中的输入。

  ·在这个过程当中,文档需要为接口、类、方法、变量起说明性的名称。单位测试的一个好处就是促进好的文档编制。

  测试浏览器客户——Firefox

  我们从很久前只有用浏览器的“视图源代码”指令才能查看一个网页的时代一路走来。在那个年代,典型的RIA使用HTML markup、由CSS驱动的格式化操作、带有一个Web服务并用JSON (JavaScript Object Notation) 或者XML提供数据的JavaScript。幸运的是开发商支持工具提供者可以跟得上时代的脚步。

  今天我们可以在开放源Mozilla Firefox浏览器中找到最先进的支持工具。Firefox浏览器属于一个严肃Web开发商硬件程序。我刚刚安装了Firefox 3.0并且发现所有用于“Live HTTP Headers”工具都是标准下载的组成部分。该工具可以扑捉并展示确切的请求和所有HTTP要求的响应标题,该标题构成了一个现代网页。观察这些标题可以确保RIA的所有部件都被提出正确的要求,这实在是一个明智之举。

  这里有许多处理JavaScript的Firefox附件。自从JavaScript成为典型RIAs不可或缺的部分后,这些附件的帮助就很大。我安装了“Firebug”附件,并使其更新应用于 Firefox 3.0。接口对HTML,CSS,和JavaScript做出检查和编辑。HTML检查人员也是建立在文档对象模型(DOM)的基础之上的,这样检验复杂的页面。

  当Firebug网络监控启用时,您可以捕获请求和响应标头,查看反应的大小和每个请求所需的时间。此项功能非常重要,它可以帮助你看到自己应用程序的响应速度。您会惊讶地发现,导致一个错误单一的要求阻碍了整个应用程序。

  该Firebug JavaScript检查员可以检查所有JavaScript功能的执行时间。您可以修改JavaScript对象,并在JavaScript中的方法插入断点,以及改变变量的值、插入新的代码或者直接执行JavaScript。JavaScript从您的Web服务中请求数据,通过执行JavaScript,你可以通过广泛的输入进行测试,而不需要创建单独的HTML页面。一般来说,Firebug旨在协助拥有基于AJAX技术应用并且使用XML 和JSON.开发商。

  测试SOAP客户

  类似axis2的工具包在测试SOAP客户时所产生的问题是,我们很难看出客户究竟生成了什么。此外,错误讯息可能会造成困扰,有时你无法知道,这些要求是否都进入了SOAP服务。该问题的解决方案是类似TCPMON的一种工具,该工具介于客户端和网络二者之间,扑捉到整个请求和响应文本。在扑捉到完整的请求和响应文本的同时,你在测试时指导自己的客户到一个本地址,tcpmon将要求中继到真正的Web服务。一旦被扑捉到,要求可以被修改,并且可以被多次发出。

  尽管一开始是为测试SOAP架构所设计的,TCPMON也可以和RESTful服务一同工作。TCPMON的第一个版本是原有Axis项目的一部分。但是现在该工具拥有自己的Apache软件基础项目和网站。目前的版本有一个出色的图形用户界面使其变得更容易使用。

  这里也有提供相同或者扩展功能的开放源和商业实体。其中的一个例子就是广泛使用的soapUI工具在免费或者商业版本中都适用。该soapUI工具可以导入WSDL Web服务说明并且使用这些信息帮助测试,以协助测试。此外, soapUI可以和NetBeans这样普通的IDEs 相整合。

  用记录的要求进行测试

  使用tcpmon或类似的实用程序最有用的就是一旦你拥有了完整的请求和响应文本就可以简化你对其它部件的测试,例如SOAP客户在内存中建立一个作为XML结构的要求,并将其串行化。这一切所花费的时间使在简单网络创建一个现实的Web服务加载测试变得更加困难。在文本文件中有完整的要求,其可以被发送到没有内务操作的服务器中。

  由于被扑捉的请求和响应信息是可编辑的文本,您可以测试应用程序对于严重格式化的信息的响应程度。这使得测试得以实施,如果使用正常的客户端软件,该测试是不可能实现的,例如,创建带有不好签署凭证资料的SOAP消息。

相关推荐

  • SAP收购CallidusCloud 与Salesforce竞争

    一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]

  • 云计算究竟是否威胁到了硬件业?

    虚拟化和云计算是目前存储、服务器和网络行业的关键的方面。许多企业正在提供虚拟化的环境或者鼓励人们采用云计算以便 […]

  • API设计如龙生九子 各不相同

    IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。

  • 从头开始实现领域驱动设计

    领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。