百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 博客教程 > 正文

接口测试基础知识点总结 接口测试的重点和流程

connygpt 2024-10-10 05:21 5 浏览

接口测试基础

一、接口测试基础介绍

1.1、什么是接口测试

接口测试是测试系统组件间接口的一种测试。

接口测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试属于功能测试,是通过接口文档上的调用地址、请求参数、拼接报文,然后发送请求,检查返回结果

1.2、接口测试的原理

模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程。

先看看当你在浏览器中输入地址,并看到Web页面的时候底层发生了什么:

· 浏览器根据输入把请求发送到服务器

· 服务器获取到请求以后生成响应文件,把响应文件发送给浏览器

· 浏览器解析响应,渲染数据生成Web页面的展示效果。

接口测试就是模拟客户端与服务器进行数据交换的过程,接口测试重在对数据报文交换逻辑的测试。

二、 HTTP和HTTPS详解

2.1,HTTP协议简介

HTTP(超文本传输协议)是基于TCP/IP的请求与响应模式的、无状态的、应用层的协议,是一个属于应用层的面向对象的协议。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。

2.2,HTTP协议的主要特点概括如下:// get.post,put,delete,
1.支持客户端/服务器模式。
2.简单快速:客户端向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST、PUT、DELETE。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户端的请求,客户端收到服务器响应,服务器收到客户端的应答后,即断开连接。采用这种方式可以节省传输时间。>> 应答后断开
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。》》 之前的请求带的内容还需要再次上传,每次请求都是新的一次

2.3,HTTP URL 的格式如下

每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。

URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。

也可认为由4部分组成:协议、主机、端口、路径

URL的一般语法格式为:

(带方括号[]的为可选项):

protocol :// hostname[:port] / path / [;parameters][?query]#fragment

http://host:8080/test?name=liu&age=21

http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用默认端口80;abs_path指定请求资源的URI(Web上任意的可用资源)。
HTTP有两种报文分别是请求报文和响应报文,让我们先来看看请求报文。

2.4.HTTP的请求报文

先来看看请求报文的一般格式:

通常来说一个HTTP请求报文由请求行、请求报头、空行、和请求数据4个部分组成。

请求行

请求行由请求方法,URL字段和HTTP协议的版本组成,格式如下:

其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。

HTTP请求方法有8种,分别是GET、POST、DELETE、PUT、HEAD、TRACE、CONNECT 、OPTIONS。其中PUT、DELETE、POST、GET分别对应着增删改查,对于移动开发最常用的就是POST和GET了。

1. GET:请求获取Request-URI所标识的资源

2. POST:在Request-URI所标识的资源后附加新的数据

3. HEAD:请求获取由Request-URI所标识的资源的响应消息报头

4. PUT: 请求服务器存储一个资源,并用Request-URI作为其标识

5. DELETE :请求服务器删除Request-URI所标识的资源

6. TRACE : 请求服务器回送收到的请求信息,主要用于测试或诊断

7. CONNECT: HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

8. OPTIONS :请求查询服务器的性能,或者查询与资源相关的选项和需求

例如我去访问CSDN博客地址请求行是:

请求报头

在请求行之后会有0个或者多个请求报头,每个请求报头都包含一个名字和一个值,它们之间用“:”分割。请求头部会以一个空行,发送回车符和换行符,通知服务器以下不会有请求头。

请求空行

起到隔离请求头和请求主体的作用

请求数据

请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合,与请求数据相关的最常用的请求头是Content-Type和Content-Length。

2.5.HTTP的响应报文

先来看看响应报文的一般格式:

HTTP的响应报文由状态行、响应报头、空行、响应正文组成。

状态行

1、状态行格式如下:


其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

· 100~199:指示信息,表示请求已接收,继续处理

· 200~299:请求成功,表示请求已被成功接收、理解、接受

· 300~399:重定向,要完成请求必须进行更进一步的操作

· 400~499:客户端错误,请求有语法错误或请求无法实现

· 500~599:服务器端错误,服务器未能实现合法的请求

常见的状态码如下:

· 200 OK:客户端请求成功

· 400 Bad Request:客户端请求有语法错误,不能被服务器所理解

· 401 Unauthorized:请求未经授权

· 403 Forbidden:服务器收到请求,但是拒绝提供服务

· 500 Internal Server Error:服务器发生不可预期的错误

· 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

例如访问CSDN博客地址响应的状态行是:

响应报头

用于服务器传递自身信息的响应,常见的响应报头:

· Location:用于重定向接受者到一个新的位置,常用在更换域名的时候

· Server:包含可服务器用来处理请求的系统信息,与User-Agent请求报头是相对应的

响应头部会以一个空行,发送回车符和换行符,通知客户端以下不会有响应头。

响应空行

起到隔离响应头和响应体的作用

响应报文

响应报文就是服务器返回给客户端的数据

Html格式

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" >

<title>HTML学习</title>

</head>

<body>

<h1>这是一个网页</h1>

</body>

</html>

Xml格式

<元素名 属性名=“属性值”/>

例:<Student ID=“S100”>

<Name>Tom</Name>

</Student>

-------------------------------------------------------------------

Json格式(键值对

){

“resultcode”: “200”

}

{

"result": [

{

"commodityId": 29,

"price": 278.68,

"saleNum": 813

}

],

"message": "查询成功",

"status": "0000"

}

2.6.应用举例

