接口测试基础

article/2025/10/21 20:24:32

持续更新…
标记

接口测试基础

  • 1. 接口测试概述
    • 1.1 生活中的接口和软件程序的接口
    • 1.2 接口测试的定义
    • 1.3 接口测试的范围和适用场景
  • 2. 接口测试必备条件
    • 2.1 接口测试的必要条件
    • 2.2 标准和规范的接口文档
    • 2.3 如何获取接口信息
  • 3. 接口测试必备的知识
    • 3.1 常见的接口传输协议和标准
    • 3.2 常见的接口测试工具
    • 3.3 常见的接口数据组织形式
    • 3.4 接口测试流程
  • 4. 接口测试用例设计
    • 4.1 用例设计方法
    • 4.2 接口测试用例模板
  • 5. HTTP协议
    • 5.1 HTTP协议基础
      • 5.1.1 HTTP和HTTPS协议定义
      • 5.1.2 HTTP协议的工作原理
      • 5.1.3 HTTP协议特性
      • 5.1.4 与HTTPS协议的关系
    • 5.2 HTTP请求及其结构
      • 5.2.1 HTTP请求的组成
      • 5.2.2 HTTP请求方法|URL
      • 5.2.3 HTTP请求头(Request Headers)
      • 5.2.4 HTTP请求体(Request Body)
    • 5.3 HTTP响应及其结构
      • 5.3.1 HTTP响应的组成
      • 5.3.2 HTTP响应头及其结构
      • 5.3.3 HTTP响应状态码
    • 5.4 查看客户端和服务端的数据交换


1. 接口测试概述

1.1 生活中的接口和软件程序的接口

生活中的接口
比如(插座,插头)、网线和USB的转接等。

软件程序的接口

软件接口就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。(而不是指传输的数据!!)
比如腾讯发布一个qq登录的接口(一个函数),别人拿到这个函数放到自己的网站代码里面运行,就可以通过这个函数把用户输入的账号密码传给腾讯服务器,服务器校验成功后就能让用户第三方登录QQ了。
软件中什么是接口?软件接口的具体定义

1.2 接口测试的定义

接口的定义

  • API(Application Program Interface)接口属于一种系统或程序的调用接口;
  • GUI(Graphic User Interface)接口属于一种图形界面的操作软件的系统;

尤其是API,有些公司会制定自己的系统接口标准,当需要执行系统整合、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码,该接口标准被称为开放式API。

接口测试

  • 接口测试是测试系统内部各个组件间接口,以及系统和外部系统之间的交互点;
  • 测试的主要内容:1.检查数据的交换,2.传递和控制管理过程,3.系统间的相互逻辑依赖关系;

接口测试是集成测试中非常常用的手段。

1.3 接口测试的范围和适用场景

接口测试的范围
在这里插入图片描述
接口测试的使用场景

1)一般应用于系统间交互开发;
2)适用于为其他系统提供服务的底层框架系统和中心服务系统;
3)适用于上一层系统中的服务层接口;
4)总之,平台越复杂,系统越庞大,接口测试的效果就越明显。

关于接口测试

  • 与界面功能测试相比:
    • 接口测试没有具体的页面;
    • 它是通过接口规范文档上的调用地址、请求参数、拼接请求信息;
    • 然后发送请求,检查返回结果;
    • 只需要测入参和出参就行。
  • 进行接口测试的好处:
    • 可以发现很多在页面上操作发现不了的bug;
    • 检查系统的异常处理能力;
    • 检查系统的安全性、稳定性;
    • 前端随便变、接口测好了,后端不用变。

2. 接口测试必备条件

2.1 接口测试的必要条件

1)接口说明
2)调用url(统一资源定位器)
3)请求方法(比如get/post等)
4)请求参数、参数类型、请求参数说明
5)返回参数说明

2.2 标准和规范的接口文档

  • V2EX API 整理
  • 百度翻译通用翻译API
  • 京东联盟开放平台
  • 支付宝支付API
  • 腾讯开放平台

