- 接口功能测试算是测试工程师绕不过去的一个重要技能。
- 而掌握接口测试,需要先知道什么是HTTP协议。
- 原理虽然很枯燥,但是同时也很重要。打好基础的情况下,才能将知识体系建的更高、更扎实
目录
一、HTTP协议基础-定义与起源
二、HTTP协议请求过程
三、HTTP请求方法
四、HTTP报文构成
五、GET请求与POST请求的区别
对于一个测试工程师的来说,想要快速入门接口功能测试,其实只需要掌握下面4个问题的答案:
1.HTTP接口请求的流程?
2.请求报文、响应报文分别包含什么内容
3.常用的接口请求方法?它们各有什么特点?
4.接口的状态码分别有哪些?它们的含义都是什么?
不过首先,要了解一个事物我们先知道它是什么?它怎么来的?
HTTP协议的定义:
HTTP协议全称 超文本传输协议(Hypertext Transfer Protocol,HTTP),它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
简而言之,就是客户端与服务端交互数据的一种方式。
HTTP协议的起源:
HTTP是与HTML(超文本标记语言)、URL(统一资源定位符)一起,作为web构建技术被提出。HTTP诞生之初主要是应用于WEB端内容获取,之后被广泛应用在移动互联网的客户端app。
接下来,我们要知道这个事物是怎么工作的
HTTP协议中,请求访问资源的一端称为客户端,提供资源响应的一端称为服务端。
(注:应用HTTP协议时,必定是一端担任客户端角色,另一端担任服务端角色。而接口请求必定由客户端发出,服务端回复响应。)
HTTP协议接口请求的过程如下:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
(注:这是重点!经常会考的!)
HTTP常用请求方法:
GET :发送请求来获得服务器上的资源,请求体中不会包含请求数据,请求数据放在协议头或URL中。
POST:向服务器提交资源让服务器处理,比如提交表单、上传文件等,可以建立新的资源或者对原有资源的修改。提交的资源放在请求体中。
PUT:和post类似,发送资源与服务器,并存储在服务器指定位置。
DELETE:请求服务器删除某资源。
GET与POST方法是最常用的两种方法,下文中会重点介绍这两种方法
(注:也是重点!也经常会考的!)
HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。
请求报文格式:请求行 -请求头 - 报文主体
应答报文格式:状态行 -响应头 - 报文主体
(一)、请求报文之URI/URL
URL(Uniform Resource Locator,统一资源定位符),URI(Uniform Resource Identifier,统一资源标识符),URI标识某一个互联网资源,而URL表示资源的地点,URL是一种特殊类型的URI。这里详细介绍我们常用的URL。
URL支持多种协议语言,HTTP协议就是其中之一。
URL的一般语法格式为:(带方括号[]的为可选项)
协议 :// 主机名[:端口号] / 路径/ [;参数][?查询参数]#信息片断
(二)、请求报文之请求体(request body)
request body主要用于POST请求。部分参数在body里传递。
request body主要的格式分为:
form-data(表单类型)、urlencoded(URL编码)、raw(原始类型)、binary(二进制)或GraphQL(图形语言)
(三)、HTTP报文首部(header)
HTTP协议的请求和响应报文中必定包含header。内容为客户端和服务端分别处理请求和响应所需要的信息,例如报文主体大小、所使用的语言、认证信息等。
Header的结构:“key:value”,一行即一个Header。每个Header意义均不同。
例如:
请求报文中的header:
响应报文中的 header:
(四)、响应报文之状态行
状态码告知从服务端返回的请求结果,借助状态码可以知道服务端是否是正常处理了请求,还是出现了错误。
状态码类别:
(重点中的重点!肯定会考)
1xx:接收的请求正在处理中
2xx:请求正常处理完毕
3xx:重定向,需要进行附加操作以完成请求
4xx:服务端无法处理请求
5xx:服务器处理请求出错
(五)、响应报文之报文主体(response body)
响应报文主体与请求报文主体的格式类似。不同的是响应报文是由服务端发送给客户端的请求结果。
当然,也用于我们在接口测试过程中,验证测试结果。
最后,我们再来了解一个问题
最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。在我们日常工作中,知道这点已经够用了。
在大部分日常接口测试工作中,只需要使用接口文档里注明的请求方法即可。
虽然这看起来是一个很简单的问题,但实际上却涉及到方方面面。感兴趣的可以去了解一下。
重新再来看开篇的这个4个问题,是否已经有答案了?
1.HTTP接口请求的流程?
2.请求报文、响应报文分别包含什么内容
3.常用的接口请求方法?它们各有什么特点?
4.接口的状态码分别有哪些?它们的含义都是什么?
什么?没有答案?那就在看一遍这个文章(特别是重点部分)
- 文章内只是大致介绍了一下HTTP协议,只是捡了一些重点来介绍。想要详细了解HTTP协议的话推荐一本书《图解HTTP》,这也是我http协议的启蒙书籍。
书的资源我分享在我的个人公众号里,有需要的可以关注领取。
公众号的名字叫:软件测试必备技能
(没错我是在求关注,哈哈哈哈)
接口功能测试入门系列目录:
接口测试入门(一)-HTTP协议基础_蹩脚诗人_Ww的博客-CSDN博客
接口测试入门(二)-原理与方法_蹩脚诗人_Ww的博客-CSDN博客
接口测试入门(三)-测试流程与测试用例设计_蹩脚诗人_Ww的博客-CSDN博客
本人运营的博客同名公众号【软件测试必备技能】不定期会上传测试相关资料,有需要可以前往领取。
有需要可点击文章下方二维码,前往领取~