如何测试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 服务,并传递参数. ...
随机推荐
- 大数据-使用Hive导入10G数据
前言 Hadoop和Hive的环境已经搭建起来了,开始导入数据进行测试.我的数据1G大概对应500W行,MySQL的查询500W行大概3.29秒,用hive同样的查询大概30秒.如果我们把数据增加到1 ...
- 在 Debian 上的 SQL Server 的安裝指引
我想在 linux 环境下尝试一下 Microsoft SQL Server,但是微软只发布了针对 Red Hat,SUSE,Ubuntu 和 Docker 引擎的.我平时习惯使用 Debian, U ...
- css特效之旋转音乐播放器
本次需要用到的知识点有: transform setInerval 怎么添加背景音乐我会在下一篇介绍 https://www.cnblogs.com/zouwangblog/p/11138734.ht ...
- Ubuntu 修改apt-get源为阿里源
原文件重命名备份 sudo mv /etc/apt/sources.list /etc/apt/source.list.bak 编辑源列表文件 sudo vim /etc/apt/sources.li ...
- Qt应用开发常见问题
Qt判断当前操作系统? 可使用宏判断,例如: #ifdef Q_OS_MAC //mac ... #endif #ifdef Q_OS_LINUX //linux ... #endif #ifdef ...
- Maven 教程(21)— maven-compiler-plugin 插件详解--
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/80236077 maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样 ...
- 深入理解JVM-类加载初始化阶段-类的主动与被动引用
JVM的类加载阶段中初始化阶段 P210 虚拟机规定的五种情况必须对类的“初始化”情况 1.遇到new.getstatic.putstatic.或invokestic 四条字节码指令时,如果类没有经过 ...
- git clean解决 GIT error: The following untracked working tree files would be overwritten
git clean用法:https://www.cnblogs.com/lsgxeva/p/8540476.html :
- 【数据结构与算法】线性表操作(C语言)
#include <stdio.h> #include <stdlib.h> #define OK 1 #define NO 0 #define MAXSIZE 20 type ...
- Scala Type Parameters 2
类型关系 Scala 支持在泛型类上使用型变注释,用来表示复杂类型.组合类型的子类型关系间的相关性 协变 +T,变化方向相同,通常用在生产 假设 A extends T, 对于 Clazz[+T],则 ...