揭秘接口测试的必备基础知识!

这一篇讲接口测试的基础,如果你还在做手工测试,你可以从这里开始入门,做接口测试是最容易的一种自动化测试。

一、接口测试是什么

首先要理解接口测试就是测接口,如图所示:

让我们以数据驱动的视角来看接口测试,接口测试就是按约定的格式(接口)给待测软件传入某种数据,之后检查接口给的返回值是否正确。

这个是不是和黑盒测试的流程一模一样呢?

确实接口测试就是这样,也是最简单的一种测试。唯一的问题是没有图形界面,不能通过点点点去测,而要使用一些其他方法。

二、手工做接口测试需要的工具

因为没有图形界面,我们需要有某种方式把准备好的数据传给要测的接口。这一步通常需要借助工具。举个例子,如果目标接口是一个http接口(可以参考w3cschool的web service教程来了解什么是http接口),那么在linux使用curl命令就可以去调用这个接口,把数据传给它了。

如果在windows上做接口测试,可以使用postman这个工具。

另外,抓包工具也是接口测试必备的,linux上可以tcpdump,windows可以fiddler或者charles,抓底层的包用wireshark。下面介绍下大体上怎么用这些工具,至于具体教程,还请善用搜索引擎自己找具体教程。

注意本文主要以http接口为例子来解释接口测试的基础,如果你要测的接口不是http接口,记住原理也是类似的。掌握原理之后,无非是换几个工具就能实现。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

三、手工接口测试的流程

首先我们看一下普通的黑盒手工web测试的流程:

这中间通过抓包,可以抓到我们要的数据,也就是浏览器给服务器传送的输入数据,和服务器向浏览器传送的返回值。

比如,用户登录时,输入数据是用户名密码,返回值是登录成功后生成的一个session id和cookie,以及“登录成功”这句提示信息。

然后抓下来的数据包怎样使用呢?

这个就是一个典型的手工接口测试的流程:

通过抓包或其他方法(比如看文档)准备好输入数据包,然后用发包的工具把数据发给服务端的接口,之后校验其返回值。

如果你不知道某个接口需要什么数据,可以看接口的设计文档或者联系相关的开发人员,一般会提供给你一个调用的例子,相信大家能在网上搜到相关的例子的,在这个基础篇里,就不展开讲了。

四、初步的自动化接口测试

以上,大家已经了解了手工做接口测试的流程。

那么下一步就是把一些接口测试编写成脚本,放在本地(自己电脑上),人工触发去批量得执行这些测试,并自动校验返回结果。

这里推荐一下使用的工具。

如果你是零基础的,推荐你用jmeter或soapUI,两者都不需要你具备任何代码功底就能用。

Jmeter:当前最流行的性能测试工具。没错,他也可以做接口测试。并且脚本可以在性能测试里重用。特点是开源,免费,有图形界面,可以录制。学习方法:主要靠看官网用户手册,内容非常全。有空我再写一盘jmeter学习指引。

SoapUI:一个很方便的接口测试工具,商业版有强大的功能。特点是图形界面强大,易用。其脚本也可以使用一些方式在性能测试中重用。学习方法主要看官网教程。

假如你有编程基础,可以考虑使用python+requests+pytest/robotframework来做接口测试。如果用了python+requests,那么性能测试方面可以用python+locust。也可以不用locust,只要你掌握了前面提过的数据驱动的思想,配合一些自动化框架开发基础,也一样可以把接口测试做到能在其他性能测试工具里重用,当然这个就复杂了,以后再说吧。用java的话,也有对应的工具链,还是那句话,请善用搜索引擎。

最后,即使你熟练地使用jmeter或soapUI做了接口测试,这仍然只是初步的。真正的自动化测试,肯定得和持续集成相结合,更大地解放人力。持续集成相关的基础文章也会稍后推出,希望能帮到大家。

END点赞关注不迷路!今天的分享就到此结束了~!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python网络爬虫环境的安装指南

网络爬虫是一种自动化的网页数据抓取技术,广泛用于数据挖掘、信息搜集和互联网研究等领域。Python作为一种强大的编程语言,拥有丰富的库支持网络爬虫的开发。本文将为你详细介绍如何在你的计算机上安装Python网络爬虫环境。 一、安装python开发环境 进…

常见的DOS命令、Java开发环境搭建、配置Path环境变量

