http接口测试:了解协议、请求方法、响应状态码

接口在各个系统间的重要性无需重申,主要体现在外部系统与系统之间以及内部各子系统之间的交互点。通过这些特定的交互点和一些特殊的规则标准(协议)来进行系统数据之间的交互,进而为了系统的安全性、稳定性以及系统异常处理能力等质量保证,接口测试显得尤为重要。

  • http接口测试:了解协议、请求方法、响应状态码
    • 1 接口的类型
      • WebService接口
      • Http API接口
      • RESTful 接口
    • 2 TCP/IP协议
    • 3 Http请求与响应
      • 3.1 Http请求
      • 3.2 Http响应
    • 4 Http接口测试侧重点

1 接口的类型

现在行业中所说的接口基本上都是基于协议来划分的,大致划分如下:

WebService接口

WebService接口是走应用层协议soap协议通过http传输,请求报文(客户端发送的请求主体内容)和响应报文(接口返回的响应主体内容)均为XML格式的。一般通过LoadRunner、jmeter与SoapUI工具进行测试调用。

Http API接口

Http API接口是走http协议,通过路径来区分调用的方法,请求报文一般是key-value形式的,返回报文一般是json串。一般通过LoadRunner、jmeter与postman工具进行测试调用。

RESTful 接口

REST仅是一种相对流行的前后端交互形式约定,算不上是技术标准。前端、后端分离的Web应用架构上,前端在专注页面的同时,也与后端进行数据的交互,后端则专注提供这种API接口。

2 TCP/IP协议

TCP/IP协议作为一组协议的代名词,实质为TCP/IP协议簇,包含了很多协议,其协议簇采用分层管理。在ISO参考模型标准中分为7层,从第一层到第七层分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,而TCP/IP协议簇则采用了4个层,从第一层到第四层分别是:网络接口层、网络互连层传输层、应用层,各层作用如下:

网络接口层:此层是主机到网络的部分,主要由处理网络的硬件部分构成。NIC(Net Work Card,即:网卡)、光纤等均属于此层。此层对应ISO参考模型的物理层和数据链路层。

网络互连层:此层用于分组发往目标网络,负责在众多网络线路中选择其中一条传输线路。IP(Internet Protocol,即:网际协议)就属于此层。此层对应ISO参考模型的网络层。

传输层:此层用于提供正处于网络连接中的PC机之间直接的数据传输,应用层会把数据交给传输层传输。TCP(Transmission Control Prococol,即:传输控制协议)和UDP(User Data Protocol,即:用户数据协议)就属于此层。此层对应ISO参考模型的传输层。

应用层:此层是用户可以直接进行操作的一层,决定了向用户提供服务时的通信内容。HTTP(HyperText Transfer Protocol,即:超文本传输协议)、FTP(File Transfer Protocol,即:文件传输协议)等协议均属于此层。此层对应ISO参考模型的会话层、表示层和应用层。
在行业中的接口测试也基本是基于http协议的。

3 Http请求与响应

3.1 Http请求

客户端想得到服务器端的响应消息,必须发送一个http请求消息过去。其http请求消息 = 请求行 + 请求头 + 空行 + 请求报文 。


其中,请求行信息为请求方法、URL、协议版本,比如:POST http://www.qq.com HTTP/1.1。本文将http协议支持的请求方法进行详细的对比说明:

Http协议定义了多种与服务器交互的方法,其所支持的请求方法:HTTP1.0版本3种(POST、GET、HEAD)、HTTP1.1版本新增5种(DELETE、PUT、OPTIONS、TRACE、CONNECT),共8种。

POST:数据提交。POST方法一般用于向服务器提交表单数据,将客户端的数据通过请求体发送给指定服务器端。因为数据在请求体中,所以该请求可能会修改现有资源、可能会创建新的资源,甚至二者均会发生;但是强调一点,POST方法在修改现有资源时一般只修改其部分内容,POST方法在创建新的资源之前是不明确需要操作的资源对象,是由http服务器给新创建的资源对象生成一个唯一URI。

GET:获取资源。GET方法一般用来从服务器上获取资源,服务器端接到GET请求后,根据请求报文中的拼接在URI上的参数将客户端所需要的相应资源返回给客户端。因为GET方法可能会被网络蜘蛛等随意访问,所以使用GET方法一般只用在获取资源,而不是被用于产生其它作用的操作中。

