接口测试(1)认识接口测试
推荐学习网址链接:
https://www.cnblogs.com/poloyy/category/1746599.html
https://www.cnblogs.com/poloyy/tag/
认识接口测试
我们一起来认识一下接口测试,首先从我们熟悉的普通基于图形界面做的手工测试开始。
手工测试是这样子的:
接口测试则是这样子的:
这里,唯一的不同,就是把手工测试操作的图形界面,改成了接口测试的工具或脚本。也就是说,我们做普通手工测试的大部分测试设计方法,在接口测试中仍然适用。
我们来一个个看看图里的东西的意义:
1.服务端程序
现代的软件开发,大多是网络程序的开发。网络程序又通常分为服务器端程序和客户端程序。像我 们常常使用的搜索引擎, 我们用浏览器或手机APP打开搜索引擎, 这个浏览器或者手机APP也就是 客户端程序。当我们在客户端输入一个搜索关键字时,这个信息会被发送到服务端程序上。然后服 务端程序去做信息的检索,再把搜索结果发回到客户端程序上,这样我们就可以看到搜索结果了。 接口测试的目标通常就是测试服务端程序。
2.图形界面。
这是客户端程序里提供给用户使用的界面。标准叫法为用户接口(UI, UserInterface) 和图形化用户接口(GUI, Graphical UserInterface) 。区别是UI泛指各种给用户提供的界面, 比如 Linux操作系统中的命令行界面, 也是一种UI, 而GUI指图形化界面。
3.数据
当我们操作UI
时,客户端程序会把我们想要发送给服务端程序的指令封装成数据的包。会封装成什么类型的包,取决于数据在网络的那一层封装。后面我们会详细讲解数据的包和网络的分层。当服务端把数据处理完毕或指令执行完毕后,服务端会把要给用户看的数据也封装成包,发送回客户端。客户端再把包解开,给用户看里面的数据。这就是封包和解包的过程。
4.工具或脚本
当我们使用图形界面做手工测试时,可以不用工具或脚本,客户端会完成数据的封包。这样做测试,测试的对象是整个程序,也就是我们把客户端程序加上服务端程序视为一个黑盒。而接口测试中则不同,我们要测的对象变成了服务端程序。
也就是说,我们把服务端程序视为一个黑盒,然后,再用工具或脚本去模拟客户端程序的工作,像客户端程序一样去做封包工作和数据发送工作,再在收到服务端返回信息后,像客户端一样去把包解开来。把数据呈现出来。这种用代码去模拟某部分我们不想测的东西的做法,我们通常称为Mock。
5.接口可以简单分为:内部接口和外部接口
作为黑盒测试,基本的测试思路是通过输入和输出判断被测系统或者对象的逻辑。
获取人员的信息,我需要把人员的用户名传给hr系统接口,这样hr系统的接口会返回给我用户的一些更加具体的信息,这里的输入是用户名,输出是用户的详细信息。
6.为什么要做接口测试
既然是接口获取和操作资源的方式,而大部分系统和产品中,资源一般都是产品的核心,比如微信核心资源就是通讯录关系链和聊天记录等,因此资源是必须的。
另外接口中大部分的内容是数据,通过数据的对比我们能推测到系统和产品的逻辑,测接口就是测逻辑。
最后接口中的返回相对单纯,不想web页面,html代码中有太对ui的东西,ui最不稳定,变化太快,接口相对稳定一点点,但是里面的干扰信息更少,断言相对容易很多。
7.口测试用例怎么写?
还是3a原则:
- A:arrange初始化测试数据,就是造数据,这里的数据有我们输入的数据,也有目标接口所涉及的资源,比如hr系统中的用户信息,我们必须先有几条人员的详细信息才能去获取人员信息的接口(当然只是正常的流程,我们有时候还需要清掉数据以便测试资源为空的情况)
- A:act 调用接口库,传入输入数据;
- A: assert 断言,对返回的资源信息进行断言,比如获取用户信息的接口返回了用户信息之后,我们要判断返回的用户是不是我们想要的那个用户,我们获取的是李雷的信息,接口如果返回韩梅梅,那么接口的逻辑就是不对的。