认识接口测试

175 阅读3分钟
原文链接: zhuanlan.zhihu.com


这一小节我们一起来认识一下接口测试,首先从我们熟悉的普通基于图形界面做的手工测试开始。


手工测试是这样子的:




接口测试则是这样子的:



这里,唯一的不同,就是把手工测试操作的图形界面,改成了接口测试的工具或脚本。也就是说,我们做普通手工测试的大部分测试设计方法,在接口测试中仍然适用。


我们来一个个看看图里的东西的意义:

1.服务端程序。

现代的软件开发,大多是网络程序的开发。网络程序又通常分为服务器端程序和客户端程序。像我们常常使用的搜索引擎,我们用浏览器或手机APP打开搜索引擎,这个浏览器或者手机APP也就是客户端程序。当我们在客户端输入一个搜索关键字时,这个信息会被发送到服务端程序上。然后服务端程序去做信息的检索,再把搜索结果发回到客户端程序上,这样我们就可以看到搜索结果了。接口测试的目标通常就是测试服务端程序。


2. 图形界面。

这是客户端程序里提供给用户使用的界面。标准叫法为用户接口(UI,User Interface)和图形化用户接口(GUI,Graphical User Interface)。区别是UI泛指各种给用户提供的界面,比如Linux操作系统中的命令行界面,也是一种UI,而GUI指图形化界面。


3.数据

当我们操作UI时,客户端程序会把我们想要发送给服务端程序的指令封装成数据的包。会封装成什么类型的包,取决于数据在网络的哪一层封装。后面我们会详细讲解数据的包和网络的分层。当服务端把数据处理完毕或指令执行完毕后,服务端会把要给用户看的数据也封成包,发送回客户端。客户端再把包解开,给用户看里面的数据。这就是封包和解包的过程


4.工具或脚本

当我们使用图形界面做手工测试时,可以不用工具或脚本,客户端程序会完成数据的封包。这样做测试,测试的对象是整个程序,也就是我们把客户端程序加上服务端程序视为一个黑盒。而接口测试中则不同,我们要测的对象变成了服务端程序。也就是说,我们把服务端程序视为一个黑盒。然后,再用工具或脚本去模拟客户端程序的工作,像客户端程序一样去做封包工作和数据发送工作,再在收到服务端返回信息后,像客户端程序一样去把包解开来。把数据呈现出来。这种用代码去模拟某部分我们不想测的东西的做法,我们通常称为 Mock


本文首发于测试进阶公众号(test_up)

并同步发布于测试进阶知乎专栏和知识星球。


接口测试教程正在我的知识星球火热更新中,

扫码即可加入,10月1日前只需50元。