-->全文字数: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服务的步骤和说明:

  1. 首先,创建一个具有业务方法定义的JAVA接口。为了将此接口与Web服务相关联,请使用我在项目中演示过的注释“ @WebService”和“ SOAPBinding(style = Style.DOCUMENT)”。

  2. 其次,创建一个实现上述接口及其业务方法的类。同样,为了将其与Web服务相关联,请使用注释“ @WebService与接口位置”和“ SOAPBinding(style = Style.DOCUMENT)”,如项目中所示。

  3. 第三,发布此Web服务以公开业务逻辑。

  4. 一旦发布,就可以在此链接上获得WSDL。HTTP://本地主机:8074 /网络WSDL

  5. 现在创建一个客户端类,通过该客户端类可以获取此服务业务方法以执行业务逻辑。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的更多相关文章

  1. 利用python httplib模块 发送Post请求测试web服务是否正常起来!

    最近在学习python,恰好老大最近让我搞个基于post请求测试web服务是否正常启用的小监控,上网查了下资料,发现强大的Python恰好能够用上,所以自己现学现卖,顺便锻炼下自己. 由于本人也刚接触 ...

  2. 如何测试Web服务.2

    -->全文字数:2700,需要占用你几分钟的阅读时间 ,您也可以收藏后,时间充足时再阅读- -->上一节讲了<Web服务基础介绍>,本节介绍可用于测试web服务的开源测试工具. ...

  3. 如何测试Web服务.1

    一.什么是web服务  web服务在简单术语中可被定义为通过安装了特定设备或服务器到另一装置或客户端应用程序通过WWW彼此通信后的应用程序(万维网)提供的服务. Web服务通常在计算机网络的应用层上使 ...

  4. C#测试web服务是否可用

    winform客户端经常需要调用webservice或者WCF进行数据交互,但是远程服务有可能不存在或者服务器不可用,客户端只能通过超时或者捕获到异常感知服务不可用.其实有一个COM借口可用快速的检测 ...

  5. 测试Web服务接口

    1. http://www.iteye.com/topic/142034 2. http://www.iteye.com/topic/1123835 3.http://yongguang423.ite ...

  6. 12个强大的Web服务测试工具

    在过去的几年中,web服务或API的普及和使用有所增加. web服务或API是程序或软件组件的集合,可以帮助应用程序进行交互或通过形成其他应用程序或服务器之间的连接执行一些进程/事务处理.基本上有两种 ...

  7. WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)

    转:http://msdn.microsoft.com/zh-cn/library/gg318615.aspx 摘要:通过此系列文章(共四部分)了解如何在 Microsoft SharePoint F ...

  8. 混合使用Azure LB和ILB访问相同web服务(1)

    在经典的使用场景中,我们一般使用AzureLoadBalancer来面向公网提供负载均衡服务,而使用Azure Internal Load Balancer提供内部那些不愿意将服务暴露给公网的服务,比 ...

  9. 在 SQL Server 的存储过程中调用 Web 服务

    介绍 一个老朋友计划开发一个应用,基于 .NET 和 Socket,但需要在存储过程中调用 Web 服务. 在这篇文章中我们将分享这个应用的经验,讲述如何在存储过程中调用 Web 服务,并传递参数. ...

随机推荐

  1. 设计模式主目录 C++实现

    行为性模式 1.观察者模式 结构型模式    ----  组合的艺术 1.外观模式

  2. BeanPostProcessor

    BeanPostProcessor简介 BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口.接口声明如下: public interface BeanPostProc ...

  3. 【Gamma】Scrum Meeting 8

    前言 会议定点:大运村公寓 会议时间:2019/6/7 会议目的:分配任务,准备宣传 一.任务进度 组员 上周任务进度 下阶段任务 大娃 辅助做好引导录屏 优化辅助模型 二娃 撰写会议博客 撰写会议博 ...

  4. 【Gamma阶段】第六次Scrum Meeting

    冰多多团队-Gamma阶段第六次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 编辑器风格切换(添加夜间模式) UI界面手势切换 牛雅哲 语音输入shell应用:基于pytorch ...

  5. 第8课 常量表达式(constexpr)

    一. const 和constexpr的区别 (一)修饰变量时,const为“运行期常量”,即运行期数据是只读的.而constexpr为“编译期”常量,这是const无法保证的.两者都是对象和函数接口 ...

  6. vim常用命令整理

    #创建文件 vim test.txt vi test.txt touch test.txt #在vim中要想退出,先按[esc],再输入如下命令 [:wq]保存并退出 [:q]退出,未修改 [:q!] ...

  7. 【C语言】获得数组长度

    c语言中,定义数组后可以用sizeof命令获取数组的长度(可容纳元素个数): 如: { int data[5]; int length; length=sizeof(data)/sizeof(data ...

  8. day57——视图、模板渲染

    day57 视图 网页:https://www.cnblogs.com/clschao/articles/10409764.html django官方文档:https://docs.djangopro ...

  9. C库函数strstr分析

    C标准库<string.h> 函数声明: char* strstr(char* const _String, char const* const _SubString) 返回值: SubS ...

  10. windows下隐藏磁盘分区(转)

    在一定情况下有的人会想隐藏掉部分分区,比如双系统的情况 有两种方式 方法1: 删除盘符,适合在双系统的情况下隐藏掉另外一个系统相关的分区 请注意是删除盘符 不是删除分区 此电脑右键管理 点击磁盘管理 ...