利用SOAPtest进行Web service测试[1] 软件测试
Web services测试对于开发和测试团队来说提出了一系列崭新的问题。JUnits可以创建用来测试Web service的一部分功能,但是确保充分验证所需的总体功能性,它却不能提供,同时它也会使更新数据值变得困难。还有许多需要被测试的Web service组件仍未找到合适的、更加通用的测试工具。由于Web service测试是一个在开发过程中很早就涉及到外部合作伙伴的领域,所以格外危险,可能很快就会变成一场恶梦。
SOAPtest提供了一套完整的针对Web service的测试工具,使开发团队和(或)测试团队能够利用一个一致的工具,对从Web Service定义语言(WSDL)确认到无需自己构建和更新测试客户端的性能测试,来证明Web services是否合适。
SOAPtest的一个主要特征是该工具支持大量数据源。生成测试数据可能是耗时的,并易于出错,但是SOAPtest工具有效地减轻了所有这些问题。SOAPtest支持来自任何可通过ODBC/JDBC连接的数据库的测试数据,例如.csv文件、内部表、Excel电子表格,或者任何上述类型文件的集合都支持。增加一个数据源是非常简单的,您只需要选择数据源的类型和位置。我使用的是指南中提供的Excel电子表格。
首先,我运行一系列WSDL确认。WSDL通过描述服务和标识位置来控制对Web service的访问。屏幕界面相当直观,我能很快就验证一组WSDL文件。
您也可以检查任何URL链接在WSDL中是否依然有效。最有趣的是该工具能够执行Web Services互操作性组织确认。该工具能够生成一份印象深刻的报告,报告可由开发和测试团队进行分析,并酌情分发给您的合作伙伴。
该工具还支持WSDL比较和回归测试,使开发团队能够在其他测试之前轻松地获得并确认WSDL变化。
一旦WSDL得到确认并生效,下一个关键步骤就是确保Web service操作在单元测试层次上的有用性。这是通过创建一组单元测试来完成的,按照逻辑划分每组单元测试都属于一组测试套件。SOAPtest支持正面测试(测试期望的场景)、反面测试(错误条件下的测试)和回归测试(执行改变确认)。利用该工具,测试数据可以全部或部分来自各种数据源,或者由工具快速生成。在数据生成方面,该工具具有大量的功能,并有能力根据用户定义的一系列规则来生成数据。但有一个缺点就是当我试图仅仅保存某个独立测试本身时,却不知道如何完成。
当开发人员完成了单元测试,SOAPtest工具才能够提供创建实际场景测试的功能。在测试过程中,场景测试表现了业务场景的再现。场景测试可以从头创建,也可以通过一系列已经生成的单元测试与测试团队定义的附加测试相融合的联合体得到。
SOAPtest提供了数据确认能力的范围。数据可以由元素确认,或者仅由那些您想比较的元素来确认。
Web services的另一个关键方面是其异步特性。那些期望使用其他应用程序的传统异步响应的测试工具在处理Web services的这个典型方面时遇到了困难。SOAPtest提供了对那些使用Parlay、SCP和WS-Addressing通信协议的异步调用进行测试的功能。这很关键,因为大多数这些服务的性质不能直接得到确认或者响应。SOAPtest包含一台Tomcat服务器,当部署了结果回调异步模式时,Tomcat服务器使SOAPtest能够测试期望的“回调”响应。当使用了回调测试时,一个建议的更新是让Tomcat服务器自动启动。一组异步测试的结果如图1所示: