接口测试—全栈软件测试自动化(12)

发表于:2020-7-10 09:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:赵旭斌 余杰    来源:51Testing软件测试网原创

  第5章 接口测试 
    5.1 引言
  近年来,有一个自动化测试概念非常有名,即图5.1所示的分层测试自动化金字塔。以前,自动化测试一般只针对UI的功能点进行测试,实践以后大家发现,要做到高覆盖率的UI自动化测试几乎不太现实,而且收益比较低,每天还担心界面发生变化,界面变化了还要重新测试。尽管随着测试经验的丰富,我们也用上了脚本业务与数据分离、封装公共函数等高级测试技术,但是最后的测试收益率仍然无法提高,很少能实现真正的自动化测试。
  近年来,敏捷开发模式的普及促使持续集成的发展,加之手动测试根本无法满足高速的项目迭代和交付,于是接口自动化测试崛起,现已经成为每个公司都在做的一项工作。和以前的功能界面自动化测试“走形式”不同,接口自动化测试,得到每个公司的重视,因为接口自动化测试很科学,性价比很高。
  从图5.1中可以看到,分层测试自动化金字塔的最底层是单元测试,一般由开发人员完成。单元测试的作用不容忽视,一个即将交付的模块进行过单元测试和没进行过单元测试,其交付质量是有很大的区别的。理论上讲,单元测试的在整个自动化测试所占比例应该是最大的,所以我们也可以看到在分层测试自动化金字塔上,它的“面积”最大。接下来,中间一层是接口测试,其“面积”比单元测试要小一些。现在行业内有一个约定俗成的规矩,即功能点接口测试覆盖率要达到90%以上,这在以前UI功能自动化测试中是根本不敢想象的,不过接口层的自动化测试的确可以做到很高的覆盖率。最后,我们可以看到UI测试在分层测试自动化金字塔的上部,其占比并不是很高,一般只要用一些冒烟测试用例和一些高优先级且稳定的功能点测试用例即可。另外,不管是哪个层面的自动化测试,其基本要求是实现持续集成的自动化测试。
  5.2 什么是接口
  接口主要用于外部系统与系统之间及内部各个子系统之间的交互点。定义特定的交互点后,这些交互点通过一些特殊的规则(也就是我们所说的协议)来进行数据之间的交互。
  5.3 接口的类型
  从测试工程师尤其是新人的角度来说,如何最快速地理解“接口”?如果我们套用软件测试设计理论里的等价类划分法,接口通常只涵盖以下两种“等价类”。
  程序内部的接口:方法与方法之间、模块与模块之间的交互,以及程序内部抛出的接口。如BBS有登录模块、发帖模块等,用户发帖就必须先登录,因此这两个模块就要交互,程序内部就会抛出一个接口,供内部系统进行调用。
  系统对外的接口:如从别的网站或服务器上获取资源或信息,这些网站或服务器肯定不会把数据库共享,只能提供一个接口来让用户获取数据,用户引用提供的接口就能达到数据共享的目的。
  下面介绍接口的分类。
  WebService接口采用的接口协议是SOAP,通过HTTP传输,请求报文和返回报文均为XML格式,我们在测试的时候要通过工具才能调用和测试WebService接口。
  HTTP API:采用的接口协议是HTTP,通过路径来区分调用方法,请求报文的形成是键-值对,返回报文一般是JSON字符串。常用的方法有GET方法和POST方法。
  JSON是一种通用的数据类型,所有的语言都能识别它。JSON的本质是字符串,它与其他语言无关,经过加工可以转换成其他语言的数据类型,如可以转换成Python中的键-值对形式、JavaScript中的原生对象、Java中的类对象等。
  5.4 接口的本质和工作原理
  可以把接口简单地理解为URL。其工作原理是URL通过GET方法或POST方法请求向服务器发送一些数据,然后得到相应的返回值。接口的本质就是数据的传输与接收。

查看《全栈软件测试自动化 SeleniumAppium (Python版)》全部连载章节
版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号