接口测试教程(一看就会)

2023-11-18

前言

掌握了http协议,就掌握了接口测试

笔者在网络上看过不少接口测试教程,一上来就开始讲怎么操作工具,而不告诉读者为什么要这么操作。读者可能照猫画虎成功了,也可能操作失败了但不知为何出错。

因此,本文作为接口测试的入门第一课首先会给大家了解到执行接口测试每一步操作的目的和原理,由此大家才能从理论到实践上掌握接口测试,并且熟练之后有自己的创造性发挥。

本文所用的接口测试工具为Apifox,请大家在往下读之前先安装注册好工具。

Apifox官方下载地址:http://www.apifox.cn

目录

  1. 接口测试测什么

  2. 接口测试的对象:服务器接口

  3. 服务器接口与前端通信的方式:http协议

  4. Apifox接口测试原理

  5. 用Apifox构建第一个接口请求

正文

接口测试测什么

接口测试主要是测试系统 组件间接口的一种测试,主要用于测试服务器与前端(web浏览器,APP)之间的数据交互接口。 测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。

前言

掌握了http协议,就掌握了接口测试

笔者在网络上看过不少接口测试教程,一上来就开始讲怎么操作工具,而不告诉读者下载地址:http://www.apifox.cn

x 由引文对接口测试的定义可得,接口测试的对象是服务器接口,接口测试的内容包括:接口参数检验,接口功能实现是否正确,接口异常情况容错处理。

接口测试的内容是《Apifox接口测试》系列教程后面的内容,本文主要讲解服务器接口,前端如何通过http协议与服务器通信,Apifox等接口测试工具如何实现接口测试。

接口测试的对象:服务器接口

API指的是一组预先定义好的函数,来让系统或外部的其他组件可以执行它内部实现的功能,但又无须访问源代码或者理解其内部逻辑。

在需求开发过程中,前后端分离开发,两端的研发人员会共同定义好接口,编写接口文档,此后的开发过程中需要遵循这份协议文档。

因此接口测试也是一种黑盒测试,测试人员需要根据接口文档来对服务器Api进行测试,来检测约定的功能是否正确实现,是否有对异常情况做容错处理。

而接口文档的编写是依据前后端数据传输的协议——Http协议进行的。

要会用接口文档,首先先理解http协议。

服务器接口与前端通信的方式:http协议

服务器和前端通过互相发送http报文完成数据交互。本小节将介绍如何创建http报文,以及如何理解报文的每一个部分,了解完就可以掌握接口测试的基础内容。

  • http报文的三个组成部分 http报文是一个格式化数据块。报文类型包括客户端请求,服务器响应。它们由3个部分组成:

    • 起始行(start line) 对报文进行描述

    • 首部块(header) 包含属性 Content-Type: Content-Length:

    • 主体(body) 包含文本或二进制数据,可以为空

  • 请求报文的格式

<method><request-URL><version>
<headers>
<entity-body>
  • 响应报文的格式

<version><status><reason-phrase>
<headers>
<entity-body>
  • 各个字段的含义如下:

方法(method):前端希望对服务器执行的操作,包含get,post,put,delete等方法;

方法 功能
GET 从服务器获取数据
POST 向服务器发送要处理的数据
HEAD 只从服务器获取文档的首部
DELETE 从服务器上删除数据
PUT 向服务器提交数据

请求url(request-URL):所请求资源路径,通过它可找到资源放置的位置。 格式类似于:https://www.apifox.cn/help/app/contact-us/

版本(version):报文所使用的http版本,格式类似于:HTTP/1.0

首部(headers):可以有0个或多个首部,常见的首部如下:

常见的首部

实体主体(entity-body):包含一个数据块,支持多种数据格式,如html页面,图片,视频,源代码等等。

状态码(status-code):描述请求结果,成功或者失败。

原因短语(reason-phrase):原因短语是状态码的可读版本,只对人类有意义。

这些字段初学者会觉得非常抽象难以理解和记忆,但当后面接触到api文档和用apifox做接口测试的时候,就会顿悟——api文档里的参数和方法,url的含义和接口测试界面每个空格要填什么,返回值代表什么含义。

请耐心继续往下读。

读懂API文档

对于测试人员,准备接口测试所需要的文档有产品需求文档+API文档。

需求文档用于梳理接口为何这么设计、是否合理;

针对单个接口,接口文档用于获取:接口描述,请求说明,返回说明。

以百度开放API,文字识别接口为例:我们想要使用它的文本识别功能,需要去调用它的接口,那么需要了解发起这个文本识别接口请求,每个字段需要填什么内容。