HEAD:获取响应头。HEAD方法和GET方法相似,也一般用来从服务器上获取资源,但是服务器端接收到HEAD请求后,只会返回相应的响应头,不会将响应消息全部资源返回,这也体现它的好处,只获取关于该资源的信息,即元数据。

DELETE:删除文件。DELETE方法用于请求服务器删除URI指定的页面资源,其自身不带验证机制的,但是在REST标准中可以用于做相应API的删除功能。

PUT:向指定的资源地址上传最新文件。PUT方法和POST方法相似,一般用于上传文件、提交数据。但是PUT请求必须明确操作的资源对象,如果对象存在,那么应该将目标对象进行全部替换;如果对象不存在,那么应该重新创建需操作的对象。另外PUT方法其自身是不带验证机制,也就是说任何人都可以上传提交数据,考虑到安全性,一般不推荐在上传文件时使用,在这一点上,DELETE方法是相同的,也是自身不带验证机制。

OPTIONS:查询支持的方法。OPTIONS方法用于查询服务器能做出响应的请求方法,其返回内容就是服务器端所支持的http请求方法,同时也允许客户端查看服务器性能,测试服务器功能是否能正常运作。

TRACE:追踪路径。TRACE方法用于回显服务器接收到的请求,测试或诊断。

CONNECT:连接代理。CONNECT方法一般用于SSL加密服务器的链接,要求用隧道协议连接代理。

3.2 Http响应

当服务器端接收到客户端发送的请求后,一般会返回一个http响应消息,其http响应消息 = 状态行 + 响应头 + 空行 + 响应报文。

其中,状态行信息为http版本、状态码、以及状态解释语句,比如:HTTP/1.1 206 Partial Content。本文将其中5类常用的响应状态码详细说明:
1开头表示提示信息——说明http请求已接收,在进行下一步处理

状态码 状态解释语句
100 继续(Continue)

2开头表示请求成功——说明http请求已被成功接收

状态码 状态解释语句
200 请求成功(OK)
204 服务器正确处理请求后没有报文实体要返回(No Content)
206 服务器正确处理部分请求后并返回相应的报文实体(Partial Content)

3开头表示重定向——说明完成http请求需要更进一步的操作处理

状态码 状态解释语句
301 永久转移到新的地址(Moved Permanetnly)
302 暂时转移到新的地址,不改变其内容(Found)
304 未修改(Not Modified)

4开头表示客户端错误——说明http请求无法实现或者有语法错误

状态码 状态解释语句
400 错误请求,发送的请求有语法错误(Bad Request)
401 访问页面未得到http认证授权(Unauthorized)
403 禁止访问(Forbidden)
404 未找到相关页面资源(Not Found)
408 服务器端等待客户端请求时间超时(Request Time-out)
414 请求URI太长(Request-URI Too Large)

5开头表示服务器端错误——说明服务器没能完成合法请求

状态码 状态解释语句
500 服务器内部有异常错误,无法完成请求(Internal Server Error)
501 未实现(Not Implemented)
503 服务器处于停机状态,不可用(Service Unavailable)

4 Http接口测试侧重点

基于http协议的接口,测试重点在于检查数据的交换、传递和控制管理过程,以及系统之间相互的逻辑依赖关系,所以测试接口时主要是通过工具或代码模拟http请求的发送与响应的接收。

根据API接口文档(接口说明、请求方法、调用URL、请求参数、参数类型、请求参数说明、返回参数说明以及返回示例),其测试检查重点在于:
(1)接口返回的数据与预期结果是否一致
(2)接口参数的边界值,传递的参数为负数或极值时是否可以处理
(3)接口的容错性,错误传输时是否可以处理
(4)接口的性能
(5)接口的安全性
(6)其它方面

若对大家有用,感谢点赞或评论;若有不足之处,也望大家评论进行指正或完善。相信这是互相进步的开始!

