搬运工让你分分钟了解Web接口测试

01、什么是接口

百度说:接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式

上面这句有点抽象,网上的资料也是一大把,来自某个大佬的通俗解释:

  • 设计概念的接口
    就是一系列约定,这种约定既可以是行为的约定,也可以是外观的约定(比如国标插头和美标插头具有相同的行为约定和不同的外观约定)。
  • 编程语言层面的接口
    是为了实现设计要求而产生的,接口可以是方法、属性、事件、索引器的任意组合。

从程序方面来说,接口习惯别叫做API(application programming interface),可大致分为程序接口和协议接口两类,见文章https://www.cnblogs.com/fanjq/p/7835438.html,

  • 程序接口
    (也可以看作是程序模块接口,具体到程序中一般就是提供了输入输出的类、方法或函数,一般需要使用与开发程序接口相同的语言)
  • 协议接口
    (一般是指系统通过不同的协议提供的接口,这种类型的接口对底层代码做了封装,通过协议的方式对外提供调用,不受语言的限制)
发展至今包括:
①、操作系统接口
②、web接口
③、应用程序接口
④、数据库接口
...

它们可能本质差别不大,姑且这么分个类,我们这里着重讲Web接口

02、什么是接口测试

接口测试是测试系统组件间接口的一种测试;接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点;测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

接口测试也是一种完整的测试体系,也分为接口功能测试、接口性能测试、接口稳定性测试、接口安全性测试。类比功能测试,有个通俗的解释:接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求

借鉴上面的文章,常见的web接口:

  • webService接口:
    是用soap协议包装后用http运输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等。
  • http api接口:
    直接用http协议运输,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等。

web应用中,客服端需要与服务端通信,也就是前端和后端通信,都是通过接口交互;根据是否是外部接口,web接口测试可分两类:服务端接口测试和外部接口测试。

03、接口测试的重要性

在软件开发生命周期中发現缺陷越早,那么修正缺陷的代价就越小,所以应更早的介入测试,而接口测试就是一种及早介入的方式。

为什么做了功能测试还要做接口测试,上面两篇文章说得很清楚:

  • 不依赖前端页面,可以发现很多在页面上操作发现不了的bug
  • 检查系统的异常处理能力
  • 检查系统的安全性、稳定性
  • 前端随便变,接口测好了,后端不用变
  • 一般能集成自动化,能提高测试效率,用于冒烟测试和回归测试

当然由于接口测试的特殊性,需要依赖一些测试工具或代码模拟http请求的发送和接收,对测试人员的要求更高。

04、如何做接口测试

接口测试也属于功能测试,每个公司的流程或侧重点可能不同。

第一种轻量级测试方案

1、分析出测试需求,并拿到开发提供的接口说明文档;

2、从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点;

3、和开发一起对接口测试案例进行评审;

4、结合开发库,准备接口测试案例中的入参和出参数据,整理成测试用例;

5、执行测试用例,反馈接口测试结果。

第二种类似功能测试流程

(接口文档 —> 接口测试计划 —> 接口测试用例 —> 接口测试执行 —> 接口测试报告):

1、接口文档

类似于需求文档,由项目组长制定相关接口规范,开发人员一起更改维护,其中应该包括接口说明、方法、uri(请求地址,url是uri的子集)、请求参数、返回参数。

2、接口测试计划

类似于测试计划,5w原则,包括测试目的,测试方案,测试范围,测试资源安排,进度安排,风险控制等。

3、接口测试用例

测试用例设计,根据接口文档,主要对请求参数进行分析,包括通过性测试用例,多业务场景测试用例等。

4、接口测试执行

执行接口测试用例,就是对接口进行请求,验证返回参数,可能还需要准备测试数据。

5、接口测试报告

及时反馈测试结果,如阻塞的测试,未通过的测试等。

05、接口自动化测试

做接口测试后可以顺便集成接口自动化,那么项目适合开展自动化吗?

  • 需求稳定,不会频繁变更
  • 多平台运行,组合遍历型、大量的重复任务
  • 软件维护周期长,有生命力
  • 被测系统开发较为规范,可测试性强(如果接口文档都没有,你知道的。。。)
  • 人力资源足够

接口自动化测试适用场景:

  • 开发自测,冒烟测试:
    一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。
  • 回归测试:
    开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,提高测试效率。

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

线程池,及7大参数,4大拒绝策略详解

线程池,及7大参数,4大拒绝策略详解 1. 前言 1.1 什么是线程池? 线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。我们可以创建线程池来复用…

Upload-Labs-Linux

打开后看到了一堆题目,试着做做吧! 一 上传一句话木马,告诉我们不能传带这些后缀的文件 传个图片马试试 发现传上去了,抓包修改一下 复制图片地址 验证一下,然后拿去蚁剑去连接 回到根目录下就看到flag了

在vscode下将ipynb文件转成markdown(.md文件)的方法

这里写自定义目录标题 写在最前面安装nbconvert工具vscode界面 or cmd终端 写在最前面 正常情况下,可以在vscode的ipynb界面点击上面的三个点,里面有export导出,可以选择直接输出html和pdf 但是没有markdown(.md文件)…

