新手小白如何做好接口测试!

news2025/2/3 3:10:37

测试行业中,大多数人接触的都是所谓的功能测试,也就是人为操作设备的输入输出,在这样的一个模式下,实际上有很多的细节的逻辑并无法覆盖到,虽然表面看似没有问题,但经常会发生所谓的不可重现错误、异常错误、出现错乱的数据、甚至被外界攻击的现象。从另一个角度说这样测试仅仅满足了基本功能需求,但实际上系统非常的脆弱,如果系统用于内部且有监管机制,那么没有人敢去恶意操作,但是如果放在互联网中,那就像没有保护的小鸡一样,轻松被老鹰叼走。

测试的初衷本身就不是单单验证需求的正确性,还有另一个很重要的部分,也就是证明程序是有错误的,为了更好的防止可能造成损失的情况发生,引入接口测试,让测试的细节、准确度、深度产生质的变化。

有人会说,功能测试后不是应该引入自动化测试和安全测试吗,这个话题我们在文章后面慢慢说。

简单介绍一下什么是接口测试:

接口测试,正如其名,测试的主要对象是接口,是测试系统组件间接口的一种测试方法,主要用于检测外部系统与被测系统之间以及内部各系统之间的交互点,其中会包括数据的交互、传递、关系等等。实际上接口测试也是功能测试中的一个环节,只是对于测试新手常常是忽略的状态。其实说到这里,懂的人自然懂,不懂的人还是不知道接口是什么,继续往下看。

接口实际上是无处不在的,要解决接口这个抽象的概念,首先分离两个大概念,第一种是代码内部所谓的接口,代码A与代码B在组合的时候,必然需要定义一些名称以及参数、类型,这种在测试中一般划分在白盒测试中,也算是集成测试阶段,需要与开发有类似的代码知识才能上手。而另一种接口,是系统与系统之间,通过网络数据的传递进行交互,此类测试属于黑盒层面,也就是看不到代码,但可以通过各种手段将网络数据发送到接口从而得到接口的响应信息,达到测试的目标。第一种接口很抽象,或者可以算是完全代码层面的东西,作为测试很少会接触,至少目前是这样,所以这里我们主要阐述第二种黑盒层面通过网络交互方式的接口,因为无处不在,即使你现在还在做最简单的功能测试。

只要你测试的不是单机软件,就离不开接口,就算是网页从服务器上读一张图,实际上也是通过HTTP接口地址去获取图片文件,然后再界面上显示,只是这种类型的静态文件接口没有逻辑,确保图片地址和文件是匹配的即可。但程序动态接口则不一样,会涉及到各种各样的参数,即使同一个接口,也会因为接口传递的参数内容不同、用户不同、权限不同等等出现不一样的情况。接口、参数就是一种程序的输入,而接口返回的信息就是一种程序的输出,其实这也类似于在界面输入测试用例一样,但在接口中,用例的数量会大大提升,因为不受界面文本输入限制、不受选择内容限制,甚至还有很多界面上你根本看不到的东西。输入项内容多了,自然用例也会复杂很多,除了满足需求以外,还要根据接口的数据交互设计定制用例和预期结果,好的用例无非更能发现有深度的问题。

接口测试的方法有很多,比较常见的是通过一些接口测试工具来实现接口数据的传递,也有编写代码来实现数据传递,以上都是可以在没有客户端界面的情况下做的,但需要对接口的实现比较熟悉。另外其实还有别的方式,比如在网络中将接口数据调包修改,或者以修改客户端的方式达到某些目的,且非常真实有效,最终达到测试的目的,找出程序的错误。

至于自动化测试,实际上这个对质量本身是没有影响的,机器没有人类的AI,想让机器发现错误,必然是已经发现过的错误了,那么主要目的是回归测试,将重复的成本机器化来降低成本,并不能去发现更多的问题,甚至发现不了问题,如果使用频率低,制作、维护成本大于人工直接操作,这就需要考虑该不该做了。

安全测试,相信刚入测试行业的人都对安全测试是一种渴望,但其高大上无法触及。实际上大部分的安全都是利用接口层面来实现的,只是用例带有一定特殊性,但千万别想着把那些用例放在界面上输入,那是完全无效的。想攻击?不通过接口怎么把恶意数据发到位呢,这就是渗透测试。当然安全测试还不止这些,但从接口层面实现的至少有一半以上。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

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

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

相关文章

美创「新一代数据安全管理平台」力揽CSA两项殊荣

12月21日,第七届云安全联盟大中华区(简称:CSA大中华区)大会在深圳隆重召开,本次大会以“云融未来,安全内在”为主题,邀请学者和产业专家们共同探讨云计算在人工智能、数据安全、算力网络等领域的…

opencv入门到精通——图像上的算术运算

目录 目标 图像加法 图像融合 按位运算 目标 学习图像的几种算术运算,例如加法,减法,按位运算等。 您将学习以下功能:cv.add,cv.addWeighted等。 图像加法 您可以通过OpenCV函数cv.add()或仅通过numpy操作res …

C++之深拷贝进阶