2.3 如何获取接口信息

  • 标准的接口文档
  • 询问开发人员
  • 测试人员自己抓包获取数据和信息

3. 接口测试必备的知识

3.1 常见的接口传输协议和标准

常见的传输协议:

  • http(超文本传输协议)/https(超文本传输安全协议):是tcp/ip四层架构中应用层的协议;
  • ftp(文件传输协议)

数据的传输标准:

  • jdbc(java与数据库的连接标准)

3.2 常见的接口测试工具

  • Chrome
  • Firefox
  • Postman
  • JMeter
  • Fiddler(抓包工具,如果没有标准的接口文档,测试人员自己抓包获取数据和信息)

3.3 常见的接口数据组织形式

  • HTML(超文本标记语言)
  • JSON(轻量级的数据交换格式)
  • String
  • XML(可扩展标记语言):常用于传输和存储数据

3.4 接口测试流程

  1. 接口需求分析;
  2. 测试计划编写;
  3. 测试用例设计;
  4. 测试脚本开发;
  5. 测试执行;
  6. 发布测试结果。

4. 接口测试用例设计

4.1 用例设计方法

1)等价类划分、边界值分析(用于选取测试数据)
2)因果图法、判定表驱动法
3)正交试验法
4)场景法
5)功能图法
6)错误猜测法(类似探索性测试法)

4.2 接口测试用例模板

在这里插入图片描述
eg:
在这里插入图片描述

5. HTTP协议

网络体系结构:TCP/IP(传输控制协议/网际协议)、OSI/RM(开放式通信系统互联参考模型)

TCP/IP结构四层(应用领域广泛):网络接口层,网络层,传输层,应用层。
OSI/RM结构七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

传输层协议:TCP协议(传输控制协议),UDP协议(用户数据报协议)
应用层协议:HTTP(超文本传输协议)、HTTPS(超文本传输安全协议)、FTP(文件传输协议)、POP3(邮局协议版本3)、IMAP/SMTP(交互邮件访问协议/简单邮件传输协议)
常用协议的端口:http端口(80)、https端口(443)、ftp端口(21)、pop3端口(110)

5.1 HTTP协议基础

5.1.1 HTTP和HTTPS协议定义

HTTP定义
HTTP(Hyper Text Transfer Protocol,超文本传输协议)是从万维网(WWW(3W):World Wide Web)服务器传输超文本到本地浏览器的传送协议,HTTP是一个基于TCP/IP通信协议来传递数据的(eg:HTML文件,图片文件,查询结果等)。

HTTPS定义
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单说就是HTTP的安全版,HTTPS在HTTP的基础上加入了SSL,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。请添加图片描述

5.1.2 HTTP协议的工作原理

HTTP工作环境
HTTP工作与客户端/服务器(C/S)架构上;
1)浏览器作为HTTP客户端通过URL向HTTP服务器(即WEB服务器,常用的WEB服务器:Apache服务器、IIS(Internet Information Services)服务器,nginx服务器等)发送请求
2)Web服务器根据接收到的请求后,向客户端发送响应信息。

在这里插入图片描述

5.1.3 HTTP协议特性

HTTP的特点
1)无连接的(即请求和响应的双方可以不同时在线)
2)媒体独立的(传输过程中的数据和通信协议没有关系,即只要客户端和服务端能够识别数据,就能够进行传输,协议只是起到了媒介的作用)
3)无状态的:只要请求,就重新响应,不管之前响应了多少数据。(即频繁的刷新反而会带给浏览器负担)

5.1.4 与HTTPS协议的关系

HTTP和HTTPS的区别
1)HTTP是SSL加密的,HTTP不加密:HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费,HTTPS是具有安全性的SSL加密传输协议,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议,比HTTP协议安全;
2)端口不同:HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;

5.2 HTTP请求及其结构

5.2.1 HTTP请求的组成

