使用背景

在测试教程网上看到乙醇写的一系列接口测试的相关文章,链接如下 http://www.testclass.net/interface/mock_server/

在经过了UI自动化的各种挑战后,终于发现了实用于互联网测试方式的分层模型,UI占最后,也是最少的部分。接口测试占比仅次于单元测试,且相对稳定;可以提前测试,维护的成本也不是很高,相对于UI自动化来说。

前端客户端团队和后端服务端团队往往节奏是不一致的。前端很多情况下需要等待后台的api开发完成后才能进行开发联调和测试,这种前后端不对称就造成了前后端团队节奏不一致,从而造成整个项目/产品交付/发布延期。

有一种解决方案的思路是前后端先约定好后端提供的api接口的细节,前端人员自行先模拟出这些后端的实现,当然这些实现是假的,不过前端可以去调用这些假的实现,而且能拿到返回,这样一来前端就不需要等待后端开发完成才开始工作了。

但是这样还是会有问题,前端实现的假的api没办法迅速反映出后端的变化。简单来说就是后端可能在约定好的api接口上进行了些许修改,而没有知会前端人员,这样前端的假的api实现并没有相应更新,在正式联调时就会出现问题。

像这种假的api实现,不管是前端实现的还是后端去实现的,我们可以称之为mock server。

  • mock表示这个api返回的数据是假的,仅作为测试用的
  • server表示需要启动服务,说到底这是一个服务程序

契约测试

由于前后端往往有一些信息不对称,导致约定的api可能在前后端都会发生变化,所以保证前后端的一致性就成了一个挑战。其实也是一个即时沟通的问题。

这时候有人提出了契约测试,大致思想是前后端共用一份契约,约定了api的细节,前后端的任何变化都需要先修改契约,然后通过契约去通知前后端团队,统一更新实现。这也是契约精神的表现。

如果为契约测试设置一种测试工具的话,我会规划下面一些特性

  • 契约的描述工具:也就是契约长什么样子,用什么工具去定义才能让前后端团队秒懂

  • 通过契约自动生成mock server实现,这样前端团队就可以拿来即用了,如果契约修改了,那么前端团队也很容易感知到

  • 通过契约自动生成接口测试用例,这样通过持续运行这些接口测试用例,后端团队就可以第一时间发现契约的修改

契约测试工具的思考(一)相关推荐

  1. 干货时间:聊聊DevOps下的技术系列之契约测试

    摘要:本期和大家简单聊聊在服务交互场景下使用服务契约的重要性,以及契约管理的必要性,最后简单介绍了下契约测试. 1.服务交互带来的问题 在上一篇文章中,我们系统的列举了DevOps各个流程中常用的测试 ...

  2. 测试与自动化测试,记测试工具Go4Api的诞生

    自动化测试 如果搜索自动化测试相关的文章,看到的集中在两类:一是宏观上的关于手工测试和自动化测试的区别.自动化测试的优缺点.测试金字塔应该的结构(比如三角.倒三角.甜筒.梯形.洋葱.地球仪模型等),等 ...

  3. 属性匹配工具_测试工具链——高效构建Mock服务

    现在,WEB系统的开发一般都采用前后端分离的架构,以及部分公司采用"前台-中台-后台"的组织架构,难免会出现开发进度不一致的情况,导致系统联调或测试需要等到所有依赖开发完成后才能够 ...

  4. Spring Cloud Contract 契约测试实践

    本文转载公众号:永辉云创技术 该号由我参与维护,欢迎大家关注支持!!! 分布式研发模型演进 众所周知, 分布式系统是由众多微服务构成,并按照功能模块划分后, 由不同的开发小组进行维护. 研发模型如下图 ...

  5. 消费者驱动的微服务契约测试套件:Spring Cloud Contract

    在微服务架构下,你的服务可能由不同的团队提供和维护,在这种情况下,接口的开发和维护可能会带来一些问题,比如服务端调整架构或接口调整而对消费者不透明,导致接口调用失败. 为解决这些问题,Ian Robi ...

  6. 消费者驱动的契约测试_告诉我们您想要什么,我们将做到:消费者驱动的合同测试消息传递...

    消费者驱动的契约测试 相当早以前,我们从REST(ful) Web API的角度讨论了消费者驱动的合同测试 ,尤其是将其投射到Java( JAX-RS 2.0规范)的角度. 可以公平地说,至少在公共A ...

  7. 消费者驱动的微服务契约测试套件Spring Cloud Contract

    在微服务架构下,你的服务可能由不同的团队提供和维护,在这种情况下,接口的开发和维护可能会带来一些问题,比如服务端调整架构或接口调整而对消费者不透明,导致接口调用失败. 为解决这些问题,Ian Robi ...

  8. oracle 压力测试工具benchmarksql

    TPC-C测试 TPC-C 于 1992 年 7 月 23 日认可为新的基准测试.TPC(Transaction Processing Performance Council,事务处理性能委员会)-C ...

  9. 看本质:微服务为什么需要契约测试?

    01.微服务为什么需要契约测试 首先我介绍一下公司的情况.我们使用的是微服务架构,每个部分会负责其中的几个微服务的研发和维护.我所在的部门维护公司的支付服务(billing),这个服务需要依赖其他部门 ...

  10. 小程序入口构造工具二维码测试工具

    作者 | 吴鹏和 本文将介绍我们小程序中隐藏的两个工具页面.原理虽不复杂,收益却实实在在,或许也能给诸君带来启发. 入口构造工具 痛点 PM&运营 投放链接 PM&运营每次投放新入口时 ...

最新文章

  1. 移动数据平台mParticle获1750万美元B轮融资,帮助企业快速获取客户数据
  2. SAP云平台对Kubernetes的支持
  3. java异步线程内存可见性实验
  4. android 数据库详解,Android-SQLite数据库操作详解
  5. 利用python进行数据分析——使用groupby机制对pandas对象类的数据进行聚合与分组操作
  6. spring学习--AOP--JDK动态代理
  7. uva 11916 Emoogle Grid (BSGS)
  8. android反编译修改教程,Android逆向反编译代码注入
  9. Android开源项目库汇总
  10. 个人信息安全规范----7、个人信息安全事件处置
  11. java球的体积计算
  12. VS好用系列之选择性粘贴
  13. matlab中abs函数,matlababs是什么意思 是是是什么意思
  14. 计算机学win7画图,详解使用画图工具的win7中的操作步骤
  15. 《把时间当做朋友》读书摘记
  16. luogu P2706 巧克力
  17. Libra,一场赛博朋克噩梦!
  18. 卡梅 计算机生物专业怎么样,【智友学子】X同学----卡耐基梅隆大学 计算生物学...
  19. 74HC595驱动2位数码管代码实现和注意事项
  20. 敏捷街上的噩梦2:受控敏捷

热门文章

  1. 和平精英怎么玩?智能找图、鼠标滚轮宏按键玩吃鸡还能匹配手机?
  2. python图片保存pdf_python将图像保存为pdf及图片
  3. Android实现连线题效果
  4. 汉王考勤管理软件mysql数据库配置_汉王考勤管理软件使用说明书介绍.pdf
  5. 在安装VC2012上再安装VC2010时连接出错解决
  6. AR地图与虚拟现实技术
  7. stm32 OV7670/摄像头模块颜色区域定位(腐蚀中心算法)
  8. 2022最新手机号码正则
  9. pr双击打开图标没反应,下载ZXPSignLib-minimal.dll替换
  10. 标准ASCII编码表