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

news2024/11/29 0:46:05

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、接口自动化测试

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

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

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

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

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

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

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

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

相关文章

跨语种「AI同传」颠覆语音翻译!Meta谷歌连发重大突破

Meta谷歌接连放出重磅成果!Meta开源无缝交流语音翻译模型,谷歌放出无监督语音翻译重大突破Translation 3。 就在Meta AI成立10周年之际,研究团队重磅开源了在语音翻译领域的突破性进展——「无缝交流」(Seamless Communication&a…

python中的输入输出

文章目录 输入函数input()例子1.如何输入获得两个字符串?(若输入abc def或abc,def)2.如何输入获得两个整数?(若输入34,567)3.如何输入后获得一个元素均为数值型的列表?(若输入12,3.4,567或[12,3.4,567]) 输出输出函数print()pr…

第十六届山东省职业院校技能大赛 中职组网络建设与运维赛项样题

第十六届山东省职业院校技能大赛 中职组网络建设与运维赛项样题 赛题说明 一、竞赛项目简介 “网络建设与运维”竞赛共分为以下三个模块: > 网络理论测试: > 网络建设与调试; > 服务搭建与运维。 模块 比赛时长 分值 模块一 网络…

【恋上数据结构】二叉堆学习笔记

二叉堆 需求分析 Top K 问题 什么是 Top K 问题? 从海量数据中找出前 K 个数据。 比如:从 100 万个整数中找出最大的 100 个整数Top K 问题的解法之一:可以用数据结构 “堆” 来解决。 堆 堆是一种【完全二叉树】,可以分为【…

Hadoop学习笔记(HDP)-Part.07 安装MySQL

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

手动创建spring bean并注入

文章目录 前言一、jar包中,相同class不同类加载器加载的时候是同一个class嘛?二、利用ConfigurableListableBeanFactory手动注册bean注册bean,并自动注入依赖bean根据类型获取注入的bean,两个bean是一个吗? 三、同一份字节码,class隔离,bean隔离总结 前言 注入一个…

Linux的IO模型——阻塞IO

当要读数据recvfrom时,其实就需要两个阶段,一是将硬盘数据读到内核缓冲区,二是将内核缓冲区数据拷贝到用户缓冲区。而阻塞IO就是在两个阶段中用户进程都必须阻塞等待。

ES通过抽样agg聚合性能提升3-5倍

一直以来,es的agg聚合分析性能都比较差(对应sql的 group by)。特别是在超多数据中做聚合,在搜索的条件命中特别多结果的情况下,聚合分析会非常非常的慢。 一个聚合条件:聚合分析请求的时间 search time a…

网页开发 CSS

目录 CSS 概述 CSS 引入方式 CSS 选择器 基本选择器 组合选择器 伪类选择器 样式继承 选择器优先级 CSS 属性操作 文本属性 背景属性 边框属性 列表属性 dispaly属性 盒子模型(重点) float属性(重点) CSS 概述 C…

基于go文件同步工具的升级迭代

介绍 同样,该工具适用于多个项目不同版本的维护,文件更新和新增的同步(自动创建目录),支持自动提交svn。 升级迭代 之前的文件同步工具,依赖chrome和http包,有时候js加载页面不太稳定,所以有空闲就升级迭…

leetcode115.从中序与后序遍历序列构造二叉树,手把手带你构造二叉树(新手向)

构造二叉树是树问题中的难点(相对于遍历二叉树),一开始做的读者会感觉无从下手,这道题在训练营专栏里讲过,是四道题一起讲的,但是现在看来讲的并不全面、具体,所以想单独出一期再来讲一下如何构…

老师怎样克服公开课的心理恐惧?

公开课是老师进修学习和交流教学经验的必要手段,但是,很多老师在面对公开课时会出现心理恐惧,在讲台上发挥不自如,影响教学效果。下面就是一些克服公开课心理恐惧的方法: 一、充分准备 准备充分是心理恐惧的最好解决方…

2023.12.4 关于 Spring Boot 统一异常处理

目录 引言 统一异常处理 异常全部监测 引言 将异常处理逻辑集中到一个地方,可以避免在每个控制器或业务逻辑中都编写相似的异常处理代码,这降低了代码的冗余,提高了代码的可维护性统一的异常处理使得调试和维护变得更加容易,通…

deepflow本地部署过程

本地服务器配置,32C,48G内存 整个过程需要配置k8s,安装helm, 安装grafana, 安装deepflow以及deepflow-ctl,以及部署demo 在采用sealos进行ALL-IN-ONE部署之前, grafana 先安装它 wget -q -O /usr/share/keyrings/gr…

VSCode + gdb + gdbserver调试ARM程序

在开发ARM嵌入式端C/C程序时,一般会在PC上编写代码,在Linux服务器上编译,然后将程序复制或挂载到ARM开发板上运行。如果程序出了问题,在不使用gdb的情况下,经常在代码中添加打印,编译,然后在开发…

nodejs+vue+ElementUi小区社区公寓宿舍智能访客预约系统

该系统将采用B/S结构模式,前端部分主要使用html、css、JavaScript等技术,使用Vue和ElementUI框架搭建前端页面,后端部分将使用Nodejs来搭建服务器,并使用MySQL建立后台数据系统,通过axios完成前后端的交互,…

内网渗透Dump Hash之NTDS.dit

Ntds.dit 在活动⽬录中,所有的数据都保存在域控的ntds.dit⽂件中。 ntds.dit是⼀ 个⼆进制⽂件,⽂件路径为域控的%SystemRoot%\ntds\ntds.dit。NTDS.dit 包 含不限于⽤户名、散列值、组、GPP、OU等活动⽬录的信息。系统运维⼈员可以使⽤VSS实 现对该⽂件…

金蝶云星空单据编辑界面,不允许批量填充操作【分条件】

文章目录 金蝶云星空单据编辑界面,不允许批量填充操作【分条件】前提说明案例演示开发设计测试填充值清空值 金蝶云星空单据编辑界面,不允许批量填充操作【分条件】 前提说明 上一个文章的设计,不管是填充值,还是清空值都一律不…

【matlab程序】matlab画螺旋图|旋转图

%% 数学之美====》螺旋线 % 海洋与大气科学 % 20231205 clear;clc;close all; n=10; t=0:0.01:2pin; R=1; xx=nan(length(t),1);yy=nan(length(t),1); for i=1:length(t) xx(i)=Rcos(t(i)); yy(i)=Rsin(t(i)); R=R+1; end figure set(gcf,‘position’,[50 50 1200 1200],‘col…

基于PIPNet的人脸106关键点检测

做美颜需要使用到人脸关键点,所以整理了一下最近的想法。 按模型结构分类: 1.Top-Down: 分为两个步骤,首先,对于原始输入图片做目标检测,比如做人脸检测,将人脸区域抠出,单独送进关键点检测模…