文档章节

2016年2月17日:可测试化的文档

编走编想
 编走编想
发布于 2016/02/18 13:30
字数 585
阅读 48
收藏 1

有轻微雾霾

分布式服务中,对接其它服务的接口是家常便饭。对接之前需要了解对方的接口如何使用。常见的了解方式就是看文档,但文档是用来查看的,并不是被用来直接使用的。所以需要对照着文档写代码,按照文档对接口的描述实现服务接口的对接工作。

但传统文档并不能很好地描述服务接口。更重要的是,对接接口的开发任务完成之后的测试工作不易进行。如果能有一种方式既可以完整地描述服务接口,又可以提供模拟测试环境,那便是两全其美了。

在模拟测试方面,早期我们有 SoapUI,这款 Web Service 测试工具可以根据 WSDL 文件的定义提供 Mock Service。在国内开源方面,ThoughtWorks 的郑晔开发了 Moco,很方便地定义 Mock Web 服务。国外的一些公司也有类似的工具,开源出来的有 Frock。其基于 NodeJS 开发,可以定义插件,提供更复杂的服务模拟功能。

上面这些工具,虽然易用性有高有低,但都可在被用作测试工具的同时,提供接口文档定义的功能。开发人员很容易根据其配置文件等内容,理解其模拟的真实服务,在收到什么样的的请求时能够返回怎样的结果。

但测试工具终究不是为文档而设计的。在文档工具方面,国内的有阿里的 RAP,国外能 Swagger 和 RAML 等。这些工具的共同特点是在为 Web 服务这样的接口提供标准化的文档描述同时,还提供了测试的功能。虽然这些工具不能完全用来提供模拟测试功能,但是可测试化的文档服务与静态文档相比也是极大的进步。

即便没有上述的这些工具,随着嵌入式的 Web 容器框架的出现(比如 Tomcat、Jetty、Undertow)等,以及各种轻量级的 Web 开发工具的出现。自己动手开发一个服务模拟功能也不是难事。

© 著作权归作者所有

共有 人打赏支持
编走编想
粉丝 149
博文 127
码字总数 109248
作品 0
海淀
程序员
私信 提问
坚持开源,GoodERP的发展之路

2016年2月22日,项目在开阖内部秘密启动,https://github.com/osbzr/gooderp,开发完成了配置、销售、采购、仓库、资金四大块功能。使用OpenObject新API。 2016年3月30日,由于项目成员误传几...

GoodERP
2017/05/26
370
1
RESTful API 框架--Flask-Restaction

Flask-Restaction,为RESTful API而生的Web框架: 创建RESTful API 校验用户输入以及将输出转化成合适的响应格式 身份验证和权限控制 自动生成Javascript SDK和API文档 注意:仅支持Python3...

guyskk
2015/10/12
1K
0
JFinalbbs v2.1 版本更新

2016年2月17日 V2.1更新内容 增加私信 增加标签 pc,手机合并(页面自适应,手机查看的,可以点击体验) 界面美化,使用了bootstrap-material-design 编辑器升级2.0 其他页面布局优化 系统配置...

朋也
2016/02/17
1K
8
LibreOffice 5.3 办公套件进入开发,明年 2 月发布

开源免费办公软件开发商LibreOffice今天表示,LibreOffice办公套件5.3版即将进入开发阶段,计划在未来2个星期内进入除虫阶段。LibreOffice将在10月17日当周发布LibreOffice 5.3的第一个Alpha...

局长
2016/10/09
1K
9
技术积累笔记概要

2015年11月24日 1、rest 速率限制,写属于自己的方法。 2、actions方法深刻了解。 3、YII技术博客:http://blog.csdn.net/terrywater/article/category/2565815。 4、静态方法传递参数的习惯...

风清扬-深圳
2015/11/24
78
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringMVC工作原理

SpringMVC的工作原理图: SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理...

呵呵哒灬
7分钟前
0
0
数据库技术-Mysql主从复制与数据备份

数据库技术-Mysql 主从复制的原理: MySQL中数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”...

须臾之余
昨天
12
0
Git远程仓库——GitHub的使用(一)

Git远程仓库——GitHub的使用(一) 一 、 Git远程仓库 由于你的本地仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要一下设置: 步骤一、 创建SSH key 在用户主目录下,看看有没有.ss...

lwenhao
昨天
4
0
SpringBoot 整合

springBoot 整合模板引擎 SpringBoot 整合Mybatis SpringBoot 整合redis SpringBoot 整合定时任务 SpringBoot 整合拦截器...

细节探索者
昨天
1
0
第二个JAVA应用

第二个JAVA应用 方法一:配置文件: # cd /usr/local/tomcat/conf/# vim server.xml</Host> <Host name="www.wangzb.cc" appBase="/data/wwwroot/www.wangzb.cc" //引用所......

wzb88
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部