如何测试Web服务.3
-->全文字数:2254,需要占用你几分钟的阅读时间 ,您也可以收藏后,时间充足时再阅读-
->第一节讲了《Web服务基础介绍》,第二节讲了《Web服务测试工具》
->本节介绍Web服务样本项目和测试。
一.Web服务样本项目:(SOAP协议)
SOAP是基于XML的协议:
SOAP的完整形式是简单对象访问协议。
为了在跨平台的两个应用程序之间进行通信,SOAP是W3C的建议。
SOAP是与平台和编程语言无关的协议。
软件要求:以下是在JAVA中构建Web服务项目的基本要求:
Jre1.8.0_25作为JAVA运行时环境。
Eclipse IDE作为开发工具。
一个标准的HTTP浏览器,例如Chrome等。这将有助于查看WSDL。
二. 使用文档样式的SOAP Web Service项目
可以从菜单【素材资料】-【源码素材】处获取SOAP Web Service的项目文件,格式为“ webservice-project-doc-style” 。以下是运行SOAP Web服务的步骤和说明:
首先,创建一个具有业务方法定义的JAVA接口。为了将此接口与Web服务相关联,请使用我在项目中演示过的注释“ @WebService”和“ SOAPBinding(style = Style.DOCUMENT)”。
其次,创建一个实现上述接口及其业务方法的类。同样,为了将其与Web服务相关联,请使用注释“ @WebService与接口位置”和“ SOAPBinding(style = Style.DOCUMENT)”,如项目中所示。
第三,发布此Web服务以公开业务逻辑。
一旦发布,就可以在此链接上获得WSDL。HTTP://本地主机:8074 /网络WSDL
现在创建一个客户端类,通过该客户端类可以获取此服务业务方法以执行业务逻辑。Web Service客户端类使用上述WSDL URL访问WSDL,然后获取目标名称空间的合格名称和Web Service名称。使用这两种服务方法都可以访问端口,这是将Web服务作为客户端调用的过程。
以上所有步骤均在Web Service项目中以DOCUMENT样式进行了演示。
三. 使用RPC样式的SOAP Web服务项目
SOAP Web Service的附件项目文件为“ webservice-project-rpc-style”,可以从菜单【素材资料】-【源码素材】处获取。以下是运行SOAP Web服务的步骤和说明:
首先,创建一个具有业务方法定义的JAVA接口。为了将此接口与Web服务关联,请使用注释“ @WebService”和“ SOAPBinding(style = Style.RPC)”。
其次,创建一个实现上述接口及其业务方法的类。同样,为了将其与Web服务关联,请使用批注“ @WebService与端点接口位置”和“ SOAPBinding(style = Style.RPC)”。
第三,发布此Web服务以公开业务逻辑。
一旦发布,就可以在此链接上获得WSDL。HTTP://本地主机:8075 /网络WSDL
现在创建一个客户端类,通过该客户端类可以获取此服务业务方法以执行业务逻辑。Web Service客户端类使用上述WSDL URL访问WSDL,然后获取目标名称空间的合格名称和Web Service名称。使用这两种服务方法都可以访问端口,这是将Web服务作为客户端调用的过程。
在RPC样式的Web服务项目中,演示了所有上述步骤。
RPC样式WSDL:

文档样式WSDL:

四. 文档和RPC样式区别

