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

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

一、接口测试是什么

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

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

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

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

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

因为没有图形界面,我们需要有某种方式把准备好的数据传给要测的接口。这一步通常需要借助工具。举个例子,如果目标接口是一个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点赞关注不迷路!今天的分享就到此结束了~!

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

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

相关文章

AI生成视频-Pika

背景介绍 Pika 是一个使用 AI 生成和编辑视频的平台。它致力于通过 AI 技术使视频制作变得简单和无障碍。 Pika 1.0 是 Pika 的一个重大产品升级,包含了一个新的 AI 模型,可以在各种风格下生成和编辑视频,如 3D 动画,动漫,卡通和电影风格。…

亚马逊云科技向量数据库与生成式AI的完美融合:落地实践详解(四)

以往 OpenSearch 摄入时的一些最佳实践中并不包含 knn 的情况,所以在 knn 索引存在的情况,不能完全参照之前的结论,通过以上三种不同的实验方式,在多次实验的过程中,本文得到了以下的一些实践经验和结论,供…

java中 list.size() = 1 但显示 All elements are null

一、问题描述 serve层定义一个对象集合接收mybatis返回的结果,查询结果为空,但是接收集合对象长度却为1,集合内部显示All elements are null;导致在直接调用list集合中一些方法时导致报错java.lang.NullPointerException: null …

字符函数,字符串函数(C语言)

字符函数,字符串函数是C语言中非常重要的函数族,它们在日常的编程过程中被广泛使用。它们不仅能够大大提高我们的编程效率,还可以为我们提供更灵活、更高效的操作方法。在本篇博客中,我们将一起深入了解这二类函数的基本概念和使用…

在外包待了6年,技术退步太明显......

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

关于队列的简单理解

1.队列(Queue) 1.1 关于队列 队列 :只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表, 队列具有先进先出 FIFO(First In First Out)的操作特性(队列是个接口); 入队列&#x…

外包干了2个月,技术倒退2年。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

图书馆智能密集书架怎么用的

图书馆智能密集书架是一种高密度存储书籍的设备,通过机器控制和操作,实现了对书籍的高效存储和检索。使用专久智能智能密集书架的方法如下: 1.先进行授权认证,确认身份和权限,进行操作前要确保权限正确,以免…

日志JavaAgent-NoClassDefFoundError

一、引言 组内最近做了一个日志公共组件,用的是javaagent的方式,之前搞的maven jar包每次都要把所有系统都发一遍,太麻烦。 javaagent通过Java虚拟机(JVM)的Instrumentation API来实现代码的侵入。通过Instrumentation…

GNN Maximum Flow Problem (From Shusen Wang)

Maximum Flow Problem ShusenWang 图数据结构和算法课程笔记 Slides Maximum Flow Problem Description Naive Algorithm Residual Capacity - FlowLeft: Original GraphRight: Residual Graph - Bottleneck capacity 2- Iteration 2:- Find an augmenting path: s -&g…

HTTP会话技术---Cookie、Session和Token介绍及它们在JavaWeb中的使用

当涉及到Web应用程序的身份验证和状态管理时,我们通常会使用到Cookie、Session和Token这些会话技术。下面是对它们的介绍,并在JavaWeb中的示例 Cookie(HTTP Cookie) Cookie是一种存储在用户浏览器中的小型文本文件,由…

基于Springboot的在线问卷调查系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的在线问卷调查系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring…

1-4节电池升降压充电IC解决方案

描述 MP2760是一款集成窄电压DC(NVDC)电源路径管理功能和USB On-the-Go(OTG)功能的升降压充电IC,兼容USB PD,适用于单节至4节串联的电池包应用。该芯片的充电输入电压范围广,可支持最高22V。 当启用电池放电模式&…

深入学习Synchronized各种使用方法

文章目录 前言一、synchronized关键字通用在下面四个地方:1.1synchronized修饰实例方法1.2synchronized修饰静态方法:1.3synchronized修饰实例方法的代码块1.4synchronized修饰静态方法的代码块2.读入数据 二.Sychronized关键特性2.1互斥2.2 刷新内存2.3…

CentOS 7 虚拟机java项目部署tomcat

首先安装java环境 下载安装包:jdk-19_linux-x64_bin.tar.gz_免费高速下载|百度网盘-分享无限制 (baidu.com) 将安装包上传到虚拟机 解压 tar zxvf jdk-19_linux-x64_bin.tar.gz 移动文件到 mv jdk-19.0.1 /usr/jdk-19.0.1 编辑配置文件 vim /etc/profile export JAVA…

解决cad找不到msvcr100.dll的有效方法,完美修复dll问题

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是由于找不到msvcr100.dll文件而导致CAD软件无法正常运行的情况,系统无法找到所需的动态链接库文件。但是通过一些简单的解决方法,我们可以快速解决这个问题并继续我们的…

【动态规划】LeetCode-62.不同路径

🎈算法那些事专栏说明:这是一个记录刷题日常的专栏,每个文章标题前都会写明这道题使用的算法。专栏每日计划至少更新1道题目,在这立下Flag🚩 🏠个人主页:Jammingpro 📕专栏链接&…

HNU-计算机网络-讨论课2

第二次 有关网络智能、安全以及未来网络的讨论 一、必选问题(每组自由选择N个,保证组内每人负责1个) 网络的发展促进信息的传播,极大提高了人类的感知能力,整个世界都被纳入人类的感知范围。但人们对信息系统以及数据…

手持式安卓主板_PDA安卓板_智能手持终端方案

手持式安卓主板方案是一种智能终端设备,具备自动对焦和闪光灯功能,可以在昏暗的环境下快速扫描二维码并轻松采集数据。该方案还提供多渠道支付和数据采集功能,为用户提供了便捷的体验。 该方案的产品基于手持式安卓主板,并搭载了八…

C/C++,图算法——求强联通的Tarjan算法之源程序

1 文本格式 #include <bits/stdc.h> using namespace std; const int maxn 1e4 5; const int maxk 5005; int n, k; int id[maxn][5]; char s[maxn][5][5], ans[maxk]; bool vis[maxn]; struct Edge { int v, nxt; } e[maxn * 100]; int head[maxn], tot 1; vo…