http接口测试:了解协议、请求方法、响应状态码
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接口测试:了解协议、请求方法、响应状态码相关推荐
- 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方法 ...
- ABAP应用服务器的HTTP响应状态码(Status Code)
最近Jerry参与了SAP Commerce Cloud的标准开发,我们调用微软云平台Azure上创建Lambda Function的Restful API来创建Lambda Function: 在开 ...
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...
- HTTP协议中request报文请求方法和状态响应码
一个HTTP请求报文由4部分组成: 请求行(request line) 请求头部(header) 空行 请求数据 下图给出了请求报文的一般格式: 请求行中包括了请求方法,常见的请求方法有: GET:从 ...
- HTTP简介、请求方法与响应状态码
点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Https相关的文章,请看这一篇:TCP.IP协议族之数字签名与HTTPS详解 接下来想系统的回顾 ...
- 02-HTTP的请求方法以及响应状态码
1. HTTP的请求方法以及响应状态码 1.1. 请求方法 http请求方法有GET.POST.PUT.HEAD.DELETE.OPTIONS.TRACE.CONNECT.当然上述方法是基于HTT ...
- HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头
http://blog.csdn.net/qxs965266509/article/details/8082810 用于HTTP请求中的常用请求头字段 Accept:用于高速服务器,客户机支持的数据类 ...
- aria2百度网盘 http返回头无效_接口测试第10期:Fiddler中查看HTTP请求中的状态码...
关注后回复[软件测试]查看更多上期介绍了常见的HTTP请求方法,get请求.post请求,今天介绍HTTP请求中的状态码,以后也能分辨出哪些状态码是表示客户端错误,哪些是服务器错误.状态码在Fiddl ...
- Ajax库-认识服务器,URL地址,axios基本用法,响应状态码,业务状态码,接口测试工具
AjaxDay01 学习目标 1.理解客户端与服务器通信的过程 2.掌握 axios 的使用 3.了解接口文档的概念 服务器相关基础概念 概念:服务器是提供服务的设备(本质上就是一台电脑主机). 作用 ...
最新文章
- 怎么看电脑屏幕尺寸_经常面对电脑怎么护眼?电脑族怎么保养身体?
- Javascript面向对象编程(三):非构造函数的继承
- 如何与室友相处?2017-12-08
- php root 启动,php-fpm如何以root身份启动
- 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)
- 机器学习教会我们的六件事
- 什么是软件危机?产生原因?如何解决?
- test1 3-15 模拟赛1
- MATLAB求解非线性方程组
- hihocoder 1183 割点和割边
- e83服务器电源键位置,正文-新华三集团-H3C
- 解决QML Window 增加radius效果
- python中面向对象的ui_Python面向对象和图形用户界面(一)---- 面向对象
- oracle恢复几天前的数据,恢复oracle数据到以前的某个时间点
- 【基于Proteus 8 Professional和Keil uVision5简单共阴极数码管点亮】
- 任正非:一江春水向东流
- 分享10个超级实用的Python自动化脚本
- 联想服务器 操作系统,联想服务器的raid配置及Server2012操作系统的安装.pdf
- MATLAB中的乘除法 “ * ” 和 “ .* ” and “ / ” 和 “ ./ ”
- 环境变量之java环境变量
热门文章
- 计算机720p进制,历史频道《人类大历史 Big History》第1季全17集 英语中字 720P高清纪录片...
- 适用于程序员的钢琴、五线谱入门教程
- ElasticSearch的REST APIs 之 索引的别名(alias)管理
- 功夫茶篇∞潮州工夫茶:通古今之变
- arccatalog点要素显示不完_shp文件转为dwg之后在arcgis下打开属性表有高程信息但在cad里面打开为何没高程 - 地学 - 小木虫 - 学术 科研 互动社区...
- Mr.Alright---安卓N系统最近任务锁定功能实现
- 跨端融合!探索前沿科技无限可能,深圳腾讯2018TLC大会再度来袭,早鸟票最后一天...
- 【嵌入传播】Embedding Propagation: Smoother Manifold for Few-Shot Classification
- 天猫精灵python开发_天猫精灵X1智能音箱使用感想
- 正能量读后感_自我反思之路。