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

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

本文将以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 条评论
登录 后参与评论

相关文章

  • Java自动化测试框架-04 - TestNG之Test Method篇 - 道法自然,法力无边(详细教程)

    测试方法是可以带有参数的。每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数。

    北京-宏哥
  • SpringBoot+Mybatis+Swagger2环境搭建

    SpringBoot相对于传统的SSM框架的优点是提供了默认的样板化配置,简化了Spring应用的初始搭建过程,如果你不想被众多的xml配置文件困扰,可以考虑使...

    Rookie
  • python lxml中etree的简单应用

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    于小勇
  • 字体加密 | 猫眼榜单字体解密(性感咸鱼,在线炒冷饭)

    猫眼的字体加密相信大家都很熟悉,每一个分析字体加密的博主都会写一次字体加密,没写过至少也会做过。

    咸鱼学Python
  • Android Navigation的四大要点你都知道吗?

    在JetPack中有一个组件是Navigation,顾名思义它是一个页面导航组件,相对于其他的第三方导航,不同的是它是专门为Fragment的页面管理所设计的...

    Rouse
  • Weblogic CVE-2019-2725 分析报告

    这个漏洞最先由某厂商报给某银行,某银行再将该信息报给CNVD,后CNVD通告:“国家信息安全漏洞共享平台(CNVD)收录了由中国民生银行股份有限公司报送的Ora...

    绿盟科技安全情报
  • 使用 idea 搭建 SSM 项目

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-On...

    一个优秀的废人
  • Spring之对象解析及注册(一)

    首先看下new XmlBeanFactory(new ClassPathResource("beans.xml"))这行代码

    OPice
  • Spring注解式编程

    相比较XML配置来说,当项目过大的时候难以维护。Spring还有一种支持0配置的注解式编程。

    OPice
  • 为啥mybatis的mapper只有接口没有实现类,但它却能工作?

    说起mybatis,大伙应该都用过,有些人甚至底层源码都看过了。在mybatis中,mapper接口是没有实现类的,取而代之的是一个xml文件。也就是说我们调用...

    java思维导图

扫码关注云+社区

领取腾讯云代金券