HTTP协议的客户端发送一个HTTP请求到服务器的请求消息包括以下格式:1.请求行(request line)、2.请求头(header)、3.空行、4.请求数据四个部分组成。下
下图给出了请求报文的一般格式:
在这里插入图片描述

5.2.2 HTTP请求方法|URL

根据HTTP标准,HTTP请求可以使用多种请求方法:
1)HTTP1.0定义了三种请求方法:GET,POST和HEAD方法
2)HTTP1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法。

所以现在HTTP协议请求方法一共有8种:

序号方法描述
1GET请求指定的页面信息,并返回实体主体
2HEAD类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。
4PUT从客户端向服务器传送的数据取代指定的文档的内容
5DELETE请求服务器删除指定的页面
6CONNECTHTTP1.1中预留给能够将连接改为管道方式的代理服务器
7OPTIONS允许客户端查看服务器性能
8TRACE回显服务器收到的请求,主要用于测试或诊断

5.2.3 HTTP请求头(Request Headers)

请求头:用来说明服务器要使用的附加信息,比较重要的信息有Cookie、Referer、User-Agent等,部分常见的请求体字段如下:

  • Referer:包含一个URL,用户从该URL代表的页面除法访问当前请求的页面;
  • User-Agent:浏览器类型,如果Servlet返回的内容与浏览器的类型有关则该值非常有用;
  • Content-Length:表示请求消息正文的长度;
  • Cookie:是最重要的请求头信息之一;
  • Form:请求发送者的email地址,由一些特殊的web客户程序使用,浏览器不会使用到它;
  • Host:初始URL中的主机和窗口;
  • Accept-Language:浏览器希望的语言,当服务器能够提供一种以上的语言版本要用到;
  • Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中;
  • Content-Type:表示后面的文档属于什么MIME类型(媒体类型(通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型 )是一种标准,用来表示文档、文件或字节流的性质和格式),Servlet默认为text/plain,但通常需要显示地指定为text/html,由于经常要设置Content-Type,因此HttpServletResponse提供了一个专门的方法setContentType;

5.2.4 HTTP请求体(Request Body)

请求体:一般用于POST请求中,主要是向浏览器提交数据类型,而对于GET请求Request Body为空。

Content-Type提交数据方式
application/x-www-form-unrlencodedform表单提交
multipart/form-data表单文件上传提交
Content-Type提交数据方式
application/json序列化JSON数据提交
text/xmlXML数据提交

5.3 HTTP响应及其结构

5.3.1 HTTP响应的组成

HTTP响应由服务器返回,也由四个部分组成,分别是:1.状态行、2.消息报头、3.空行、4.响应正文
具体格式如下:
在这里插入图片描述

5.3.2 HTTP响应头及其结构

响应头说明
Allow服务器支持哪些请求方法(eg:GET、POST)
Content-Encoding文档编码(Encode)方法,只有在编码之后才可以得到Content-Type头指定的内容类型
Content-Length表示内容长度,只有当浏览器使用持久HTTP连接时才需要这个数据
Content-Type表示后面的文档属于什么MINE类型,Servlet默认为text/plain,但通常需要显式地指定为text/html,由于经常要设置Content-Type,因此HttpSevletResponse提供了一个专门的方法setContentType
Date当前的GMT时间,你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦
Expires应该在什么时候认为文档已经过期,从而不再缓存它?
WWW-Authenticate客户应该在Authorzation头中提供什么类型的授权信息。在包含401(Unauthorized)状态行的应答中这个头是必需的
Last-Modified文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个304(Not Modified)状态
Location表示客户应当到哪里去提取文档。Location通常不是直接设置的,而是通过HttpServletResponse的sendRedirect方法,该方法同时设置状态代码为302
Refresh即浏览器应该在多长时间之后刷新文档,以秒计。注意这里Refresh的意思是“N秒之后刷新本页面或访问指定页面”,而不是“每隔N秒刷新本页面或访问指定页面”
Server服务器名字,可由web服务器自己指定
Set-Cookie设置和页面相关联的Cookie

