接口测试及接口相关(API、HTTP、JSON)

一.接口测试相关

1.什么是接口测试

  • 接口测试,是对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理的过程,以及相互逻辑依赖关系

1.接口测试原理

  • 测试人员借助工具模拟客户端向服务器端发送请求报文,服务器端接收请求报文后,对相应的报文做出处理并向客户端返回应答,工具模拟客户端接收应答,然后测试人员检查应答是否准确,这就是接口测试的原理。

二、接口相关

1.什么是接口

  • 两个不同的系统或者一个系统中两个不同的功能,它们之间相互连接的部分称为接口。
  • 在软件测试中,常说的接口一般有两种:图形用户接口(GraphicalUserInterface,GUI),它是人与程序的接口;应用程序编程接口(ApplicationProgramming
    Interface, API),这里提到的接口特指API。

2.API

  • 应用程序编程接口(Application Programming Interface,API)
  • API是一组定义、程序及协议的集合,API可实现计算机软件之间的相互通信
  • API的一个主要功能是提供通用功能集。程序员通过使用API函数开发应用程序,从而可以避免编写无用程序,减轻编程任务。
  • 是近年来最流行的技术之一,强大的Web应用程序和领先的移动应用程序都离不开后端强大的API

3.HTTP

  • HTTP(HypertextTransferProtocol)协议,即超文本传输协议。所谓协议是指计算机网络中进行数据交换而建立的规则、标准或约定的集合。

  • 作为万维网上应用最广泛的协议,HTTP协议的发展是万维网协会 (World Wide Web
    Consortium)和Internet工作小组 IETF (Internet Engineering Task
    Force)合作的结果,最终发布了一系列的 RFC,RFC 1945定义了 HTTP/1.0版本,其中最著名的就是RFC 2616。

  • RFC 2616定义了今天普遍使用的一个版本:HTTP 1.1。

1.HTTP协议的主要特点

  • (1)简单:
    • 客户向服务器请求服务时,只需传送请求方法和路径。
    •请求方法常用的有GET、HEAD、POST,每种方法规定了客户与服务器联系的不同类型。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

  • (2)灵活:
    •HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
    •它的请求-响应模式为:客户端每次向服务器发起一个请求时都建立一个连接,服务器处理完客户的请求即断开连接。

  • (3)无状态:
    •HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

  • (4)无连接 不会记住上次的连接,只需要每次输入URL

  • (5)支持客户端/浏览器模式

2.端口号

HTTP的默认端口是80, HTTPS的默认端口号为443

3.HTTP工作原理

  • ①HTTP是基于传输层的TCP协议,而TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信

  • ②HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需所谓的“三次握手”。

  • ③在TCP三次握手之后,建立了TCP连接,此时HTTP就可以进行传输了
    • 客户端浏览器向服务端发起一个TCP连接请求,状态为SYN;
    •然后服务端向客户端浏览器做出回应,并要求确认,Seq=0, Ack=l;
    •客户端浏览器收到信息后,同样做出回应,并确认,此时Seq=l, Ack=l,TCP三次握手成功;
    •客户端浏览器向服务端发起一个HTTP页面请求,访问“/”根节点;

3.1请求和响应
3.1.1请求

包含4个部分,分别是统一资源定位符(URL)、方法(Method)、头 (Headers)、体 (Body) 。

3.1.1.1统一资源定位符(Uniform Resource Locator,URL)
  • 是用于完整地描述互联网上网页和其他资源地址的一种标识方法。

  • 是互联网上标准资源的地址,HTTP使用

  • URL来建立连接和传输数据 URL的一般形式为“< 协议 >://< 主机/域名 >:< 端口 >/< 路径 >/< 文件名 >”?[参数名称1=参数值1&参数名称2=参数值2&…]
    ?前之前表示资源,服务器解析该部分找到资源
    ?后表示用户如何操作资源,如何和资源交互
    在这里插入图片描述

3.1.1.2方法(Method)

HTTP与服务器交互的方法:

  • 基本方法:GET、POST、PUT、DELETE;
  • HTTP请求还包含PATCH、COPY、HEAD、OPTIONS、LINK、UNLINK、PURGE、LOCK、UNLOCK、PROPFIND、VIEW方法