http接口测试:了解协议、请求方法、响应状态码相关推荐

  1. http(请求方法,状态码,Cookie与Session)

    文章目录 1.http中常见的Header(KV结构) 2.http请求方法 2.1请求方法 2.2 telnet 2.3网页根目录 2.3.1概念 2.3.2构建一个首页 2.4GET与POST方法 ...

  2. ABAP应用服务器的HTTP响应状态码(Status Code)

    最近Jerry参与了SAP Commerce Cloud的标准开发,我们调用微软云平台Azure上创建Lambda Function的Restful API来创建Lambda Function: 在开 ...

  3. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

  4. HTTP协议中request报文请求方法和状态响应码

    一个HTTP请求报文由4部分组成: 请求行(request line) 请求头部(header) 空行 请求数据 下图给出了请求报文的一般格式: 请求行中包括了请求方法,常见的请求方法有: GET:从 ...

  5. HTTP简介、请求方法与响应状态码

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Https相关的文章,请看这一篇:TCP.IP协议族之数字签名与HTTPS详解 接下来想系统的回顾 ...

  6. 02-HTTP的请求方法以及响应状态码

    1.   HTTP的请求方法以及响应状态码 1.1. 请求方法 http请求方法有GET.POST.PUT.HEAD.DELETE.OPTIONS.TRACE.CONNECT.当然上述方法是基于HTT ...

  7. HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头

    http://blog.csdn.net/qxs965266509/article/details/8082810 用于HTTP请求中的常用请求头字段 Accept:用于高速服务器,客户机支持的数据类 ...

  8. aria2百度网盘 http返回头无效_接口测试第10期:Fiddler中查看HTTP请求中的状态码...

    关注后回复[软件测试]查看更多上期介绍了常见的HTTP请求方法,get请求.post请求,今天介绍HTTP请求中的状态码,以后也能分辨出哪些状态码是表示客户端错误,哪些是服务器错误.状态码在Fiddl ...

  9. Ajax库-认识服务器,URL地址,axios基本用法,响应状态码,业务状态码,接口测试工具

    AjaxDay01 学习目标 1.理解客户端与服务器通信的过程 2.掌握 axios 的使用 3.了解接口文档的概念 服务器相关基础概念 概念:服务器是提供服务的设备(本质上就是一台电脑主机). 作用 ...

最新文章

  1. 怎么看电脑屏幕尺寸_经常面对电脑怎么护眼?电脑族怎么保养身体?
  2. Javascript面向对象编程(三):非构造函数的继承
  3. 如何与室友相处?2017-12-08
  4. php root 启动,php-fpm如何以root身份启动
  5. 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)
  6. 机器学习教会我们的六件事
  7. 什么是软件危机?产生原因?如何解决?
  8. test1 3-15 模拟赛1
  9. MATLAB求解非线性方程组
  10. hihocoder 1183 割点和割边
  11. e83服务器电源键位置,正文-新华三集团-H3C
  12. 解决QML Window 增加radius效果
  13. python中面向对象的ui_Python面向对象和图形用户界面(一)---- 面向对象
  14. oracle恢复几天前的数据,恢复oracle数据到以前的某个时间点
  15. 【基于Proteus 8 Professional和Keil uVision5简单共阴极数码管点亮】
  16. 任正非:一江春水向东流
  17. 分享10个超级实用的Python自动化脚本
  18. 联想服务器 操作系统,联想服务器的raid配置及Server2012操作系统的安装.pdf
  19. MATLAB中的乘除法 “ * ” 和 “ .* ” and “ / ” 和 “ ./ ”
  20. 环境变量之java环境变量

热门文章

  1. 计算机720p进制,历史频道《人类大历史 Big History》第1季全17集 英语中字 720P高清纪录片...
  2. 适用于程序员的钢琴、五线谱入门教程
  3. ElasticSearch的REST APIs 之 索引的别名(alias)管理
  4. 功夫茶篇∞潮州工夫茶:通古今之变
  5. arccatalog点要素显示不完_shp文件转为dwg之后在arcgis下打开属性表有高程信息但在cad里面打开为何没高程 - 地学 - 小木虫 - 学术 科研 互动社区...
  6. Mr.Alright---安卓N系统最近任务锁定功能实现
  7. 跨端融合!探索前沿科技无限可能,深圳腾讯2018TLC大会再度来袭,早鸟票最后一天...
  8. 【嵌入传播】Embedding Propagation: Smoother Manifold for Few-Shot Classification
  9. 天猫精灵python开发_天猫精灵X1智能音箱使用感想
  10. 正能量读后感_自我反思之路。