*注:Apifox的ApiHub中,收集了大量开放的API,初学者可选取某个api深入了解接口文档,或作为接口测试的练习物料,注意有些接口需要先获取使用权限。

Api Hub收集的开放API

Api Hub收集的开放API

Apifox接口测试原理

对于服务器来说,Apifox也是一个前端,只不过其他前端的接口请求由研发人员在代码里封装好,在特定条件下被触发发起请求,而Apifox中,接口请求由用户手动封装,手动发起。

Apifox界面

Apifox界面

看完Apifox接口测试的界面,读者想必能发现,整个界面就是让读者手动构建出一个http请求出来,上两节我们讲的抽象的http协议终于落了地。

因此一个最基础的http接口测试所需要做的步骤就是手动填写完成并发出一个http请求,校验参数

step1.选择请求方法->填写请求url->填写url参数->填写body参数和header参数(如果有)

step2.手动发送请求

step3.查看返回参数是否正常,是否符合接口文档的约定

用Apifox构建你第一个测试请求

在铺垫完上述那么多理论基础之后,大家终于可以开始上手使用apifox来做接口测试了。

练习1:用get请求获取html页面

step1:在apifox的新建接口tab输入“http://www.baidu.com”,请求方法选择GET,header参数,url参数,body参数均为空,接着点击send按钮。

step2:查看返回值,可以看到请求回来的数据是一个html页面,即百度首页,我们点击‘preview’按钮,可以看到一个完整的页面显示出来

点击preview tab

点击preview tab

练习2:获取百度开放API的acess_token,即获得使用api的授权

step1:查看百度开放api获取acess_token的接口文档,获取请求方法和请求参数

接口文档描述

step2:根据接口文档描述的,在apifox接口测试界面选择post方法,在params里填写3个请求参数, (client_id和client_secret需要创建应用后才能获得,没有可以先去创建)

填写请求参数

填写请求参数

step3:点击下方实际请求tab,可以看到apifox实际发出的接口请求形式 如下:

apifox发出实际请求

step4:查看返回参数可看到返回了我们需要的acess_token 字段:

练习完成。大家可以利用自己公司内部的接口文档/外部开放api继续进行练习巩固。

复习题

1.写出http协议请求报文和相应报文的格式,并说明每个字段的含义。

2.api文档有哪几部分组成,在接口测试中分别发挥什么作用

3.复述用Apifox做简单接口测试的步骤。

*《Apifox接口测试教程》系列教程连载中,敬请期待!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口测试教程(一看就会) 的相关文章

