写点什么

模仿 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:381440
用户头像

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

关注

评论

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

跬智信息(Kyligence)荣获浦东新区人工智能创新应用大赛一等奖

Kyligence

大数据 人工智能创新应用大赛

技术管理 之 生产之路(Path to Production)

码猿外

技术管理 Tech Lead

CleanMyMac2023版本有哪些功能特色?值不值得下载

茶色酒

CleanMyMac2023

2022-12-09:上升的温度。以下的数据输出2和4,2015-01-02 的温度比前一天高(10 -> 25),2015-01-04 的温度比前一天高(20 -> 30),sql语句如何写? DR

福大大架构师每日一题

数据库 福大大

Zebec获BNB Chain生态大力支持,ZBC通证将陆续登录一线平台

鳄鱼视界

简单的Apache Airflow(CVE-2022-40127)漏洞复现

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

PingCAP 成为中国唯一入选 Forrester Wave 数据库厂商,被评为卓越表现者

PingCAP

TiDB

政企办公「分水岭」已至,融云百幄数智化破局

融云 RongCloud

数智化 办公平台

OpenHarmony开源项目荣膺“2022东北亚优秀开源项目”

极客天地

Spring 6.0 正式发布,一文了解新特性

大白给小白讲故事

spring

【运营宝典】华为分析服务如何助力广告投放策略优化?

HarmonyOS SDK

HMS Core

教你用Python实现羊了个羊

小院里的霍大侠

Python 编程语言 初学者 实战开发

10x 查询性能提升,全新 Unique Key 的设计与实现|1.2 新版本解读

SelectDB

数据库 大数据 新特性 Doris 优化

大数据HDFS凭啥能存下百亿数据?

JAVA旭阳

Java 大数据

Zebec获BNB Chain生态大力支持,ZBC或继续登录一线CEX

股市老人

赛先生的新旅行:昇腾AI带来的科学智能变革

脑极体

Nacos入门指南 - Nacos是什么

微服务

圆桌实录:技术无感化成为 2023 年最值得开发者和企业用户关注的技术趋势丨PingCAP DevCon 2022

PingCAP

数据库·

Force佛萨奇合约系统开发|原力元宇宙2.0

薇電13242772558

智能合约

SDK 接入|游戏语音之“范围语音”接入实践

ZEGO即构

曲面屏墨水屏显示器!墨水屏手机显示器!北京大上科技发布多款新概念产品

硬科技星球

CrossOver2023软件免费版永久无时间限制限制

茶色酒

CrossOver2023

OpenTelemetry系列 (一)| OpenTelemetry的前世今生

骑牛上青山

调用链 cncf OpenTelemetry 微服务调用链

一块钱能做什么?

脑极体

6个实用技巧,让你快速入门数据集成平台,成倍提升工作效率

Apache SeaTunnel

技术分享 数据同步 数据集成 Meetup 开源项目介绍

数据治理:数据质量评价体系!

用友BIP

深入剖析 | 支付宝账务热点架构解决方案

九叔(高翔龙)

支付宝 账务热点 架构解决方案 热点写

详解UDS CAN诊断:ECUReset Service(SID:0X11)

不脱发的程序猿

汽车电子 CAN ISO 14229 CAN诊断 UDS诊断

一文搞懂I2S通信总线

不脱发的程序猿

嵌入式 I2S 总线协议

模仿Web Services_SOA_Boris Lublinsky_InfoQ精选文章