在做接口测试之前必须掌握的原理

一 . 接口测试的定义

1.接口是前后端沟通的桥梁,是数据传输通道,包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口;

2.接口是把自己提供给外界的一种抽象化物,使其能被内部修改而不影响外界与其交互的方式;

下面以生活实例举例说明什么是接口:

电脑上的键盘的按键就是电脑向人提供的接口。键盘上的按键(接口),打字时候输入的qwer(接口的输入) ,展现在电脑屏幕上的qwer(接口的输出)

二 . 接口的本质

接口是具有特定输入和特定输出的一套逻辑处理单元,也可以理解成它是一种契约,遵循一种形式,在项目开发前期前后端会约定接口接收什么参数,后端处理完之后,返回什么数据给前端。前后端一起联调完成系统逻辑的前期预期,提高研发效率

三 . 常见的接口类型

HTTP接口:基于超文本传输协议(HyperText Transfer Protocol HTTP)开发的接口,是应用最广泛的网络协议之一。基于浏览器/服务器(B/S)的软件系统大多数为HTTP接口;

Web Service接口:系统对外的接口,根据提供的方法引用提供的接口,从而获取数据;

RESTful接口:简称REST,描述了一个架构式的网络系统;

Dubbo接口:Dubbo是一个分布式、高性能、透明化的RPC服务架构。是阿里巴巴公司开源的一个高性能优秀的服务治理方案。可以理解HTTP是基于客户端-服务端传输,而DUBBO是后端服务与服务之间方法的调用,传输信息

四 . HTTP 工作原理

HTTP协议工作于客户端-服务器(C/S)架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即web服务器发送所有请求。

下面通过一张互联网架构图理解HTTP工作原理:

在这里插入图片描述

接口发送请求时候的交互原理:客户端发送网络请求→API网关,网关可能部署在(阿里云,Apache,IIS,nginx等)→再到后端服务services(可能存在多层级的服务)→servies再去数据库(大数据)获取数据→数据返回给客户端,http默认是持久连接

五 . session与cookie

cookie 是访问网站的时候,由网站服务器返回的一种标记为cookie 类型数据;在本地存储一些网站相关的信息,下次再访问的时候减少一些步骤。或者说cookie 是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器,是一种在客户端保持状态的方案。

在这里插入图片描述

由于 HTTP 协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是 Session。

cookie是保存在浏览器上,可以进行Cookie欺骗相对于session 安全级别比较弱。session是放在服务器端,更加安全;

Session保存在服务端,每个用户发送请求时产生一个Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用Cookie;

cookie和session应用的场景:

cookie:用户的登录状态,记录用户的习惯,购物车;

session:登录验证;

六 . 接口测试的定义

接口测试是基于协议进行测试的,实际上是黑盒测试,基本的测试思路是通过输入和输出判断被测系统或者对象的逻辑。为什么说接口是黑盒测试,因为接口是具有特定输入和特定输出的一套逻辑处理单元,测试接口时候不需要知道它的内部实现逻辑

七 . 接口测试的意义

接口测试是测试工程师的必修课:如果不会接口测试,自动化更别提了, 领导也不相信你会把自动化测试能做好。然后会搭建接口自动化测试框架,也是你能力体现的一个分水岭

接口测试的好处:

越早发现bug,修复的成本越低–出自《软件测试的艺术》,接口测试使“测试更早的投入”变成现实,更能更好的保证软件质量

接口测试可以测试一些界面测试无法测试的范围。

接口测试直接测试后端服务,能发现影响范围更广的bug

接口测试更容易与自动化测试系统或者平台结合,比如UI自动化+接口自动化=一体化

八 . 接口的请求方法

http协议里定义了一些请求的方法或者叫动词,这些方法和动词可以进一步定义请求的目的,比如是获取资源还是创建资源等;常用的是GET,POST。

在接口测试中,一般来说,post创建数据,get获取创建成功后的所有数据和指定的数据,put可以对创建成功后的数据进行修改,delete是删除指定的资源。以下是接口请求方法列表:

在这里插入图片描述

九 . 接口常见响应状态码

200 是成功

302 重定向

400 服务器未做任何处理

401 被请求的页面需要账号密码

403 没有权限

404 服务器找不到被请求的资源

500 请求未完成,服务器遇到不可预知错误

OK,我们理解了接口和接口测试的意义之后,接下来我们就可以着手于接口测试了,后面会分别分享 接口测试项目实操。如何用接口测试工具进行接口测试、基于python语言进行接口测试、搭建接口自动化测试框架思路,感谢大家持续关注我们。

最后,下面是我整理出来的一份软件测试工程师发展方向知识架构体系图。

希望大家能在这个成长过程中收益良多。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

由于CSDN上传图片大小有限,有需要的朋友可以关注我的公众号:程序员二黑,回复1,即可获取原图。

下面是一份配套的软件测试资源包:

上面是一些配套资源,对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

关注我的微信公众号:程序员二黑,即可免费获取!

最困难的时候,也就是我们离成功不远的时候!如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流学习。

推荐阅读

高薪程序员也躲不过35岁这一关…当能力与年龄脱节,我们该如何自救?

清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+

字节跳动软件测试岗,前两面过了,第三面HR天坑!竟然跟我说……

Guess you like

Origin blog.csdn.net/qq_56271699/article/details/119428596