在这里插入图片描述
查看Cookie
在这里插入图片描述

5.3.3 HTTP响应状态码

当浏览器接受并显示网页前,此网页所在的服务器会返回包含HTTP状态码(HTTP Status Code)的信息头(server header)用以响应浏览器的请求。
在这里插入图片描述
在这里插入图片描述
HTTP响应状态分类

分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接受并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误

HTTP状态码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.4 查看客户端和服务端的数据交换

浏览器作为媒介,会将客户端和服务端进行数据沟通的所有情况完完整整的记录下来,从页面开始请求到请求完毕,Network会记录下来所有的数据交换内容,客户端和服务器端进行了哪些数据交换,它都会以实体的方式一一列出。
请添加图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/ORlXAYTp.shtml

相关文章

为什么人到了中年会喜欢上养花?养花能给人带来什么?

看到这个问题,我也来凑凑热闹,我快五十了,在去年以前对花我也只是欣赏,每次看到漂亮的花花草草也仅限于惊叹怎么会如此美丽,最多买点鲜切花回来插瓶,从来没有想过自己也会开始养花,后来因为朋友…

春-黄花开了......

春天又一次来到大地,春光明媚,百花盛开.其中,最抢眼的不过是一片一片的油菜花了,那金黄色的一片,看上去是那样的惹人注目. 不少人都拍了不少的油菜花PP,这里,我也来发一点有金黄色小花的PP,但它不是油菜花哟,是什么小草的花,我也不清楚.好了,大家欣赏欣赏图片吧!

春暖花开

今天是个晴朗的好天气,因计划去金牛湖风景区转转,早早地就爬了起来。 第一次做S8,感觉真不一样,地铁站点露天的较多,沿途欣赏了好多美丽景色,黄灿灿的油菜花,绿油油的麦田,羞答答的垂…

开在春天里的花

开在春天里的花 2008、04、07

很花的花

小时候听过一个故事,珍妮和她的七朵小花,但这次我发的这个花,一朵顶七朵啊! 这个花很花,使我见过的色彩最全面和到位的一个鲜花哦! 里面包括了整个颜色系,你说这是一个什么颜色的花啊&#xff1…

14年之花开不败

12年我正式进入提高班,直到现在应该是整整2年了吧。米老师说:现代是一个大数据时代。我理解的大数据时代,很简单:你一直都在做,知识、思想积累,这些东西都是数据,坚持的时间越长,数据…

忘掉种过的花

离职前百感交集的碎碎念 文章灵感来源于耳机里随机播到的《喜帖街》里第一句歌词。 “忘掉种过的花,重新的出发,放弃理想吧”。 忘掉种过的花 对我个人的职业生涯影响比较大的人有两位,其中之一是上家公司的HRBP。她在和我的离职沟通中对…

逐渐从土里长出来的小花

从土里逐渐长出来的小花&#xff08;这是长出来后的样子&#xff0c;图片压缩了出现了重影~&#xff09; 代码在这里&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title&g…

老师计算机组合照说说,和老师合影留念发朋友圈说说

老师和学生的留念照发朋友圈该怎么形容 &#xff0c; 1&#xff1a;希望老师越来越美&#xff0c;同学学习越来越好 合影留念的好句子 好花不常开好景不长在合影拍照片美好留下来 和一位老同学合影发朋友圈,说点什么好呢? 通过合影的内容来发朋友圈&#xff0c;自己怎么想的就…

好花不常开

csdn的FCKeditor为什么如此脆弱&#xff0c;刚写好的内容&#xff0c;设置一下格式&#xff0c;就弹出vs2005叫我调试&#xff0c;眼看着那好不易打的字&#xff0c;就这么没有了。 外边的破雨还在下个不停&#xff0c;越下越冷&#xff0c;看来明天打算去游泳的念头又可以打消…

如何利用Matlab对Comtrade99格式的故障录波文件进行数据读取

