5分钟掌握接口自动化测试,4个知识点简单易学!

2023-11-10

一. 什么是接口测试

接口测试是一种软件测试方法,用于验证不同软件组件之间的通信接口是否按预期工作。在接口测试中,测试人员会发送请求并检查接收到的响应,以确保接口在不同场景下都能正常工作。

就工具而言,常见的测试工具有Jmeter、Postman等。但这类工具往往更是做接口调试,对于做自动化以及测试集成却不够理想,因此便有了接口测试脚本,Java、Python、GO等语言都能支持。

然而语言总归是要学习成本的,因此陆续开始有了各类测试平台。为什么做测试平台?即将接口测试工具与接口测试脚本结合起来,实现像测试工具做接口调试一样简单,同时也能更好的支撑场景化测试、持续集成测试。

二. 接口测试的要素有哪些

接口测试其实无外乎就是将请求发送出去并验证响应结果。我们常做的接口测试主要是HTTP协议,针对这类接口,其请求数据,主要构成是:请求方法,请求地址,请求头,请求参数。

请求方法即是常见的GET/POST/PUT/DELETE等,根据接口文档来维护即可,只是定义了不同的请求方式而已。

至于请求地址,在做自动化测试时,又可以拆分为请求域名和请求路由,一般来说不同的环境域名会产生变化,但是路由一般是固定的,因为我们在做测试集成时为保证一个接口请求能在多个环境下执行,会选择将域名提出来放在环境中管理,而每个接口对应的域名通常可以根据路由的值来匹配即可。当然在微服务架构中,我们也可以给每个接口打上微服务的标识,而同一个微服务的接口无论在任何环境下其域名应当是一致的。因此除了通过路由匹配,我们也可以通过微服务标识来匹配,我称之为域名标识。

此外,接口测试最重要的一点就是登录验证,通常会有四种方式。RestAPI最常见的是Session/Cookies和Token,OpenAPI一般是OAuth,最古老的鉴权则是HTTP Basic Authorization。对于Cookies和Token,一般我们都是通过放在请求头中发送出去,Session一般都是作为状态管理员来保存,通常编程语言的HTTP包会自带该方法,我们需要做的无外乎就是在登录后保存这个Session即可。至于OAuth,通常是需要加密成一个签名来做校验,我会在后面单独开一篇文章来介绍具体的使用。

对于请求数据,一般有三种方式,分别是:查询参数、路由参数以及请求体。查询参数即将参数转变为name=value的形式放在请求地址后面,以?号分隔多个参数中间加&符。路由参数往往是将参数值放在路由中,因此路由的值往往会是动态的,且路由数量也是不定的。至于请求体则比较好理解,一般常用的是表单和json串。当然古老的接口也有文本格式/XML格式等,另外就是文件上传的接口会是二进制流。

最最重要的一点就是,无论什么业务,接口测试一定要有断言,没有断言的接口测试用例就是在耍流氓。因此接口还有一个重大要素就是编写断言,断言的方式有很多,可以断言接口的响应数据,对于数据增删改的接口同样也可以去断言数据库的内容。

三. 如何用开源工具平台来做接口自动化测试

前面了解了接口自动化测试基本原理之后,我们用一款开源测试平台来快速的实现一个简单的接口自动化测试用例编写,接下来我们合并图文来介绍用法:

第一步:创建环境,如上所述,环境是接口测试用例为了能在多环境复用下不可缺少的一部分。环境创建完成后,还需要在环境下创建域名,域名匹配规则在上文介绍过,可以通过路由匹配和域名标识匹配。

新增环境

第二步:创建接口,我们在做自动化测试时,接口需要单独维护和管理,从而做到当接口发生变化时,只需要维护接口管理处的接口,所有引用该接口的用例都能随之变化,提升维护效率。在创建接口前,我们可以先创建接口所属的业务模块,同样的也方便后期快速找到接口。

而接口需要维护的数据也很简单,即前面所述的四大请求数据即可完成最基础的接口信息维护。当然为了后期记忆,我们最好还是给接口起个名字加个描述。同时,如果希望使用域名标识,则给接口绑定上一个微服务的标识即可。

新增接口

第三步:做好了接口维护,那就可以开始写接口用例了。接口用例其实不过是在接口上面再套一层壳罢了,之所以套上这层壳,主要目的还是为了做业务逻辑的验证,可能一个业务逻辑的验证需要执行多个接口,将多个接口加入到一个用例中,即可完成。如果多个接口之间数据有依赖关系,也可以通过一些关联参数的引用实现,这在后面的文章我会单独介绍。

新增用例

第四步:接口加进来后,直接调试。选择之前维护的环境执行即可。调试成功后,维护一下用例的基本信息,如给用例起个名字,写一段描述,点击保存,即完成一条接口自动化用例的编写。

调试用例

四. 总结

通过上述的几个步骤,不难看出,在使用平台后,完全可以抛弃代码编写接口测试脚本那一套方案,而且便捷程度不属于postman等工具。最大的好处是,用例保存服务端,我们可以任意编排用例去执行,从而验证不同的需求。只要用例数据设计得当,即便是换产品经理来验证,选好用例直接执行也能完成自动化测试。

最后: 可以在我的VX公众号:【自动化测试老司机】免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

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

5分钟掌握接口自动化测试,4个知识点简单易学! 的相关文章