五. SOAP Web服务的优缺点
优点:
SOAP具有自己的内置安全性,称为WS安全性,因此受到高度保护。
如上所述,可以使用任何编程语言(如.Net,JAVA等)构建SOAP Web服务,并可以跨平台执行。
缺点:
由于SOAP Web服务是基于XML的格式,因此需要读取和解析XML文档。最重要的是,构建这样的Web服务时必须遵循许多定义的标准。这会减慢SOAP Web服务的运行速度,并占用更多带宽和资源。
WSDL是定位SOAP Web服务的唯一机制。因此它不是很灵活。
六. 有关Web服务测试的信息
以上,我们了解了如何使用样式RPC和DOCUMENT样式构建SOAP Web服务;接下来我们将讨论有关Web服务测试的信息。
Web服务测试:在前两章节中,我们讨论了用于测试Web服务和Web API的SoapUI工具以及Web服务测试中实际涉及的测试步骤。在这里,我们将在上面的示例Web服务项目的帮助下详细讨论这些步骤:
WSDL文件定义理解:使用Web服务创建WDSL之后,将编写测试用例以测试WSDL中存在的必需标准,例如它是哪种样式?是否涵盖所有必需的输入参数?这些输入参数的数据类型是什么?等等
Web Service提供的操作:测试用例涵盖了为其开发的Web Service中存在的必需操作。它是否以正确的方式涵盖了所需的业务逻辑?
作为SOAP请求消息发送的XML请求消息格式:测试用例,涵盖输入数据,数据类型,边界条件验证,堆栈溢出验证,功能测试用例等。
以SOAP响应消息的形式接收到的XML响应消息格式:测试用例涵盖了输出数据及其类型,输出数据验证,堆栈溢出验证,安全性测试,功能测试用例等。
一个简单的本地工具或测试程序,可以发送XML消息请求并以XML消息响应的形式接收请求:这是指为了测试WebService,我们需要开发一个客户端程序,通过该程序我们可以将输入数据作为请求发送并测试接收到的作为响应的输出数据。
这些是测试任何Web服务的基本测试方面,无论它以哪种样式编写。后面,我们将讨论如何使用SoapUI工具测试WebService。另外,我们还将首先学习安装和配置SoapUI工具
如何测试Web服务.3的更多相关文章
- 利用python httplib模块 发送Post请求测试web服务是否正常起来!
最近在学习python,恰好老大最近让我搞个基于post请求测试web服务是否正常启用的小监控,上网查了下资料,发现强大的Python恰好能够用上,所以自己现学现卖,顺便锻炼下自己. 由于本人也刚接触 ...
- 如何测试Web服务.2
-->全文字数:2700,需要占用你几分钟的阅读时间 ,您也可以收藏后,时间充足时再阅读- -->上一节讲了<Web服务基础介绍>,本节介绍可用于测试web服务的开源测试工具. ...
- 如何测试Web服务.1
一.什么是web服务 web服务在简单术语中可被定义为通过安装了特定设备或服务器到另一装置或客户端应用程序通过WWW彼此通信后的应用程序(万维网)提供的服务. Web服务通常在计算机网络的应用层上使 ...
- C#测试web服务是否可用
winform客户端经常需要调用webservice或者WCF进行数据交互,但是远程服务有可能不存在或者服务器不可用,客户端只能通过超时或者捕获到异常感知服务不可用.其实有一个COM借口可用快速的检测 ...
- 测试Web服务接口
1. http://www.iteye.com/topic/142034 2. http://www.iteye.com/topic/1123835 3.http://yongguang423.ite ...
- 12个强大的Web服务测试工具
在过去的几年中,web服务或API的普及和使用有所增加. web服务或API是程序或软件组件的集合,可以帮助应用程序进行交互或通过形成其他应用程序或服务器之间的连接执行一些进程/事务处理.基本上有两种 ...
- WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)
转:http://msdn.microsoft.com/zh-cn/library/gg318615.aspx 摘要:通过此系列文章(共四部分)了解如何在 Microsoft SharePoint F ...
- 混合使用Azure LB和ILB访问相同web服务(1)
在经典的使用场景中,我们一般使用AzureLoadBalancer来面向公网提供负载均衡服务,而使用Azure Internal Load Balancer提供内部那些不愿意将服务暴露给公网的服务,比 ...
- 在 SQL Server 的存储过程中调用 Web 服务
介绍 一个老朋友计划开发一个应用,基于 .NET 和 Socket,但需要在存储过程中调用 Web 服务. 在这篇文章中我们将分享这个应用的经验,讲述如何在存储过程中调用 Web 服务,并传递参数. ...
随机推荐
- quick: iskindof使用注意
quick: iskindof使用注意 --[[-- 如果对象是指定类或其子类的实例,返回 true,否则返回 false ~~~ lua local Animal = class("Ani ...
- 对C++11中的`移动语义`与`右值引用`的介绍与讨论
本文主要介绍了C++11中的移动语义与右值引用, 并且对其中的一些坑做了深入的讨论. 在正式介绍这部分内容之前, 我们先介绍一下rule of three/five原则, 与copy-and-swap ...
- 《Linux就该这么学》自学笔记_ch22_使用openstack部署云计算服务环境
<Linux就该这么学>自学笔记_ch22_使用openstackb部署云计算服务环境 文章主要内容: 了解云计算 Openstack项目 服务模块组件详解 安装Openstack软件 使 ...
- Visual Studio 调试 —— 附加到进程
第一步:通过管理员方式打开想要附加到进程的项目. 第二步:在 “附加到进程” 对话框中的 “可用进程” 列表中,找到要附加到的程序.我的以 MyProgressTest 为例.选择调试 / 附加到进程 ...
- WPF 营销管理平台
利用空闲时间计划开发一款开源的营销商城平台,项目写的不够规范,有需要可以看看 项目介绍: 前端使用 WPF,采用MVVM模式 后端数据库采用的sqlite 依靠本地化运行 后期可能会采用WebA ...
- unity内存管理(转)
转自:https://www.cnblogs.com/zsb517/p/5724908.html Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBun ...
- C/C++ 指针常量和常量指针
为了区分是指向常量的指针还是const指针(表示指针本身是常量) 一个简便方法:从由往左读,遇到p就替换为“p is a”,遇到*就替换为“point to”,其余不变. const int * p ...
- 『金字塔 区间dp』
金字塔 Description 虽然探索金字塔是极其老套的剧情,但是这一队 探险家还是到了某金字塔脚下.经过多年的研究,科 学家对这座金字塔的内部结构已经有所了解.首先, 金字塔由若干房间组成,房间之 ...
- (8)ASP.NET Core 中的MVC路由一
1.前言 ASP.NET Core MVC使用路由中间件来匹配传入请求的URL并将它们映射到操作(Action方法).路由在启动代码(Startup.Configure方法)或属性(Controlle ...
- Python变量问题:命名、类型、赋值
1.变量问题 1.1变量命名: (1)变量名只能包含字母.数字和下划线.变量名可以字母或下划线开头,但不能以数字开头.例如,name1_,_name1都是合法的,但1name就不行(2)变量名中间不能 ...