目录 拷贝构造函数的深拷贝进阶版本 赋值运算符重载的深拷贝进阶 总结 上期我们学习了C中深拷贝的传统版本,今天我们将学习更为高效的版本。 拷贝构造函数的深拷贝进阶版本 传统版本代码如下: string(string& s):_str(new char[strlen(s._str) …

[Linux] MySQL数据表(数据结构)管理

一、数据库 1.1 数据库的基本概念 数据库(database)是用来组织、存储和管理数据的仓库 数据库管理系统(DBMS):是实现对数据有效组织,管理和存取的系统软件。 数据的建立和维护功能,数据定义…

互联网加竞赛 python图像检索系统设计与实现

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python图像检索系统设计与实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖&#xff0c…

『番外篇五』SwiftUI 进阶之如何动态获取任意视图的 tag 和 id 值

概览 在某些场景下,我们需要用代码动态去探查 SwiftUI 视图的信息。比如任意视图的 id 或 tag 值: 如上图所示:我们通过动态探查技术在运行时将 SwiftUI 特定视图的 tag 和 id 值显示在了屏幕上。 这是如何做到的呢? 在本篇博文,您将学到如下内容: 概览1. “如意如意,…

四种常见的代码覆盖率测试

您听说过“代码覆盖率”吗?在这篇文章中,我们将探讨什么是测试中的代码覆盖率,以及四种衡量它的常用方法。 什么是代码覆盖率 代码覆盖率是衡量测试代码测试了源代码百分比多少的指标。它可以帮助您识别可能缺乏适当测试的代码区域。 通常…

【JVM】一、认识JVM

文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的分类6、JVM的生命周期 1、虚拟机 虚拟机,Virtual Machine,一台虚拟的计算机,用来执行虚拟计算机指令。分为: 系统虚拟机:如VMware&am…

Oracle:JDBC链接Oracle的DEMO

1、引入jar包: 2、DEMO: package jdbc;import java.sql.*;public class OracleConnectionExample {public static void main(String[] args) throws SQLException {Connection conn null;PreparedStatement statement null;try {// Register JDBC dri…

FreeRTOS之二值信号量(实践)

信号量相当于一个标志,实现对资源多少的管理。 比如停车场空位的数量。 这里使用的是二值信号量,其队列长度为1,只有空或满两种状态。 1、步骤: 1.1、创建信号量 1.2、释放信号量 1.3、获取信号量 注:若想深入还…

c语言:文件操作(2),认识各种文件操作函数

fgets 作用 fgets是C语言标准库中用于从文件中读取字符串的函数。 fgets函数从指定的文件流stream中读取最多n-1个字符,或者直到遇到换行符(包括换行符在内),并将其存储到以str指向的字符数组中。读取的字符串会以null字符\0结…

Win系统修改Nginx配置结合内网穿透实现远程访问多个Web站点

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

初级数据结构(七)——二叉树

文中代码源文件已上传&#xff1a;数据结构源码 <-上一篇 初级数据结构&#xff08;六&#xff09;——堆 | NULL 下一篇-> 1、写在前面 二叉树的基本概念在《初级数据结构&#xff08;五&#xff09;——树和二叉树的概念》中已经介绍得足够详细了。上一…

听GPT 讲Rust源代码--src/tools(21)

File: rust/src/tools/miri/src/shims/x86/mod.rs 在Rust的源代码中&#xff0c;rust/src/tools/miri/src/shims/x86/mod.rs文件的作用是为对x86平台的处理提供支持。它包含一些用于模拟硬件操作的shim函数和相关的类型定义。 具体来说&#xff0c;该文件中的函数是通过使用一组…

Python如何生成随机图形验证码

python生成随机图形验证码 使用python生成随机图片验证码,需要使用pillow模块 1.安装pillow模块 pip install pillow 2.pillow模块的基本使用 1.创建图片 from PIL import Image #定义使用Image类实例化一个长为400px,宽为400px,基于RGB的(255,255,255)颜色的图片 img1Ima…

Halcon 检测焊点短路

Halcon 检测焊点短路 read_image (Image1, D:/image/bilibili/photo/检测焊接短路 (4).bmp) dev_close_window () dev_open_window (0, 0, 512, 512, black, WindowHandle) dev_display (Image1) set_display_font (WindowHandle, 16, mono, true, false) threshold (Image1, …

modbus_tcp的实现 through python.

0.引言 当前科技似乎处于加速发展期&#xff0c;各个模块都在快速迭代&#xff0c;迭代的速度会让既有的一些经验产生问题&#xff0c;在用python实现modbus_tcp协议时&#xff0c;网上流传的一些代码中import语句会出现问题。导致pymodbus模块用起来很不好用。 这个原因出在…

集合工具类Collections

概述 java.utils.Collections:是集合工具类 作用&#xff1a;Collections并不属于集合&#xff0c;是用来操作集合的工具类。 Collections常用的API Collections排序相关API 使用范围&#xff1a;只能对于List集合的排序。 排序方式1&#xff1a; 注意&#xff1a;本方式…

23 在HST场景中,考虑物理层相关技术

文章目录 实验参数A&#xff1a;解调参考信号(DMRS)1 DMRS分配图2 实验结果图figur3figur4 3. 实验结论 B 映射资源元素。1 映射图2 实验结果图figure 6figure 7 3. 实验结论figure8 3 补充结论 C μ1 实验结果图&#xff1a;figure 9figure 10 2 结论 实验参数 注释&#xff1…

数据结构和算法-红黑树(定义 性质 查找 插入 删除)

文章目录 红黑树的定义和性质为什么要发明红黑树&#xff1f;红黑树怎么考总览红黑树的定义实例&#xff1a;一颗红黑树练习&#xff1a;是否符合红黑树的要求一种可能的出题思路补充概念&#xff1a;节点黑高 红黑树的性质 红黑树的查找红黑树的插入实例小结与黑高相关的理论 …