随机推荐

  • 前端面试题有哪些,有没有前端面试题库?

    全篇干货总结前端跳槽面试必备技能 如何看待面试 如何准备面试 注意事项有哪些 面试各环节考察的是什么 一面 考察基础知识 二面 考察能力广度和深度 三面 考察项目业务能力 终面 hr面 考察沟通能力 性格 潜力等等 一面的基础知识 在这分享
  • java定义一个周长类三角形_point类 三点的三角形的周长、面积 编程求解矩形和圆面积 java 三角形的定义...

    三角形的定义 1 先创建一个Point类 然后定义Trianglele类 在Trianglele类中定义三个Point的实体来表示一个三角形的三个点 再定义构造方法对这三个点进行初始化 然后定义两个方法求三角形的周长 面积 定义一个测试类
  • 算法:点与点之间欧式距离最小

    2017 03 10 问 知道一堆点 如何求出其中距离最近的一对 按欧式距离 除了暴力求解 还有没有其他的办法 这个算是最笨的办法 复杂度也比较高 我在另外一个博客里看到 他是用分治法的方式进行处理 而且也指出这个算法的难点在于如何将各种情
  • YOLO,VOC数据集标注格式解析

    YOLO数据集txt标注格式 0 0 160938 0 541667 0 120312 0 386111 分别指所标注内容的类别 归一化后的中心点x坐标 归一化后的中心点y坐标 归一化后的目标框宽度w 归一化后的目标况高度h 此处归一化指的
  • Fildder无法抓不到Firefox的包

    起因 Firefox这个浏览器对开发者太友好了 开发者工具看着很清爽 功能也很实用 就安装来用这个浏览器做项目测试 某次开发中发现某个请求有些问题 想用强大的Fiddler来看下前端到底是怎么发送的请求 问题来了 Fildder死活抓不到f
  • 什么是网络空间测绘?到底有什么作用?

    据X视新闻客户端报道 当地时间4月18日 谷歌地图服务开始以最大分辨率提供俄罗斯所有军事和战略设施的卫星图像 目前 包括各种洲际弹道D弹发射井 指挥所 秘密试验场等在内的俄战略要地均可以每像素约0 5米的分辨率查看 随后 谷歌公司已否认了
  • 前端UI框架整理

    1 TDesign 腾讯最近刚刚公开的一套UI框架 个人感觉不错 桌面与移动端都有 下面是官网介绍 TDesign 是什么 TDesign 是腾讯各业务团队在服务业务过程中沉淀的一套企业级设计体系 TDesign 具有统一的 设计价值观 一
  • BLAM跑自己的数据包无法显示全局点云地图解决(速腾聚创RS-LiDAR-16 雷达 )-SLAM不学无术小问题

    BLAM算法跑自己的数据包无法显示全局点云地图解决 适配速腾聚创RS LiDAR 16 雷达 提示 本文笔者使用环境Ubuntu18 04 ROS melodic版本 首先放一个效果链接 由b站up VladimirDuan上传 非官方 官
  • linux打不开摄像头,linux opencv打不开摄像头

    配置 ubuntu16 04 opencv3 4 罗技c270 webcam 摄像头我在windows上测试了是没问题的 但是到了linux嵌入式板子上就不行了 灯一直不亮 一开始我以后是opencv的版本问题 换了最新版本的opencv
  • LegalAI领域大规模预训练语言模型的整理、总结及介绍(持续更新ing…)

    诸神缄默不语 个人CSDN博文目录 文章目录 1 通用大规模预训练语言模型 2 对话模型 3 分句 4 文本分类 5 信息抽取 6 案例检索 7 文本摘要 1 通用大规模预训练语言模型 英语 LegalBERT 原始论文 2020 EMNL
  • art-template渲染分页模板

    环境 简单webpack环境 webpack config js const path require path const HtmlWebpackPlugin require html webpack plugin const VueLo
  • 前端对象的知识点

    认识对象 对象 object 是 键值对 的集合 表示属性和值的映射关系 JS中 大括号表示对象 var xiaoming 属性名 键名 key name 小明 age 12 sex 男 hobbies 足球 编程 对象的语法 k和v之间用
  • Linux下日志分析--Linux日志

    简介 我们在企业里面 当我们把服务器放到了互联网当中去了以后 我们的服务器就可能被入侵 这就需要服务器的运维人员定期的对企业的服务器做定期的入侵检测 排查服务器是否被入侵 下面将介绍入侵检测所用到的方法有 查看系统日志 查看异常流量 检查可
  • 【Python】插入sqlite数据库

    import sqlite3 from datetime import datetime conn sqlite3 connect data db print Opened database successfully for i in ra
  • QT 在静态函数中发送信号

    今天在使用QT官方提供的函数qInstallMessageHandler输出日志时 因为这个函数的参数需要传的是一个函数 当这个函数是成员函数的时候需要是一个静态函数 但同时当我又需要在这个静态函数中发送消息 这时候就出现问题了 在静态函数
  • ICL8038信号发生器 正弦波 方波 三角波 低频信号发生 波形发生 原理图和PCB

    ICL8038信号发生器 正弦波 方波 三角波 低频信号发生 波形发生 原理图和PCB 目录 ICL8038信号发生器 正弦波 方波 三角波 低频信号发生 波形发生 原理图和PCB 基本原理 芯片选型 原理图 3D PCB 具体讲解 模块原
  • 干货!影视剪辑高清视频素材如何下载?大神精选7大影视网站

    影视剪辑 高清素材这里都有 hi 您好 我是您们的老朋友 覃小龙 您可以称呼我为覃总 今天分享一个主题 干货 影视剪辑高清视频素材如何下载 大神精选10大影视网站 很多账号不想真人出镜 都会选择做影视剪辑 当然作为一名视频剪辑初学者 很多小
  • Cookie 和 Session、实现用户登录逻辑

    Cookie 和 Session 一 回忆 Cookie 二 理解会话机制 Session 三 Cookie 和 Session 的区别 四 核心方法 4 1 HttpServletRequest 类中的相关方法 4 2 HttpServl
  • linux下挂载img方法

    目的 在linux下挂载img文件 以实现对img文件的修改 fdisk lu arch live usb img You must set cylinders You can do this from the extra function
  • 接口测试教程(一看就会)

    前言 掌握了http协议 就掌握了接口测试 笔者在网络上看过不少接口测试教程 一上来就开始讲怎么操作工具 而不告诉读者为什么要这么操作 读者可能照猫画虎成功了 也可能操作失败了但不知为何出错 因此 本文作为接口测试的入门第一课首先会给大家了