目录 一、常见的DOS(Disk Operating System、磁盘操作系统)命令 二、Java开发环境搭建 1、什么是JDK、JRE 2、JDK版本选择 3、JDK的下载 三、配置Path环境变量 1、理解path环境变量 2、为什么配置path 3、如何配置 一、常见的DOS(Dis…

OCP Java17 SE Developers 复习题08

答案 答案 答案 A. This code is correct. Line 8 creates a lambda expression that checks whether the age is less than 5, making option A correct. Since there is only one parameter and it does not specify a type, the parentheses around the parameter are …

【上海大学《面向对象程序设计A》课程小项目报告】抽象向量类模板及其派生类

1 项目内容及要求 本项目通过设计一个抽象向量类模板,以及一个通用的向量类模板和一个字符串类作为其派生类,以满足各种应用场景中的数据存储和处理需求。 项目内容: 抽象向量类模板。派生向量类。派生字符串类。测试及异常处理。联合测试…

顶级资源!五个免费图标素材网站

图片太花哨了,纯文本太单调了?别忘了设计师的魔法武器——图标!图标材料是UI设计师不可缺少的一部分。优秀的图标设计不仅可以提高界面美感,还可以提高用户的互动体验,帮助用户更好地了解应用程序的功能和信息。在本文…

SpringBoot+SSM项目实战 苍穹外卖(3)

继续上一节的内容,本节完成菜品管理功能,包括公共字段自动填充、新增菜品、菜品分页查询、删除菜品、修改菜品。 目录 公共字段自动填充新增菜品文件上传实现新增菜品实现 useGeneratedKeys 菜品分页查询删除菜品修改菜品根据id查询菜品实现修改菜品实现…

【unity3D】Transform组件(如何访问和获取Transform组件)

💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的Transform组件 Transform组件 基础知识介绍三个成员变量常用属性扩展 Transform的相关查找方法静态方法 基础知识 介绍 在Unit…

在线网页视频提取工具哪个好用?建议收藏!

随着短视频的崛起,很多人都喜欢将视频下载到手机中慢慢观看,这样可以避免在线播放的卡顿问题,但是会遇到一个问题就是在线网页视频提取工具哪个好用,有的可以提取但是画质太差模糊,有的自带水印飞来飞去。今天小编给大…

【AXI死锁】

单主机单从机死锁 AXI4没有WID,所以比较严格,即写数据通道的数据必须严格的按照写地址通道的数据顺序传送,比如AW通道发送ADDR0,ADDR1,ADDR2三笔写操作,每个写操作burst length=2,那么W通道的顺序在AXI4协议的规定下必须为:WDATA0_0,WDATA0_1,WDATA1_0,WDATA1_1,WDATA2_0…

【3】PyQt文本和图片

1. 文本控件 文本控件是QLabel from PyQt5.QtWidgets import QWidget, QApplication, QLabel import sys# 1.创建应用程序 app QApplication(sys.argv)# 2.创建窗口 w QWidget()# 修改窗口标题 w.setWindowTitle(文本展示)# ---------------------------------------------…

从0开始学Spring、Springboot总结笔记(持续更新中~)

文章目录 一.基于SpringBoot进行Web开发入门1.IDEA编译器中创建springboot工程扩展:如何解决pom.xml文件中“找不到Maven插件”的问题? 2.Springboot项目如何编写请求类和请求方法并启动访问编写请求类和请求方法启动Springboot访问 一些学习资源参考 一…

超完整的mysql安装配置方法(包含idea和navicat连接mysql,并实现建表)

mysql安装配置方法 1、下载mysql2、解压到指定的安装目录3、配置初始化文件my.ini4、配置用户变量和系统变量5、初始化mysql6、安装mysql服务并启动修改密码7、使用idea连接mysql8、使用Navicat可视化工具连接mysql,并实现新建数据库,新建表 1、下载mysq…

pta模拟题(C语言7-26 整除光棍、7-27 稳赢、7-28 查验身份证、7-29 出生年、7-30 点赞)

7-26 整除光棍 这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x&#xff0…

CentOS增加虚拟内存 (Linux增加内存)

前言 因为囊中羞涩不敢言,所以内存只有2G,项目在运行的时候,占用的内存已经报表,所以有的时候就会出现宕机的情况发生,后面发现可以通过使用增加虚拟内存空间,来增加内存容量。 下面进入正题,讲…

APOLLO自动驾驶技术沙龙:未来已来,共创智能交通新时代

在这次Apollo会议上,我深刻地感受到了人工智能自动驾驶技术领域的最新进展和未来趋势。作为一名从事软件开发工作的人员,我深感荣幸能够参加这次盛会。 前言 本次活动是百度Apollo社区工程师齐聚首钢Park,带来现场实操与技术分享。主要围绕Ap…

B027-MySQL增强

目录 多表查询为什么要用多表查询?笛卡尔积和内连接消除笛卡尔积外键数据库内连接练习左连接查询和右连接查询等值连接out join自连接子查询 数据操作(DML)数据的插入数据的删除数据的修改 数据库的备份与恢复Dos命令行窗口导出Dos命令行窗口导入Navicat导出Navicat…

【问题总结】Docker环境下,将Nacos版本2.0.4升级到2.2.3,操作留档 以及 踩坑记录

前记,鉴于nacos暴露的验证鉴权bug(之前尝试解决但是没有完全解决!,需要对公司之前架构留下来的老版本nacos进行升级 参考资料: https://nacos.io/zh-cn/blog/announcement-token-secret-key.html https://nacos.io/…

C++-内联函数

目录 一.什么是内联函数 1.内联函数的概念 2.内联函数的定义 二.C中引入内联函数的原因 三.什么样的函数适合被声明为内联呢? 四.面试题 一.什么是内联函数 1.内联函数的概念 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开…

iptables入门

今天我的工作遇到了巡检网络配置的任务,这次巡检的主机都是运行十多年的机器,并不是新的firewalld,基本都是iptables,上学的时候以为这些都没人用,所以没有认真学习,现在需要用到了,所以写一篇文…

【Midjourney实战】| 新年礼盒元素设计

文章目录 1 初步提示词2 润色提示词3 提示词发散联想 这期实践任务,我们想去做一个新年礼盒的效果,最后我们想把不同元素拼在一起,方便后期进行新年的相关设计 1 初步提示词 提示词初步我们乍一想,肯定要包括主体元素礼盒 新年礼…