随机推荐

  • python定时运行,多进程

    可以通过另开一条线程 去专门做这件事情 py2代码如下 如果是py3请自行调整下语法 coding utf8 import threading import time 真正要执行的函数 def t1 print ok 每隔10秒钟执行 de
  • 五大车载操作(VOS)系统优劣对比,车载系统架构分析-QNX系统性能分析

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 锋影 email 174176320 qq com 导读 车载操作
  • UART、TTL和RS232的区别

    UART TTL和RS232的区别 串行通信 UART TTL RS232 学习硬件的开始接触的就是串口 但是一直没搞懂UART TTL和RS232这些的关系 总感觉相互之间有所交叉 无法完全区分开 于是有了这篇博文 但是 这篇博文自我感觉
  • 分离轴定理(SAT):凸多边形相交检测

    引言 在计算机图形学 游戏开发 碰撞检测等领域 凸多边形相交检测是一个常见而重要的问题 为了快速准确地判断两个凸多边形是否相交 分离轴定理 Separating Axis Theorem 简称 SAT 成为了一种高效而可靠的算法 本文将深入
  • css里各个元素的书写顺序

    1 位置相关 position top left index float display 2 大小相关 width height margin padding 3 文字相关 font line height color letter spa
  • Python 怎么利用Python绘制二元高次隐函数的函数图像及其极值点——以某双核论文模型方程为例

    项目场景 几日前 在研究某双核期刊的某篇论文时 发现论文上的函数图像绘制得似乎有些不精确 原函数方程为 0 2045 y 2 3 4 y 3 2 x y 2 0 45 2 0 论文原文中函数图像如下图 问题描述 可以很明显地看出 极值点附近
  • Gof23设计模式之模板方法模式

    1 定义 定义一个操作中的算法骨架 而将算法的一些步骤延迟到子类中 使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤 2 结构 模板方法 Template Method 模式包含以下主要角色 抽象类 Abstract Clas
  • execjs随心所欲运行抠出来的js代码:报错什么都不是问题 execjs._exceptions.ProgramError: ReferenceError: $ is not defined

    起因 今天扣出一段js想用execjs执行 报错 未定义 也就是说execjs不能执行jquery 决定试试用nodejs来执行 execjs exceptions ProgramError ReferenceError is not de
  • Windows10 安装 Vue3

    一 安装Node js 官网下载Node js https nodejs org en download 下载完成后 双击 msi文件 将默认安装路径按照喜好修改 其余的设置默认即可 不需要勾选安装的附加选项 node v 二 更新Node
  • lattice

    lattice 在实际的语音识别系统中 最优路径不一定与实际字序列匹配 我们一般希望能够得到得分最靠前的多条候选路径 即N best 为了紧凑地保存候选路径 我们一般采用lattice 词图 来保存识别的候选序列 lattice本质上是一个
  • Ubuntu18.04上安装RTX 2080Ti显卡驱动

    文章目录 1 安装Linux系统 1 1下载Linux镜像文件 1 2 制作系统盘 1 3 安装Linux系统 1 4 配置linux系统 2 安装英伟达显卡驱动 2 1 预备工作 2 2 安装显卡驱动 3 安装cuda 4 安装cudnn
  • 代数余子式的几何意义,点积和叉乘的几何意义

    1 点乘的几何意义 a b c d e f ad be cf 结果是一个标量 也可以写为 a b a b cos 以下说明点乘的几何意义 就是一个向量在另一个单位向量 如果另一个向量是单位向量 上的投影长度 a b b a cos a b
  • thinkphp5.1开发app接口版本控制(路由设置)

    使用thinkphp5 1开发app接口进行版本控制 在index controller下创建v1和v2目录 v1下创建版本1的文件 如下图 在route route php中 如下图 v获取版本例如 v1 v2 下面第一个路由其实是 接口
  • 如何为服务网格选择入口网关_如果使用服务网格,是否需要API网关?

    如何为服务网格选择入口网关 这篇文章可能无法突破API网关和Service Mesh周围的噪音 但是 这是2020年 围绕这些主题仍然存在很多困惑 我选择编写此内容是为了帮助带来真正的具体解释 以帮助阐明差异 重叠之处以及何时使用它们 如果
  • 前缀树(字典树)应用——实现 Trie (前缀树)、添加与搜索单词

    目录 1 前缀树原理简介 2 实现前缀树 2 1 题目描述 2 2 题目分析 2 3 代码实现 3 添加与搜索单词 3 1 题目描述 3 2 题目分析 3 3 代码实现 4 总结 1 前缀树原理简介 先来简单介绍一下前缀树是什么 前缀树也叫
  • python--爬虫 爬取html和txt文件

    一 python爬取html文件 使用python爬取某网站首页并下载html文件 下面介绍两种方式 一种是urllib 另一种是requests 1 使用urllib import urllib request url http www
  • (十) web自动化测试-PO设计模式

    十 web自动化测试 PO设计模式 文章目录 十 web自动化测试 PO设计模式 前言 一 PageObject原则 1 使用方法代替页面的功能点 2 case中不要过多暴露页面的细节 3 po本身不进行断言 4 一个方法返回另一个页面 P
  • Python运算符中/和//的区别

    首先先看单斜杆的用法 举几个栗子 gt gt gt print 5 3 type 5 3 1
  • node-sass npm安装详解

    node sass npm安装详解 npm 安装 node sass 依赖时 会从 github com 上下载 node 文件 由于国内网络环境的问题 这个下载时间可能会很长 甚至导致超时失败 解决方案就是使用其他源 或者使用工具下载 然
  • 5分钟掌握接口自动化测试,4个知识点简单易学!

    一 什么是接口测试 接口测试是一种软件测试方法 用于验证不同软件组件之间的通信接口是否按预期工作 在接口测试中 测试人员会发送请求并检查接收到的响应 以确保接口在不同场景下都能正常工作 就工具而言 常见的测试工具有Jmeter Postma