接口的定义
常说的接口有两种:图形用户接口(GUI),GUI接口属于一种图形操作系统,应用程序接口(API),又称为应用编程接口,是软件系统不同组成部分衔接的约定。
研发人员A开发了软件A,研发人员B正在研发软件B。
有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?
研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数;你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!
其中,API就是研发人员A说的那个函数。
接口测试的原理
测试人员借助工具模拟客户端向服务器端发送请求报文,服务器端接受请求报文后,对相应的报文做出处理并向客户端回应答,工具模拟客户端接受应答,然后测试人员检查应答是否准确。
简单了解了接口,接下来简单介绍HTTP
HTTP协议简介
协议是计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。
Web浏览器和Web服务器之间是通过HTTP协议相互通信的。
超文本传输协议(HyperText Transfer Protocol,HTTP)是互联网上应用最广泛的一种网络协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
HTTP协议的工作原理
我们打开浏览器,输入URL后,浏览器就给Web服务器发送了一个HTTP请求(HTTP Request),Web服务器接到HTTP请求后进行处理,生成相应的HTTP响应(HTTP Response),然后发送给浏览器,浏览器解析HTTP响应中的HTML,这样我们就看到了网页。目前主流的Web浏览器与微软的IE、Firefox、Google的Chrome。
HTTP请求
包含URL、请求方法(Method)、头(Headers)、体(Body)
基本请求方法有4种:GET、POST、PUT、DELETE(对应数据库的查、改、增、删)
其中最常用的是GET、POST
GET:请求的数据会在URL之后,以?分割URL和传输数据,多个参数用&连接
POST:把提交的数据放在HTTP包的请求体(Body)中
以下列请求报文为例:
HTTP响应
HTTP请求发送到服务器后,服务器会给出相应的应答,称为HTTP响应。
HTTP响应报文由三部分组成,状态行、响应首部(Headers)、响应主体(Body)
状态码的分类
1XX:提示消息,表示请求已接收,继续处理
2XX:成功,表示请求已被成功接收、理解和接受
3XX:重定向,要完成请求必须进行更进一步的操作
4XX:客户端错误,请求有语法错误或请求无法实现
5XX:服务器错误,服务器未能实现合法的请求
HTTP是无状态的协议
HTTP 协议自身不具备保存之前发送过的请求或响应的
随着 Web 的不断发展,因无状态而导致业务处理变得棘手的情况增多了。比如,用户登录到一家购物网站,即使他跳转到该站的
其他页面后,也需要能继续保持登录状态。针对这个实例,网站为了能够掌握是谁送出的请求,需要保存用户的状态。
但为了实现期望的保持状态功能,于是引入了 Cookie 技术。有了 Cookie 再用 HTTP 协议通信,就可以管理状态了。
使用 Cookie 的状态
假设要求登录认证的 Web 页面本身无法进行状态的管理(不记录已登录的状态),那么每次跳转新页面不是要再次登录,就是要在每次请求报文中附加参数来管理登录状态。
Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。
服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。
执行测试用例
依据编写的接口测试用例,借助测试工具(Postman、JMeter、SoapUI)执行测试用例。