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

news2024/12/21 14:39:17

一. 什么是接口测试

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

就工具而言,常见的测试工具有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自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/788593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录-108-背包问题

目录 前言思路3. 算法实现4. 算法坑点 前言 我在刷卡哥的“代码随想录”,自己的总结笔记均会放在“算法刷题-代码随想录”该专栏下。 代码随想录此题链接 思路 前提,当前的物品有i1个,编号为0~i,重量weight和价值value数组如下…

FreeRTOS(软件定时器)

一、什么是定时器 简单可以理解为闹钟,到达指定一段时间后,就会响铃。 STM32 芯片自带硬件定时器,精度较高,达到定时时间后会触发中断,也可以生成 PWM 、输入 捕获、输出比较,等等,功能强大&am…

springMVC--中文乱码处理(新思路--化繁为简)

文章目录 springMVC--中文乱码处理(新思路--化繁为简)编码过滤器自定义中文乱码过滤器举例应用实例1. 创建过滤器springmvc\src\com\web\filter\MyCharacterFilter.java实现思路 2. 配置web.xml完成测试 Spring MVC--过滤器处理中文修改web.xml完成测试 springMVC–中文乱码处理…

Go语言导入本地文件包

Go语言导入本地文件包 ​ 在Go程序中,每一个包通过称为**导入路径(import path)**的唯一字符串来标识。它们出现在import声明中, 一个导入路径标注一个目录,目录中包含构成包的一个或多个Go源文件。 举例:…

数据库应用:Redis主从复制、哨兵、cluster集群

目录 一、理论 1.Redis高可用 2.Redis主从复制 3.部署Redis主从复制 4.Redis哨兵模式 5.部署Redis哨兵模式 6.Redis集群模式 7.部署Redis集群 二、实验 1.部署Redis主从复制 2.部署Redis哨兵模式 3.部署Redis集群 三、问题 1.开启Redis群集失败 四、总结 一、理…

HTML5+CSS3+JS小实例:翻滚吧乔巴自定义滑块控件

实例:翻滚吧乔巴自定义滑块控件 技术栈:HTML+CSS+JS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" cont…

Docker 安装 Nacos

简介 Nacos 是一个轻量级的服务发现、配置管理和服务管理平台&#xff0c;它支持多种语言&#xff08;Java、Go、Node.js 等&#xff09;和多种协议&#xff08;HTTP、gRPC、DNS 等&#xff09;&#xff0c;能够帮助开发者构建微服务体系结构&#xff0c;简化了应用程序在不同…

入门前端监控

背景 前端监控是指通过一系列手段对Web页面或应用程序进行实时监控和数据采集&#xff0c;以了解页面或应用程序的性能状况、用户行为等等&#xff0c;并及时发现和解决潜在的问题。一个完整的前端监控平台可以包括&#xff1a;数据收集与上报、数据整理与存储、数据展示这里仅…

去重排序2——set

题目描述 输入 个正整数 ​ &#xff0c;按照从大到小的顺序输出不重复的数。 输入格式 第一行一个整数 n 。 第二行 个用空格隔开的正整数 ​ 。 输出格式 每行一个正整数&#xff0c;为从大到小排序后的不重复的数。 样例 #1 样例输入 #1 8 1 3 4 2 2 2 3 1样例输出 #1 4 3…

Linux Mint 21.2 “Victoria “现已可供下载

导读Linux Mint 21.2 “Victoria “发行版今天出现在该项目全球稳定镜像上&#xff0c;这意味着开发者将很快发布官方公告&#xff0c;通知想要下载最新Linux Mint版本的用户。 Linux Mint 21.2从2023年6月21日开始进行公开测试&#xff0c;这给了开发者足够的时间来修复剩余的…

redis(11):springboot中使用redis

1 创建springboot项目 2 创建pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:/…

同样是测试点工,他凭啥薪资比我高?

如果别人在功能测试方面薪资比你高那是因为做得比你好&#xff0c;别人功能测试做的比你好可能有以下几个原因&#xff1a; 测试策略和方法&#xff1a;别人可能采用了更有效的测试策略和方法&#xff0c;能够更全面地覆盖功能的各个方面。他们可能有更深入的测试计划和设计&a…

【云驻共创】CodeArts Repo ---高效代码协同开发之旅

目录 一、代码托管发展史 1.1 第一代 1.2 第二代 1.3 第三代 二、CodeArts Repo 介绍 二、CodeArts Repo 功能架构 2.1 研发协同 2.2 代码管理功能 2.3 代码存储特性 三、CodeArts Repo 技术能力 三、华为云代码托管技术发展历程 四、CodeAr…

《重构的时机和方法》一本值得程序员都认真读的书

写在前面 《重构的时机和方法》是一本关于软件开发中重构技术的书籍。它以独特的风格和内容优势&#xff0c;为读者提供了全面而易于理解的指导&#xff0c;帮助他们在实际项目中应用重构技术&#xff0c;提高代码质量和开发效率。这本书由两个不同风格的部分组成&#xff0c;…

前端面试题-浏览器相关

1 cookie和localSrorage、session、indexDB 的区别 从上表可以看到&#xff0c; cookie 已经不建议⽤于存储。如果没有⼤量数据存储需求的话&#xff0c;可以使⽤ localStorage 和 sessionStorage 。对于不怎么改变的数据尽量使⽤ localStorage 存储&#xff0c;否则可以⽤ se…

java项目之人事管理系统(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的人事管理系统。技术交流和部署相关看文章末尾&#xff01; 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&…

【力扣每日一题】2023.7.24 宝石与石头

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码运行结果&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一个字符串表示宝石的类型&#xff0c;再给我们一个字符串表示我们已经拥有的石头&#xff0c;问我们在石头中能找到多少宝…

一文助你快速提高嵌入式软件的代码质量【下】

一文助你快速提高嵌入式软件的代码质量 文章目录 一文助你快速提高嵌入式软件的代码质量&#x1f468;‍&#x1f3eb;前言1️⃣写直观的代码2️⃣写无懈可击的代码3️⃣正确处理错误4️⃣正确处理null指针5️⃣防止过度工程&#x1f647;文末小结 &#x1f468;‍&#x1f3eb…

Python 快速简单搭建HTTP本地服务器,内网通过浏览器访问

1 下载python https://www.python.org/downloads/ 2 安装python&#xff0c;安装时候选择把path加入电脑环境变量 3 由于python内建了简单http服务包&#xff0c;因此对于python来说&#xff0c;只需输入一行命令&#xff0c;就能轻松打开http服务。当然&#xff0c;要运行网页…

C++之栈和堆申请内存(一百六十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…