30个Python小游戏,小白练手,我都能玩一天【内附源码】

给大家带来30个 Python 小游戏,一定要收藏! 文末获取完整代码 有手就行 1、吃金币 import os import cfg import sys import pygame import random from modules import *游戏初始化 def initGame():# 初始化pygame, 设置展示窗口pygame.init()screen…

解决方案:Mac 安装 pip

python3 --version 通过以下命令来下载pip: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py curl命令允许您指定一个直接下载链接。使用-o选项来设置下载文件的名称。 通过运行以下命令安装下载的包: python3 get-pip.py

102.套接字-Socket网络编程4(TCP通信流程)

目录 TCP编程流程 套接字函数 1.创建套接字 2.绑定地址 3.监听连接请求 4.接受连接 5. 连接到服务器 6. 发送数据 7. 接收数据 8.关闭套接字 服务器端通信流程 示例代码 客户端通信流程 代码示例 TCP编程流程 TCP是一个面向连接的,安全的,流…

深入学习Synchronized各种使用方法

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

从零开始学习 JS APL(二):完整指南和实例解析

大家好!这里是关于JS APL第二部分的知识点和笔记以及练习题 目录 大家好!这里是关于JS APL第二部分的知识点和笔记以及练习题 我们分以下几点来说: 1、事件监听(绑定): 目标:能够给 DOM元素…

js实现AES加密解密,简易又全面

常规是直接安装CryptoJS库,但为了减少项目体积,使用这简单的20k文件就ok 一览: 代码中使用的是Pkcs7,但我需要的填充方式是ZeroPadding 所以稍微有修改: q (p.pad {}).ZeroPadding {pad: function (data, blockSi…

文献速递:多模态影像组学文献分享(基于多模式超声的临床放射学诺莫图,用于预测实质性低回声乳腺病变的恶性风险)

文献速递:多模态影像组学文献分享:(基于多模式超声的临床放射学诺莫图,用于预测实质性低回声乳腺病变的恶性风险) 01 文献速递介绍 作为世界上最常见的癌症,乳腺癌对人们的健康和生存构成了严重威胁(1)。鉴于其高转…

Linux cgroup技术

cgroup 全称是 control group,顾名思义,它是用来做“控制”的。控制什么东西呢?当然是资源的使用了。 cgroup 定义了下面的一系列子系统,每个子系统用于控制某一类资源。 CPU 子系统,主要限制进程的 CPU 使用率。cpu…

DFT(离散傅里叶变换)的通俗理解

本文包含了博主对离散傅里叶变换,负频率,实信号与复信号频谱的理解,如有不妥,欢迎各位批评指正与讨论。 文章目录 DFT的理解信号的频谱实信号的频谱复信号的频谱 DFT的理解 傅里叶变换是一种将信号从时域转换到频域的数学工具。…

通过pipeline配置sonar自动化实现过程解析

这篇文章主要介绍了通过pipeline配置sonar自动化实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.sonar配置webhooks, 2.url填写jenkins的地址:http://jenkinsurl/sonarqu…

CRC(循环冗余校验)直接计算和查表法

文章目录 CRC概述CRC名词解释宽度 (WIDTH)多项式 (POLY)初始值 (INIT)结果异或值 (XOROUT)输入数据反转(REFIN)输出数据反转(REFOUT) CRC手算过程模二加减&am…

1_控制系统总体结构

1、总体结构 控制系统结构图: 黑色块为参数、黄色块为计算模块 1.1 其中参数含义 车辆属性参数: 参数含义 C α f C_{\alpha f} Cαf​自行车模型总轮胎侧偏刚度(前轮) C α r C_{\alpha r} Cαr​自行车模型总轮胎侧偏刚度&a…

Android wifi disable分析

总体流程 老套路基本不变: WifiSettings 通过 WifiManager 下cmd 给 WifiServiceWifiService 收到cmd后,先完成一部分列行检查(如UID的权限、是否airPlayMode等等),之后将cmd下发给到WifiControllerWifiController 收…

云原生的 CI/CD 框架tekton - Trigger(二)

上一篇为大家详细介绍了tekton - pipeline,由于里面涉及到的概念比较多,因此需要好好消化下。同样,今天在特别为大家分享下tekton - Trigger以及案例演示,希望可以给大家提供一种思路哈。 文章目录 1. Tekton Trigger2. 工作流程3…

Learning Memory-guided Normality for Anomaly Detection 论文阅读

Learning Memory-guided Normality for Anomaly Detection 摘要1.介绍2.相关工作3.方法3.1网络架构3.1.1 Encoder and decoder3.1.2 Memory 3.2. Training loss3.3. Abnormality score 4.实验5.总结总结&代码复现: 文章信息: 发表于:cvpr…

忽略python运行出现的大量警告

添加以下代码即可 import warnings warnings.filterwarnings(ignore)

python-ATM机

编写程序,实现一个具有开户、查询、取款、存款、转账、锁定、解锁、退出功能的银行管理系统。 结果展示 1.Main主方法 from zzjmxy.class7.atm import ATM from zzjmxy.class7.manager import Manager # 主面板,实现主要逻辑if __name__"__main__…