QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

模仿 Web Services

  • 2008-05-20
  • 本文字数:1368 字

    阅读完需:约 4 分钟

InfoQ 以前的一篇新闻已经涵盖了Web service 的一些测试方法。最近,这些方法通过Web Service 模仿(Web Services mocking)的使用得到了扩展。

对象模仿是一种非常流行和通用的单元测试方式。根据 Wikipedia 所说

模仿对象行为是指仿真对象以一种受控的方式效仿真实对象的行为……模仿对象可以模拟复杂、真实对象的行为,因此当真实对象难以甚至不可能包含到单元测试中时,模仿就非常有用。如果一个对象有任何如下特征,那么在它的位置使用模仿对象可能会很有用: - 非确定性结果(例如,当前的时间或者当前的温度);

  • 具有难以创建或者重现的状态(例如,一个网络故障);
  • 很慢(例如,一个完整的数据库,测试之前必须初始化它);
  • 尚不存在或者行为可能会被改变;
  • 包含一些测试专用的信息和方法(这些信息和方法对它的真正任务没有用)

Web Service 引入了一些额外的场景,非常适于使用模仿方式:

  • 必须书写依赖某个或者某些远程 Web service 的程序,但是这些服务正运行在生产服务器上,在测试服务器上还没有准备好;亦或第三方服务运行在客户防火墙之后,无法测试;
  • 离线开发(例如在家里或者在路上)可能会需要一组完整的、能够工作的离线 Web Service 才可能测试一个实现;
  • 在远程 Web Service 可能无法访问或者无法始终保持运行的情况下进行离线演示。确保演示在以上各种情况下都能顺利进行是很有必要的。

Upul Godage 写的一个新的教程描述了如何使用Apache Synapse 来为开发和测试模仿web services。Apache Synapse 是一个简单、轻量级、高性能的企业服务总线(ESB)。Apache Synapse 可以用来过滤、转换、路由、操作和检测那些可以通过HTTP、HTTPS、Java™ 消息服务(JMS)、简单邮件传输协议(SMTP)、第3 版邮局协议(POP3)、FTP、文件系统以及很多其它传输媒介传输的SOAP、二进制、XML 以及普通文本格式的消息。

教程描述了如何使用Synapse 来定义那些固定或受控的服务响应,步骤涉及使用简单的XML 配置文件,定义转换,为一个(组)给定请求构建响应。它还描述了使用相同的基于配置的方式模仿仲裁(mediator)的方法。

另一个模仿Web Services 的途径是使用Crosscheck Networks 最新发布的 SOAPSimulator 。它的功能与 Synapse 提供的相似,但还包含如下的额外功能:

  • SOAP 和 XML 模拟过程的图形化。

  • 详尽的 WSDL 和 XSD 模式支持。

  • 从模拟实例动态地检索 WSDL 和模式。

  • 实时仿真事务监测。

  • 根据企业最佳实践进行度量的 WSDL 和 XSD 报告卡片。

  • 可定制的运行时消息掌控分析规则。

  • 多并发服务模拟。

  • 包含运行时变量状态机的复杂业务逻辑模拟。

  • 支持 WS-Security 和 WS-Identity 可扩展性。

  • 支持数据库和 API 插件可扩展性。

Crosscheck Networks 还提供了一个关于产品使用的详细教程

正如其白皮书——《使用服务仿真加速你的 SOA 项目》——中定义的那样:

在满足所提出的业务目标的过程中,构建和部署服务的紧密时间压力给 SOA 项目留下了很小的犯错空间。在 IT 预算面临持续压力,紧张的最后期限,以及在商业伙伴的内部及之间集成系统的驱动下,SOA 项目需要在它们的环境中引入服务模拟。服务模拟解耦了消费者和生产者之间的依赖,使它们能够相互独立地实现。Web Service 模仿解决方案为开发者提供了一个“盒装参考系统”,并消除了那些为了构建一个完整规模的生产系统的副本所需的开销,这能使开发者受益。

查看英文原文 Mocking Web Services

2008-05-20 03:381154
用户头像

发布了 29 篇内容, 共 42943 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

如何开发 LAXCUS 分布式应用软件(四):编写边缘端软件

LAXCUS分布式操作系统

并行计算 端边云协同架构 分布式操作系统 分布式应用软件

4月月更开奖啦!中奖者速来领取!

InfoQ写作社区官方

热门活动

“软件定义汽车”的数字化之变,华为云低代码平台带来了什么?

脑极体

关于数据一致性的理论

穿过生命散发芬芳

数据一致性 5月月更

备受关注的Bit.Store,最新动态一览

小哈区块

如何清除 WordPress 中的缓存

海拥(haiyong.site)

WordPress 5月月更

我国类脑计算处于什么水平?人工智能下神经科学启发的类脑计算。

GPU算力

人工智能 液冷服务器 类脑计算 神经科学

维护版式文档技术生态 国际PDF协会向福昕软件发来感谢信

联营汇聚

备受关注的Bit.Store,最新动态一览

西柚子

String源码解析-String的使用注意2

zarmnosaj

5月月更

实现同比、环比计算的N种姿势

葡萄城技术团队

数据分析 BI数据分析 同比 环比

玩了一场剧本杀,同车队友“不是人”

脑极体

深入剖析 split locks,i++ 可能导致的灾难

火山引擎开发者社区

时序数据库在监控运维平台中的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

动辄“耗资过亿”的表格工具,究竟难在哪儿?

葡萄城技术团队

Cilium 多集群 ClusterMesh 介绍

Se7en

直播预告 | PolarDB-X 动手实践系列——PolarDB-X Replica原理和使用

阿里云数据库开源

数据库 阿里云 开源 PolarDB-X

在字节跳动,一个更好的企业级SparkSQL Server这么做

字节跳动数据平台

基于 Agora SDK 实现 Windows 端的一对一视频通话(基于3.6.2版本)

声网

人工智能 音视频 sdk

linux之iftop命令

入门小站

Linux

在线HTTP请求头响应头转JSON工具

入门小站

工具

2021年国内促进软件产业发展十大事件出炉,HarmonyOS 2入选

科技汇

“四大高手”为你的 Vue 应用程序保驾护航

葡萄城技术团队

云图说|华为云帮助中心最佳实践:源自项目实战的上云指导

华为云开发者联盟

最佳实践 华为云 云图说 帮助中心 业务上云

【刷题第五天】1. 两数之和

白日梦

5月月更

快速上手 Pythond 采集器的最佳实践

观测云

运维 可观测性 可观测

架起医院就诊“快车道”,YRCloudFile 打造智慧 PACS 存储系统

焱融科技

云计算 分布式 高性能 文件存储 智慧医疗

Hadoop Echarts

Emperor_LawD

hadoop 5月月更

谁说 Zadig 只能复制环境?数百微服务一套环境实现高效协作

Zadig

DevOps 云原生 CI/CD 软件交付

钉钉 Flutter 跨四端方案设计与技术实践 | Dutter

阿里巴巴终端技术

flutter 移动端 跨端框架 桌面端

数据产品经理的价值管理

第519区

团队管理 项目管理 产品经理 数据产品经理 项目经理

模仿Web Services_SOA_Boris Lublinsky_InfoQ精选文章