专栏首页测试技术圈门面出租-测试工具中的设计模式实例谈之门面模式

门面出租-测试工具中的设计模式实例谈之门面模式

本文将以TestLinkAPI为案例,介绍门面模式(Facader Pattern)以及在TestLinkAPI中利用此模式提供统一对外服务接口,提高用户使用便利性的案例。

1. 门面模式模式简介

在上海和很多城市,现在都建立了所谓的“一门式”服务中心。

在一篇有关上海市浦东新区一门式服务创新的新闻中,记者写道“新区政府以城市居民核心为载体,整合资源,重组事务,创新服务标准样式。原来,做事部门散布在全区47个不一样的地方,如今,只要进城市居民核心一扇门就行了。84个前台窗户、77个后台支持,区级层面为城市居民和公司的做事情的项目目都在这儿集中。”

从设计模式的角度理解,所谓的”一门式“其实就是门面模式(Facade)

如上图所示,通过"一门式"这个Facade,过去各个市民和企业要去各个政府机构和行政审批服务机构才能完成的事情,只要在一门式就能完成。对于后台的各个系统的调用,则由Facade自身去完成,ClientA等这些用户无需关注。这就是门面模式所带来的好处。

2. 门面模式在TestLinkAPI中的应用

1) TestLink与TestLinkAPI

TestLink 是一个开源的测试管理系统,提供测试需求管理、测试用例管理、测试计划管理、测试执行与结果报表管理等功能。TestLinkAPI是一套与TestLink进行交互的第三方接口,利用了TestLink提供的 XML-RPC over HTTP接口进行了二次开发,提供统一的TestLinkAPI,便于用户进行使用。整个TestLinkAPI的设计,其实就采用了门面模式,而TestLinkAPI这个类,就是一个Facade类。如下图所示,

对于需要和TestLink进行交互的外部系统,可以借助于TestLinkAPI,调用其提供的各项服务方法,完成例如测试项目创建,测试结果导入等等的功能。而如果没有统一的TestLinkAPI的话,则外部调用者需要面对测试项目、测试执行、测试计划等各个服务类,增加系统调用的复杂性。

2) 案例点评

在系统级别的自动化测试中,我们也倾向于提供统一的对外服务的接口供外部用例调用,如将系统服务调用、数据库查询、文件处理、OS操作等在开发完成后,部署到统一对外服务的门面类中 ,简化外部使用者的使用。

另外,XML-RPC已经是一个非常古老的接口形式。在新的TestLink中,增加了Restful的接口。笔者也仿照着TestLinkAPI,写了一个TestLinkRestAPI,感兴趣的读者可以访问https://github.com/patown/testlinkrestapi进一步了解和使用。

本文分享自微信公众号 - V社 北京社(SoftwareTesters)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • QA应该更新的测试工具

    视觉感知测试,对于很多 QA,包括我在 2013 以前对于它的认知都是手动测试领域的一个成员。在这个 Web 系统爆炸的年代,Web UI 界面布局测试,多浏览...

    Criss@陈磊
  • V咖分享会第二十四期-自动化通用架构

    在上周日我们进行了V咖分享会第二十四期的分享,这是分享是这次由大咖陈耿老师给大家分享的“自动化通用架构”,传授他在多年测试职业生涯过程中实践经验的。

    Criss@陈磊
  • 部分mock

    在测试过程中,有个类的部分方法可能需要实际调用,而某些方法则是被mock的,也就是部分mock的场景。在Mockito中,可以使用Spy来实现。首先来看一个最简...

    Criss@陈磊
  • 门面出租-测试工具中的设计模式实例谈之门面模式

    本文将以TestLinkAPI为案例,介绍门面模式(Facader Pattern)以及在TestLinkAPI中利用此模式提供统一对外服务接口,提高用户使用便...

    Antony
  • node网络爬虫实例了解下?

    背景交代,以下写的demo都是参照《python3网络爬虫开发实战》用node实现的,所以demo的具体思路什么的,大家可以去看书上的介绍,感兴趣的,可以去了解...

    py3study
  • python移动文件,将一个文件夹里面的文件移动到另一个文件夹

    青阳
  • 论STA | 跟CRPR/CPPR 相关的一切(下)

    上篇写在一个多月之前,《论STA | 跟CRPR/CPPR 相关的一切(上)》,芝麻榨油,今天把下篇写完,就老驴认知范围,下篇包含:CPPR 跟cross ta...

    老秃胖驴
  • Python中根据时间自动创建文件夹

    青阳
  • 一行命令实现cpu占用率100%

    cat /proc/cpuinfo |grep "physical id" | wc -l 可以获得CPU的个数, 我们将其表示为N.

    用户3148498
  • 漏洞复现 | CVE‐2017‐5645

    Apache Log4j Server 反序列化命令执行漏洞(CVE‐2017‐5645)

    Ms08067安全实验室

扫码关注云+社区

领取腾讯云代金券