一,什么是接口:
- 从IT的角度来看,接口就是 不同组件或模块或系统之间的一种交互通信。是组件/模块/系统内部封装了提供给外界交互的一个接口。 接口的形式协议有很多,例如http、ftp、tcp、dubbo等等。
- 内部接口:系统程序内部的接口,例如方法和方法之间、模块与模块直接的交互接口,前后端交互的接口。
- 外部接口:系统对外提供的接口。
二,什么是接口测试:
- 接口测试是通过直接测试被测应用的接口来确定接口是否在功能、可靠性、性能和安全方面达到预期结果的一种软件测试活动。
- 接口包括检测外部系统与系统之间以及内部各个子系统之间的交互点。 测试的重点是要检查接口的可用性和数据的正确性,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
- 接口测试在质量保证中所扮演的越来越重要的角色。接口测试可以帮助测试工程师以及测试团队以低成本的方式去降低手动测试工作量,实现测试团队提效。
- 原理:通过测试脚本或工具模拟客户端向服务器端发送接口请求报文,服务器收到请求报文后做出相应处理后将响应报文返回给客户端,脚本或工具接收到响应报文并对响应报文进行测试检查。
三,http协议与https协议
- http协议特点:
- 支持客户/服务器模式。 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
- 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
- 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。http1.0默认是无连接,http1.1默认是长连接。
- 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。当你登录到一个网站时,你的登录状态也是由Cookie或Session来“记忆”的,因为服务器并不知道你是否登录。但是从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。
- http协议版本:http协议目前有5个版本,其中1.0和1.1版本在互联网上被广泛使用。
- http/0.9版本: 1991年,原型版本,功能简陋,只有一个命令GET,服务器只能回应HTML格式字符串,该版本已过时。
- http/1.0版本: 1996年5月,除了GET,还引入了POST和HEAD方法。 不仅可以传输文字,还能传输图像、视频、二进制文件。 每个TCP连接只能发送一个请求。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。 TCP连接的新建成本很高,因为需要客户端和服务器三次握手,并且开始时发送速率较慢(slow start)。所以,HTTP 1.0版本的性能比较差。随着网页加载的外部资源越来越多,这个问题就愈发突出了。
- http/1.1版本: 1997年1月,引入了持久连接(persistent connection)keep-alive,即TCP连接默认不关闭,可以被多个请求复用。默认建立持久连接。 支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,支持以管道方式在同时发送多个请求,以便降低线路负载,提高传输速度,可以减少整体的响应时间。 提供身份认证、状态管理和 Cache 缓存等机制相关的请求头和响应头 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 。 http1.1是目前最为主流的http协议版本。
- http/2 版本: 基于 HTTPS 的,所以 HTTP/2 的安全性高。 复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,且不用按顺序一一对应,避免了队头堵塞的问题。此双向的实时通信称为多工(Multiplexing)。 允许服务器未经请求,主动向客户端发送资源,即服务器推送。 会压缩头(Header):如果你同时发出多个请求,他们的头是一样的或是相似的,那么,协议会帮你消除重复的部分。 头信息和数据体都是二进制,并且统称为帧(frame)。
- http/3 版本: HTTP/2 主要的问题在于,多个 HTTP 请求在复用一个 TCP 连接,下层的 TCP 协议是不知道有多少个 HTTP 请求的。所以一旦发生了丢包现象,就会触发 TCP 的重传机制,这样在一个 TCP 连接中的所有的 HTTP 请求都必须等待这个丢了的包被重传回来。所以 HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP。
- http与https的区别:
- HTTP:做为网络协议,HTTP 协议是以明文方式发送信息的,很容易被攻击者窃取重要信息。如果黑客截取了 Web 浏览器和服务器之间的传输报文,就可以直接获得其中的信息。
-
HTTPS:HTTPS 的全称为 (Hyper Text Transfer Protocol over SecureSocket Layer),HTTPS 和 HTTP 有很大的不同在于 HTTPS 是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS = HTTP + SSL。
-
http请求方法:
-
get和post区别:
四、接口测试痛点:
- 接口文档缺失或者设计太复杂,很难分析,导致测试用例设计不好
- 接口之间的关联依赖关系不清楚 需要依赖第三方系统
- 测试数据经常被改动,导致脚本经常失败 脚本执行完产生的数据没有做清理,导致下一次执行失败
- 检查点不足,导致问题没有被测试出来
- 工具不熟练
五、接口测试质量评估标准:
- 业务功能覆盖率
- 功能测试用例覆盖率
- 接口覆盖率
- 代码覆盖率
- 校验检查点
六、接口测试用例设计