要想查看网页或者手机请求网络的请求报文和响应报文有很多种方法,这里推荐采用Fiddler,在后面课程中详尽介绍了如何使用Fiddler,在这里就不赘述了。
通过Fiddler抓取到的请求报文和响应报文

请求报文:

很容易看出访问的是博客地址http://blog.csdn.net/itachi85,请求的方法是GET,因为是GET方法所以并没有请求数据。

响应报文:


从请求报文的请求行来看,请求的方法是POST,请求地址为http://patientapi.shoujikanbing.com/api/common/getVersion,很显然是获取版本信息的接口。

请求报文:

响应报文:

响应报文的实体采用的编码格式为为gzip,所以在Fiddler软件中显示的是乱码。


2.7.HTTPS协议

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer,基于SSL的HTTP安全超文本传输协议)使用了HTTP协议,端口号是443。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

https://www.google.com/search?q=baidu&oq=baidu&aqs=chrome..69i57j69i60l3.1275j0j4&sourceid=chrome&ie=UTF-8

这个协议的最初研发由网景公司进行,提供了身份验证与加密通信方法,现在它被广泛用于互联网上安全敏感的通信。


TLS/SSL 原理

  HTTPS 协议的主要功能基本都依赖于 TLS/SSL 协议。

  TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,

其利用非对称加密实现身份认证和密钥协商,

对称加密算法采用协商的密钥对数据加密,

基于散列函数验证信息的完整性。


接口测试用例

接口测试流程

更多文档知识,关注评论后,私信我就可以免费获得资料哦!

相关推荐

3分钟让你的项目支持AI问答模块,完全开源!

hello,大家好,我是徐小夕。之前和大家分享了很多可视化,零代码和前端工程化的最佳实践,今天继续分享一下最近开源的Next-Admin的最新更新。最近对这个项目做了一些优化,并集成了大家比较关注...

干货|程序员的副业挂,12个平台分享

1、D2adminD2Admin是一个完全开源免费的企业中后台产品前端集成方案,使用最新的前端技术栈,小于60kb的本地首屏js加载,已经做好大部分项目前期准备工作,并且带有大量示例代码,助...

Github标星超200K,这10个可视化面板你知道几个

在Github上有很多开源免费的后台控制面板可以选择,但是哪些才是最好、最受欢迎的可视化控制面板呢?今天就和大家推荐Github上10个好看又流行的可视化面板:1.AdminLTEAdminLTE是...

开箱即用的炫酷中后台前端开源框架第二篇

#头条创作挑战赛#1、SoybeanAdmin(1)介绍:SoybeanAdmin是一个基于Vue3、Vite3、TypeScript、NaiveUI、Pinia和UnoCSS的清新优...

搭建React+AntDeign的开发环境和框架

搭建React+AntDeign的开发环境和框架随着前端技术的不断发展,React和AntDesign已经成为越来越多Web应用程序的首选开发框架。React是一个用于构建用户界面的JavaScrip...

基于.NET 5实现的开源通用权限管理平台

??大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!??今天小编推荐一款基于.NE...

StreamPark - 大数据流计算引擎

使用Docker完成StreamPark的部署??1.基于h2和docker-compose进行StreamPark部署wgethttps://raw.githubusercontent.com/a...

教你使用UmiJS框架开发React

1、什么是Umi.js?umi,中文可发音为乌米,是一个可插拔的企业级react应用框架。你可以将它简单地理解为一个专注性能的类next.js前端框架,并通过约定、自动生成和解析代码等方式来辅助...

简单在线流程图工具在用例设计中的运用

敏捷模式下,测试团队的用例逐渐简化以适应快速的发版节奏,大家很早就开始运用思维导图工具比如xmind来编写测试方法、测试点。如今不少已经不少利用开源的思维导图组件(如百度脑图...)来构建测试测试...

【开源分享】神奇的大数据实时平台框架,让Flink&amp;Spark开发更简单

这是一个神奇的框架,让Flink|Spark开发更简单,一站式大数据实时平台!他就是StreamX!什么是StreamX大数据技术如今发展的如火如荼,已经呈现百花齐放欣欣向荣的景象,实时处理流域...

聊聊规则引擎的调研及实现全过程

摘要本期主要以规则引擎业务实现为例,陈述在陌生业务前如何进行业务深入、调研、技术选型、设计及实现全过程分析,如果你对规则引擎不感冒、也可以从中了解一些抽象实现过程。诉求从硬件采集到的数据提供的形式多种...

【开源推荐】Diboot 2.0.5 发布,自动化开发助理

一、前言Diboot2.0.5版本已于近日发布,在此次发布中,我们新增了file-starter组件,完善了iam-starter组件,对core核心进行了相关优化,让devtools也支持对IAM...

微软推出Copilot Actions,使用人工智能自动执行重复性任务

IT之家11月19日消息,微软在今天举办的Ignite大会上宣布了一系列新功能,旨在进一步提升Microsoft365Copilot的智能化水平。其中最引人注目的是Copilot...

Electron 使用Selenium和WebDriver

本节我们来学习如何在Electron下使用Selenium和WebDriver。SeleniumSelenium是ThoughtWorks提供的一个强大的基于浏览器的开源自动化测试工具...

Quick &#39;n Easy Web Builder 11.1.0设计和构建功能齐全的网页的工具

一个实用而有效的应用程序,能够让您轻松构建、创建和设计个人的HTML网站。Quick'nEasyWebBuilder是一款全面且轻巧的软件,为用户提供了一种简单的方式来创建、编辑...