GET方法和POST方法有什么区别:
(1)提交数据的方式不同
• GET:请求的数据会附在URL之后
• POST:把提交的数据放置在HTTP包的请求体中
(2)传输数据的大小不同
• GET:特定浏览器和服务器对URL的长度有限制
• POST:此方式由于不是通过URL传值,理论上数据不受限制
(3)安全性不同。
POST方式比GET方式的安全性更高

3.1.1.3头 (Headers) 体 (Body)

HTTP报文是面向文本的,报文中的每一个字段都是ASCIIS串,各个字的长度是不确定的。

3.1.1.4HTTP请求报文组成

由请求行、请求头、请求正文组成, 请求报文的一般格式如下。

• <request-line> 请求行
• <headers> 请求头
• <blank line> 空行
• [<request-body>] 请求正文
  • 请求行:请求行写法是固定的,由3部分组成,第一部分是请求方法,第二部分是请求网址,第 3部分是HTTP版本。
  • 请求头:从第二行开始到请求头的结束,通常也称为头域。
  • 空行:请求头和请求正文之间有空行,表示请求头的结束
  • 请求正文/请求体:POST请求有,GET请求无(在url中)

请求报文如下图:
在这里插入图片描述
一些常见的请求头(头域):

头域说明
HOST指定请求资源的Internet主机和端口号
User-Agent标识请求者的一些信息,如什么浏览器类型和版本、操作系统等
Accept用于指定客户端接受哪些类型的响应内容,也是能够在客户浏览器中直接打开的格式
Accept-Language是指客户端的操作系统语言
Accept-Encoding指客户端所能接受的编码规则或格式规范
Referer可以理解为请求来源,即当前地址的上一个依赖地址
Connection表示当client和server通信时对于长链接如何进行处理
3.1.2响应

将HTTP请求发送到服务器后,服务器会给出相应的应答,服务器返回的应答消息称为HTTP响应

3.1.2.1HTTP响应报文组成
  • 由3部分组成,分别为状态行、应答头/消息报头和响应正文。
HTTP响应的格式与请求的格式十分类似,具体格式如下:
• <status-line> 状态行
• <headers> 应答头/消息报头/响应头
• <blank line> 空行
• [<response-body>] 响应正文

状态行:

  • ①状态行格式为:服务器HTTP的版本+空格+服务器返回的响应状态代码;
  • ②状态行通过提一个状态码来说明所请求的资源情况。
    常见状态代码和状态描述:
    • 1 x x:指不信息,表示请求已接收,继续处理。
    • 2 x x:成功,表示请求已被成功接收、理解和接受。
    • 3 x x :重定向,要完成请求必须进行更进一步的操作。
    • 4 x x:客户端错误,请求有语法错误或请求无法实现。
    • 5 x x :服务器错误,服务器未能实现合法的请求。
    • 200 OK :客户端请求成功。
    • 400 Bad Request :客户端请求有语法错误,不能被服务器所理解。
    • 401 Unauthorized :请求未经授权。
    • 403 Forbidden :服务器收到请求,但是拒绝提供服务。
    • 404 Not Found :请求资源不存在,如输入了错误的URL。
    • 500 Internal Server Error :服务器发生不可预期的错误。
    • 503ServerUnavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

应答头/消息报头/响应头:
一些注意的头域:

头域说明
Content-Encoding: gzip表示返回的内容经过了 gzip压缩技术
Content-Length: 17716表示返回的正文长度,确保页面传输的内容正确。

空行:
位于响应头和响应正文之间,表示响应头的结束

响应报文如下图:
在这里插入图片描述

4.JSON

  • JS对象标记(JavaScript Object Notation,JSON)是一种轻量级的数据交换格式。它基于ECMAScript(W3C制定的JavaScript规范),釆用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言,其易于阅读和编写,同时也易于机器解析和生成,并能有效地提升网络传输效率。因此,HTTP接口响应一般为JSON格式。
  • JSON语法规则
    JSON语法规则包括用大括号保存对象、用键值对表示对象、用逗号分隔每个对象、用中括号保存数组。
JSON示例:
 { “name”:“storm” , “age”:”32” , “sex”:“male”}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值