00:06
同学们大家好,从这个阶段开始呢,我们就要学习接口测试的相关知识了,那咱们这个章节呢,首先要学习的呀,就是接口测试的价值,还有体系。下面呢,我们先来看看我们这节课内容的一个安排,首先呢,我们先来了解接口测试的一些相关概念,然后呢,我们再去了解一下接口测试的价值到底在哪里,那接下来呢,就需要去学习一个测试当中非常非常重要的就是分层测试的体系啊,那学习完了之后呢,最后我们再来梳理一下接口测试学习的一个路线。好,那下面呢,我们就先来了解一些概念啊,那首先要了解的呢,就是接口这个概念,接口到底是什么呢?那其实单说接口呢,是一个比较宽泛的一个概念啊,它主要是表示系统对外交互的那个部分,嗯,就比如说我们拿这个日常生活的这个一个例子来说啊,那比如说我们这个电源插座,它呢,就是这个电器和电能之间的接口,对吧?那再比如说我们的这个电梯的那个按钮,对吧?它就是这个乘客和电梯之间的这个接口。
01:19
所以说大家看,其实这个接口呢,其实就是不同的系统之间相互连接的那个部分啊,它呢是一个传递数据的一个通道,那我们呢,只需要把我们的数据送到这个通道当中啊,这样的话呢,就可以获取到我们所需要的那样的一个服务,那至于说你的这个服务,它获取的一个底层逻辑到底是什么,我们是不需要去详细了解的啊,所以说呢,接口其实就是我们不同系统之间交互的一个桥梁啊。那其实大家也都知道,咱们现在的这个互联网产品呢,基本上都是前后端分离开发的,对吧,也就是说呢,我们前面的这个UI的界面和这个后端的服务它是分开,可能是由不同的人或者是不同的团队去进行开发的,那这样的开发模式呢,其实就决定了,如果说我们的前端和后端要去进行数据交互的话,那中间就必须得有一个桥梁来进行沟通,那这个桥梁呢,其实就是我们的接口啊,那前端和后端进行数据交互的话,都是需要通过接口的,就比如说我们这个图里面对不对。
02:33
那比如说呢,我们要进行数据交互的话,前端就会先来发送一个请求,对不对,把这个请求呢发送给接口,那么接口呢,接收到这个请求之后,就会去调用对应的一些后端的方法,那后端的方法呢,它会给出一些结果,那这个结果呢,接口会把封装到响应当中去之后,再把它返回给我们的这个前端,对不对?哎,这个呢,就是我们整个数据的一个交互的过程啊,那在这里面的这个接口呢,我们也可以把它叫做API啊,也就是application programming interface的一个缩写,那其实这个接口呢,它的本质啊,也就是我们后端开发预先定义好的一些这个函数或者是方法,那这些函数呢,可以给我们提供一些确定的功能和服务,那比如说有的接口可以完成一些,比如说数据查询,对吧,有的呢,可能可以给我们提供一些图片,那有的呢,可能完成这个数据的。
03:33
存储啊等等,它都会提供一些确定的这些功能给我们。好,那通过这个接口呢,哎,我们的客户端和服务端之间就进行了一系列的数据交互啊,那这种交互的过程其实呢,也叫做程序的内部接口啊,那既然有内部接口,肯定就外部接口对吧?那外部接口呢,一般来说比较常见的就是比如说我们有这种第三方登录呀,第三方的支付呀等等这些啊,通过调用第三方的接口,再去返回我们当前的一个系统,那这种就叫做外部接口。
04:07
好,那这个呢,就是我们这个接口的概念,那知道了接口之后呢,接下来我们再来看看什么是接口测试啊,其实呢,接口测试它本质上呢,是我们需要基于某种协议对吧?发送一个请求给我们的这个服务端,然后呢,服务端再返回一个响应的一个数据,那拿到响应数据之后呢,我们就需要去分析判断一下,看看拿到的这个响应跟我们预期当中的那个响应到底是不是一致的对吧?这样的话呢,就可以判断我们的这个接口,它给我们提供的功能到底是不是正确啊这个呢,其实就是我们的接口测试,对吧?那整个过程当中呢,它是需要验证一下我们数据的一些增删改查的这个操作,以及我们系统之间的这个业务的一个逻辑关系,对吧?当然了,刚才说的这些都是指我们接口的一个功能,那除了功能要保证之外呢,我们肯定还是要去关注我们的一些性能呀,关注我们的稳定性呀,还有一些安全性呀等等,对吧。
05:07
那其实大家看啊,现在我们的这个这个公司当中啊,其实我们的测试大体的简单的分的话,可以分成两大类啊,一个呢就是客户端的测试,一个呢,就是我们的这个接口的服务端的测试,对不对,那前面的这个客户端呢,其实我们就呃包含了一些比如说UI呀,对吧,比如说我们的这个功能呀,兼容性呀等等这些啊,那服务端呢,其实大部分的就是管说的这个接口测试啊,那我们接口测试呢,哎,它需要去检查数据的交换是不是正确啊,传递是不是正确,还有它的这个控制管理过程是不是正确啊,它呢,其实对这个接口测试,它是绕过了客户端,直接对我们的这个服务端去进行测试。好,这就是我们接口测试的一个概念啊好,那现在我们知道了什么是接口测试之后呢,那我们为什么要去做接口测试呢,对吧,它的价值在哪里呢?
06:04
哎,那下面呢,我们就来看一看。大家可以看看我们这边这张图啊,其实呢,服务端是非常非常复杂的,那这张图里面呢,是一二年的时候,淘宝的一个核心链路的应用拓扑图,对吧?这都是已经十十多年前的一个图了啊,那嗯,这样的话呢,大家其实看这个图就能对我们后端服务的复杂性有一个比较直观的一个了解了,对吧?那图里边的每一个点啊,都其实代表了一个模块,也就是我们后端的一个服务,那比如说当我们的一个用户啊,因为这是淘宝的嘛,当我们的一个用户,比如说他要购物的时候,比如说他要浏览我们一个商品,对吧?把把一个东西放到购物车,然后可能要登录,接下来产生交易,那每一步用户的行为,其实后面都连接了好多个这种模块啊,那通过各种依赖和组合去对我们的用户数据去进行一个全面的处理。那比如说我们一个用户啊,他登录进来了,那他是不是先要调用一个登录的接口,对吧?那接下来呢,他就可以看到这个商品的一个详情页,还有用户的一些个人信息页,包括比如说你想给他推什么广告,对吧?哎,这其实呢,就需要非常庞大的一个服务端组件的一个支持,那通过各种配合呢,才能提取出来这些信息去给我们的用户去进行展示啊,那大家看我们这张图上面这个模块的组合那一列呢。
07:28
一列呢,可能有十几个模块对吧,然后呢,上面有啊有有个有个十几列,那这呢还是这个十多年前的架构对吧?现在的复杂度肯定要比这个图还要更复杂,所以说呢,从这张图我们就能看出来,公司里面真实的后端服务非常非常的复杂,这么多的模块它不可能用一个团队去保证,质量也保证不过来,对吧?所以说呢,基本上每一个模块它都有专门的团队去进行这个维护啊,一个团队呢,可能就是少的话两三个人,多的话还得十几个人啊,那大家呢,会一起来维护这些东西,而且呢,就当我们的这些模块集成到一块的时候呢,它的这个变更频率其实不太一样啊,比如说有的模块它可能一个月更新一次,对吧,有的模块呢,可能两周更新一次,那其实就单个模块来说,可能它的这个变更的频率不是很大啊,两周或者一个月,这都是属于正常水平啊,但是呢,当这么多模块集成到一起,它是一个网状的一。
08:29
一个一个结构啊,那它的调用关系其实可能是每天都会有更新的,那这么庞大的一个变化,其实就会给测试人员带来非常大的压力,对吧?那可能我们上一轮测试还没测完呢,那我们的调用的这个网络结构可能就已经发生变化了,有的模块已经升级了,对不对,那那这种情况下呢,其实我们传统的这个测试方法啊,它呢就不会很实用了啊,它的成本呢,是急剧上升的啊,因为我们的这个产品功能越来越复杂,变化越来越快,对吧?所以说呢,普通的瀑布流的这种测试其实就不太跟得上我们公司的一个发展了啊,整体的效率是下降了。
09:08
所以说基于这种情况呢,我们就需要去研究出来新的测试方法和测试策略啊,去改变这种变化,那其实最现在最好用的方法呢,就是我们要通过分层测试,去把测试呢分成不同的这个层次,对吧?每一个层次呢,还可以继续去拆分啊,那比如说我们每一个组件,现在好好多公司都采用这种微服务化,对吧?那微服务化呢,它对应的每一个组件其实都需要有对应的测试,那就要有单元测试啊,又要有单模块的接口测试,还要有这个集群整体的一个端到端的一个这个这个接口测试,对吧?那最后呢,还要到UI完成整个UI端的一个测试。那除了这个分层之外呢,自动化也必不可少,对吧,没有自动化的话,这么大的一个集群也是没有办法测的,哎,所以说呢,哎,在当前传统UI测试成本越来越高,效率又比较低,不能保证产品质量的这样的一个情况下,那么分层之后,我们是不是就可以通过接口测试来快速的保证我们后端服务的一个质量,那后端服务质量保证了之后,那么对于我们前端测试来说呢,其实就要这个省事很多了啊。
10:21
那刚才呢,我们是说了,我们要通过分层测试对吧,进行接口测试,去保证我们整体的一个质量,那它的这个分层到底要怎么来分呢。哎,我们来看一下啊,它具体分层的一个方式,那大家看啊,这个图其实就是我们现在最常用的一个分层模式啊,这个图是我们测试的一个金字塔模型,那这个模型呢,其实也是一个大牛提出来的啊,嗯,大家前面应该学过这个page object的一个设计模式,对吧?哎,其实他们的这个提出的人都一样啊,都是我们那个大牛马丁福勒,那马丁福勒呢,他关于分层测试就画出来了这样一张非常经典的图,那这张图呢,其实就展示出来了我们一个公司的分层测试的一个策略啊,那最底层unit是单元测试啊,然后中间的service啊,它是这个服务端测试,其实在这里面呢,更多的指的就是接口的测试。
11:18
那最上面的呢,就是UI测试啊,那其实从这张图里面也能够说明我们做不同测试的一个性价比对吧,越往上走,那我们的这个付出的成本就越大,花的钱要越多,对吧,而且呢,它的效率就越低,所以说呢,收益相对的也就比较小。那像最上面的这个UI测试呢,它是属于比较传统的测试,对吧,它的测试的时机呢,是整体比较靠后的啊,所以说呢,如果发现问题的话,我们去修复,可能代价呢,也就会相对比较大,而且呢,它的效率相对也比较低。那接口测试就不一样了,它是属于中间层对吧,它要比UI测试要更底层一些,所以说呢,可以更早一些的去发现问题,那发现问题的话呢,修复的代价也要更小一些,所以说呢,相对啊性价比是比较高的,而且呢,我们这个呃,后端同学呢,他在开发完接口之后呢,就比如说啊,这个时候可能前端同学还没有写完他的页面呢,还没联调呢,但是呢,只要我们接口开发完了,就可以直接介入进行测试了,就通过接口测试的这个方式啊,这也是我们为什么现在公司里面越来越重视这个接口测试的一个原因,对吧?因为如果我们接口的质量保证好了的话,其实到了这个系统测试的阶段,我们就会发现这个工作量就会减少,非常非常的多啊,而且呢,接口它是相对比较稳定的啊,是非常容易去做自动化的,它的自动化的成本要比UI自动化要。
12:49
这个小很多收益呢,还要远远的高于我们这个UI自动化测试啊,所以说。接口测试现在是非常非常重要的一个部分啊,那虽然说接口测试这么重要,不过大家也要注注意啊。
13:03
我们的接口测试是不能完全代替客户端的UI测试的啊,因为UI测试呢,它是涉及到了一些用户体验的一个问题,这一块呢,接口测试是无法代替的,所以说呢,接口要做,对外也要做啊,大家要注意一下这一点。接下来呢,我们来看看啊,如果我们想要掌握接口测试的技术,那我们应该按照什么样的路线去进行学习呢?哎,下面我们就来梳理一下,那咱们学习接口测试呢,可以从简单到复杂分为三个阶段啊,那首先第一个阶段呢,哎,就是初级阶段,我们需要学习一些接口测试的基本概念啊,还有呢,手工接口测试的方法,还有就是Mo测试啊,那初级学完了之后呢,基本上呢,手工测试,然后哎手工做接口测试,还有手工完成Mo测试的能力,我们基本也就都有了,而且呢,也可以掌握常见的接口测试工具的一个使用方法,那学好了这些技术之后呢,我们就可以进入到接口自动化测试的学习了,那在接口自动化的部分呢,我们会学习使用代码的方式去完成接口测试的一个执行啊,当我们学会做这个简单的自动化测试之后呢,哎,我们还可以进一步的去学习更高级的这个接口自动化测试的知识。
14:20
对吧,那比如说我们要去这个搭建自己的框架,对吧,那比如说还有一些进阶的一些前沿的接口知识,我们呢,都可以在这部这部分再去进行一些拓展。那接口自动化测试和接口测试的进阶知识这两块呢,我们在后面。这个这个学到具体内容的时候呢,再详细再去给大家做介绍,那首先呢,我们先来给大家梳理一下我们第一个阶段的一个学习的一个具体的路线啊。那我们第一个阶段给大家安排的呢,就是接口测试与慕啊,那所以说呢,我们来看看在这部分我们给大家是怎么来安排的,那这个阶段呢,我们主要的目标啊,就是先来掌握接口测试的一些基本知识和概念,对吧?哎,知道了知识体系,知道它的学习路线,那接下来呢,就需要去掌握一些常见的知识点,比如说我们的一些常见接口协议,对吧,HTTP协议之类的,然后呢,还有一些常见的这个接口测试的工具,比如说postman,对吧,还有呢,就是常用的一些抓包工具,比如说childs或者fe,那我们学完这些之后呢,需要去让大家掌,就是结合我们的一些这个实际的一些案例,掌握我们Mo测试与接口测试的一些具体的一些这个,呃。
15:36
技能啊,然后呢,这就是我们整个呃,这一部分的一个学习目标,那为了完成这些目标,我们安排了哪些章节呢?哎,在这里面呢,来给大家梳理一下,首先呢,我们第一节会给大家去讲这个接口测试的价值与体系,就是咱们这节课对吧?最主要的呢,大家是需要去了解接口测试的知识体系,还有他的学习路线。那下面的一节呢,会给大家去介绍常见的一些接口协议啊,那就是了解都常见的接口协议有哪些,那重点呢是需要去掌握HTTP协议啊,那接下来呢,我们会给大家去讲解接口测试用例怎么去设计,那在这块呢,重点是掌握接口测试用例设计的一个思路就可以了。
16:18
那接下来就是工具的学习了,对吧?首先呢,我们会给大家去这个讲解posman的一些基础的使用啊,那在这一章节里面呢,我们就掌握postsman的一个安装,还有它的一些基础用法,那接下来呢,就安排了一节实战演练课程啊,我们呢,在这节课程里面呢,会使用postman去完成一个简单的接口测试啊。那接下来呢,就是关于抓包工具啊,抓包工具Charles,那它的安装和基础配置,还有抓包工具fe,它的安装还有基础配置,那接下来呢,还有抓包工具的证书配置啊,就比如说叉S里面,他如果想要抓HTTPS包的话,需要怎么样去配证书,对吧?这是在这节课里面要讲的啊,那这些环境都准备好了之后呢,我们会通过一节小实战啊去给大家练习APP抓包到底应该怎么去抓,那我们会用雪球来给大家举例子。
17:08
那前面这些都学完了之后呢,接下来我们给大家准备了一个综合的接口测试实战练习啊,我们要结合psman去完成一个宠物商店这样的一个产品的接口测试。那这些都完成了之后呢,会给大家讲解一下怎么样去做弱网测试啊,那在这块呢,是选择了Charles这款工具,来看看是怎么用char完成弱网测试。那这部分完了之后,接下来呢,就是关于这个Mo课的一个学习了,Mo课测试的学习对吧?首先呢,我们先来看Mo课的价值与意义,那接下来呢,再去带着大家使用我们这个代理工具完成一个Mo课测试的一个实战练习啊那前面呢,都是必修的内容,下面这两个呢,是选修的啊啊一个呢是怎么样使用课命令去发送请求啊,去了解一些客命令的参数,还有呢,就是TCP dump,还有well Sha的一个使用,这个呢是了解底层协议的一个工具啊,它可以抓更底层的一个包,这两个大家呢,就是呃,如果感兴趣的话,可以去了解一下啊,那如果说是你是先用不着他俩的话,不看也行啊,这是属于选秀拓展的一个内容,前面这些是我们给大家安排的一个从简单到难的整个的一个学习路线啊,那只有前面的这些基础知识掌握牢固了之后,那后面呢,我们去学习这些工具应用呀,还有说这些实战呀。
18:31
才能够更加的顺畅啊,所以说呢,大家最好不要跳着学啊,因为跳着学的话呢,很可能会漏掉重要的知识点,那你学知识的话不成体系,可可能就这个事倍功半了,对不对,所以说呢,推荐大家按照咱们这样的一个学习路线,跟着我们的课程一步一步的去学习就可以了。好的,那关于接口测试的价值和体系,我们呢,就先给大家介绍这么多。
我来说两句