如何利用Matlab对Comtrade99格式的故障录波文件进行数据读取 近来看了几个采用Matlab对标准故障录波数据进行读取的例子&#xff0c;自己参照着动手实践了下&#xff0c;发现有些问题&#xff0c;现在记录下来以备大家参考。 图形用户界面&#xff08;Graphical User Interfac…

一带一路专题:农业、经济、地理距离、友好城市等七大维度面板数据

一、中国对一带一路沿线国家农产品进出口额 1、数据来源&#xff1a;UN comtrade数据库 2、时间跨度&#xff1a;2008-2020 3、区域范围&#xff1a;世界 4、指标说明&#xff1a; 数据中包含原始处理数据 部分数据如下&#xff1a; 二、一带一路人均GDP数据和经济自由度…

中国纺织业对“一带一路”沿线国家出口数据(含64个国家经纬度数据)

数据集名称&#xff1a;中国纺织业对“一带一路”沿线国家出口数据&#xff08;含64个国家经纬度数据&#xff09; 数据来源&#xff1a;联合国商品贸易统计数据库&#xff08;https://comtrade.un.org/data&#xff09; 相关说明&#xff1a;统计单位为亿美元。采用的是HS&a…

Market

Problem B. Market(market.c/cpp/pas) Input file: market.in Output file: market.out Time limit: 1 seconds Memory limit: 128 megabytes 在比特镇一共有n 家商店&#xff0c;编号依次为1 到n。每家商店只会卖一种物品&#xff0c;其中第i 家商店的物品 单价为ci&#xff0…

COMTRADE录波数据导入MATLAB分析的方法

各路大佬发表了很多用Python编程、MATLAB编程实现COMTRADE录波数据提取的方法&#xff0c;对我这种小白来说属实是看不懂&#xff08;也不想去看&#xff09;&#xff0c;只想怎么快点把数据提取出来做研究。 这里介绍一种极其简单的数据提取方法&#xff0c;简单到完全不需要编…

TraDeS解读

这篇TraDeS是MOT领域的新作&#xff0c;收录于CVPR2021&#xff0c;作者来自纽约州立大学等机构&#xff0c;在多个基准任务上均达到SOTA水平&#xff0c;包括2D跟踪、3D跟踪和分割级跟踪。 简介 大多数现有的online MOT方法的检测部分在整个网络中都是独立进行的&#xff0c;…

swing版电力系统故障录波comtrade文件离线分析软件

电力系统的故障录波comtrade格式的文件的分析软件&#xff0c;swing实现。 功能包括&#xff1a; 1、支持打开标志的电力系统故障录波comtrade格式文件。 2、可对波形进行横向放大缩小、纵向放大缩小和复原的功能&#xff1b; 3、可以向上、向下移动波形&#xff0c;以及叠加多…

python 联合国农产品数据分析

目录&#xff1a; 一、项目描述 二、项目环境 三、项目步骤 四、项目实现 4.1、创建一个需求文档存放需求文件&#xff0c;文件内包含本次项目的所有需求 4.2、新建一个配置文件config.py&#xff0c;用来存放配置条目&#xff0c;如农产品的种类、所查询的年份、进口国、…

[Python] 使用 UN Comtrade API 高效获取数据

本文最初写成于 2021 年 7 月&#xff0c;由于作者的拖延问题以致今天才得以和各位同学&#xff08;即便大概率是自说自话了&#xff09;见面&#xff0c;因此文中具体细节可能已经发生变化。 Cover Photo by Maksym Kaharlytskyi on Unsplash 使用 UN Comtrade API 批量下载数…

Python实现comtrade文件读取

最近在学习python&#xff0c;发现这个语言挺有意思&#xff0c;写起来比较轻松。后面打算用它代替matlab来做数据分析。写了一个comtrade格式录波文件的读取类。目前仅支持读取comtrade的binary格式文件。仅读取模拟量&#xff0c;不解析开关量。上comtrade类代码。 #!/usr/b…