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

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

一、接口测试是什么

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

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

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

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

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

因为没有图形界面,我们需要有某种方式把准备好的数据传给要测的接口。这一步通常需要借助工具。举个例子,如果目标接口是一个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 …

计数问题(数位DP)

题目大意:给定一个区间,求该区间内0 ~ 9出现的次数,多次询问,以0 0结束询问 测试用例: 输入: 1 10 44 497 346 542 1199 1748 1496 1403 1004 503 1714 190 1317 854 1976 494 1001 1960 0 0 输出&#xff…

CCF计算机软件能力认证考试—202209-1如此编码

题目背景 某次测验后,顿顿老师在黑板上留下了一串数字 23333 便飘然而去。凝望着这个神秘数字,小 P 同学不禁陷入了沉思…… 题目描述 已知某次测验包含 � 道单项选择题,其中第 � 题(1≤�≤&…

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

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

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

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

关于队列的简单理解

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

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

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

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

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

谨慎使用android.view.SurfaceView.setVisibility方法

谨慎使用android.view.SurfaceView.setVisibility方法 why? 原因就是此方法会导致native的内存暴增,前提条件你使用surfaceview去绘制一些复杂的3D图形,绘制复杂、业务复杂的场景; setVisibility方法会调用surfaceView的updateSurface,而此…

Python自动化——driver.switch_to的用法

driver.switch_to的用法 from selenium import webdriver driver webdriver.Chrome(/path/to/chromedriver) # Chrome driver.get(https://www.example.com) # 打开网页 element driver.find_element_by_id(element_id) # 查找元素记得在不需要使用 driver 时&#xff0c…

Android 使用aapt工具获取apk信息

aapt 工具的官网说明 https://developer.android.google.cn/studio/command-line/aapt2?hlzh_cn 功能有很多,本篇记录怎么使用aapt工具获取apk信息。 在 Aosp 源码下, 执行 source 、lunch 后,直接输入 aapt 就可以使用了。 不执行 sour…

CAPL接口

浮点和整形之间转换 interpretAsDword()//float转dword interpretAsFloat()//dword转float interpretAsQword()//double转qword interpretAsDouble()//gword转double常用字符串函数 strlen()//字符串长度 elCount()//数组的定义长度 strncat()//将源字符串拼接到到目的字符串…

日志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是一种存储在用户浏览器中的小型文本文件,由…

python import 顺序以及自动实现import 顺序更改

核心风格: import 语句的模块顺序 我们推荐所有的模块在 Python 模块的开头部分导入。 而且最好按照这样的顺序: 1. Python 标准库模块 2. Python 第三方模块 3. 应用程序自定义模块 Isort 自动整理 import 的超实用工具教程-CSDN博客 使用isort实现import的自动排序 1.安装…

基于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。 当启用电池放电模式&…