接口测试如何做?你真的会做吗?全网超全整理实战案例...

news2024/11/17 6:02:08

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

API测试的流程

准备测试数据(这是可选步骤,不一定所有 API 测试都需要这一步)
通过 API 测试工具,发起对被测 API 的 request
验证返回结果的 response

如何应对复杂场景的API测试?

场景1:被测业务操作是由多个API调用协作完成

背景
一个单一的前端操作可能会触发后端一系列的API调用,此时API的测试用例就不再是简单的单个API调用,而是一系列API的调用

存在的情况
存在后一个API需要使用前一个API返回结果的情况
需要根据前一个API的返回结果决定后面应该调用哪个API

存在问题
高效地获取单个前端操作所触发的API调用顺序

解决上述问题思路
通过网络监控手段,捕获单个前端操作时所触发的API调用顺序,譬如Fiddler、Charles等抓包工具;
也可以通过用户行为日志,通过大数据手段来获取调用顺序;

场景2:API 测试过程中的第三方依赖

背景
API 之间是存在依赖关系的,比如你的被测对象是 API A,但是 API A 的内部调用了 API B,此时如果由于某种原因,API B 在被测环境中处于不可用状态,那么 API A 的测试就会受到影响。

在单体架构下,通常只会在涉及到第三方 API 集成的场景中才会遇到这个问题,所以还不算严重。但是,在微服务架构下,API 间相互耦合的依赖问题就会非常严重。

解决问题的核心思路
启用 Mock Server 来代替真实的 API

场景3:异步 API 的测试

什么是异步API
调用后会立即返回,但是实际任务并没有真正完成,而是需要稍后去查询或者回调(Callback)的 API

对异步 API 的测试主要分为两个部分
测试异步调用是否成功:检查返回值和后台工作线程是否被创建两个方面就可以了;
测试异步调用的业务逻辑处理是否正确;

测试异步调用的业务逻辑复杂性
因为异步 API 通常发生在一些比较慢的操作上,比如数据库 I/O、消息队列 I/O 等,此时测试往往需要去验证数据库中的值、消息队列中的值等,这就需要测试代码具有访问和操作数据库或者消息队列的能力。

在实际工程项目中,这些能力一般会在测试框架级别提供,也就是说要求 API 测试框架中包含对应的工具类去访问和操作数据库或者消息队列等

API测试面试常问

面试题:你们接口怎么鉴权的?

答:
通过用户和密码,auth鉴权;
通过 cookie和 session;
通过 token;
通过sign签名;
现在app一般是通过 token鉴权,有些是通过把 token放在请求头里面,有些是通过 singn签名这个字段放在body里面去鉴权的,一般的web是通过 session去鉴权的

面试题:cookie、session、token的区别?

答:
它们都是用来做鉴权的,区别的话,大概是这样的
现在 cookie、session一般是配合使用的用户第一次登陆时,服务器会创建一个 session生成一个 sessionID,sessionID保存在 cookie中,然后返回到客户端,保存在浏览器中。

客户端每次发请求都会把这个值带到服务器,做一个鉴权和会话的跟踪,或者时效的验证

token和 cookie、session差不多,通过算法,每次验陆,会产生一串很长的随机字符串,一般是在放在返回的body里面,或者返回的头里面,他们都是服务器产生,带过来是要做验证和时效的验证的。

一般在app中使用token比较多一点,Web端使用cookie、session的鉴权方式会多一点。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有付出,才能获得回报;只有坚持,才能看到成功的曙光。在努力奋斗的路上,没有捷径可走,但不要放弃希望,因为每一份努力都会让你更接近目标。相信自己的实力,勇敢迎接挑战,你会发现,成长的旅程其实很美好。

每一天都是一个新的开始,不要因过去的失败而沉溺,在挫折中寻找成长的机会,坚持自己的梦想,勇往直前,无坚不摧,你将成为自己心中最强大的存在。

只有不断挑战自我,才能超越自己;只有不断努力,才能实现梦想;只有坚持不懈,才能迎来成功的曙光。让我们勇往直前,不停歇地奋斗,成就辉煌的人生!

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

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

相关文章

分布式事务Seate

一、Seata简介 1、Seata的核心组件 TC (Transaction Coordinator)事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。TM (Transaction Manager)事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。RM (Resourc…

2023下半年北京/上海/深圳软考(中/高级)认证招生

软考是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。 系统集成…

Docker安装与启动

Docker安装与启动 文章目录 Docker安装与启动前言容器与虚拟机比较 1、安装Docker2、设置ustc的镜像3、Docker的启动与停止总结 前言 容器与虚拟机比较 虚拟机(VM)是计算机系统的仿真。简而言之,它可以在实际上是一台计算机的硬件上运行看起…

Docker教程

Docker 能解决的问题 ⾸先,我们先来看⼏个问题: 1. 合作开发的时候,在本机可以运⾏,在别⼈的电脑上跑不起来。 这⾥我们以 Java Web 应⽤程序为例,⼀个 Java Web 应⽤程序涉及很多东⻄,⽐如 JDK 、 Tomc…

机器学习 day21(Tensorflow代码实现)

Tensorflow代码实现 在tensorflow中训练神经网络模型的步骤:第一步:指定模型,并告诉tensorflow按何种方式计算。第二步:使用特定的损失函数编译模型。第三步:训练模型

企业知识管理要怎么做,才能清晰有序?

在当今快速变化的商业环境中,企业知识管理的重要性日益凸显。有效的知识管理可以帮助企业整理、保存和传递知识,提高员工的工作效率和创新能力,从而为企业获得竞争优势奠定基础。本文将介绍企业在进行知识管理时应采取的措施,以确…

微型导轨的使用寿命能达到多久?

微型导轨,顾名思义就是体积很小的导轨,一般是应用在小型化设备中的,像半导体设备,医疗设备,IC制造设备,X-Y table,精密测量及检测仪器,高速皮带驱动设备,高速移载设备等都…

传说中,让测试猿分分钟心酸的五大谣言

谣传1:测试无聊 综观现今软件测试的一些轶事,我对某些错误想法的频繁出现感到吃惊。尽管有很多可以罗列,但是我还是想分享测试的五个最常见的谣传(基于我短暂的经验)。我发现前三个盛行于一些主流的新闻文章&#xff…

STM32F407系统时钟的配置和查看方法

1、系统时钟的来源 STM32F407具有两个PLL,用于产生不同的时钟信号。这里主要来讨论主PLL时钟。主PLL时钟的时钟源有两个信号,分别是上边提到的HIS信号和HSE信号。PLL通过把这两个信号倍频,分频等达到更高频率的时钟信号。一般来说&#xff0…

Linux6.yum,git,gdb

1.yum三板斧 yum list :显示所有能安装的软件。 yum lisy | grep 软件 :搜索软件。 yum install -y :安装软件。 yum remove -y 软件 :删除已经安装的软件。 2.git git clone 仓库网址 :添加仓库,按回车之后。需要输入账户和密码。 git add 文件 :把文件添加…

图像几何变换、仿射变换、透视变换

图像几何变换:平移、缩放、旋转 图像旋转变换:(x,y)为原图像坐标系,(x’,y’)为以(x0,y0)为中心的笛卡尔坐标系,图像以x0,y0)为中心进行旋转。 图像坐标系->笛卡尔坐标系->图像坐标系。如果是以图像中心旋转,则left=W/2,right=H/2,其中W和H为图像旋转…

MinGW 编译jsoncpp 的下载和编译

目录 1. jsoncpp 的下载 1.1 下载地址,点击可直接下载 1.2 下载完解压内容如下 2. jsoncpp 的编译 2.1 配置 2.2 生成 3. jsoncpp测试使用 1. jsoncpp 的下载 1.1 下载地址,点击可直接下载 mirrors / open-source-parsers / jsoncpp GitCode 1…

数据库监控与调优【十五】—— ORDER BY语句优化

ORDER BY语句优化 最好的做法:利用索引避免排序 实验 目的:哪些情况下ORDER BY子句能用索引避免排序,哪些情况下不能 之前说过,BTree数据结构里面的关键字,也就是索引值都是按照顺序排列的,那么&#xf…

端午节粽子代码(python)需要的拿走,顺带给博主一点关注呗~~~~

import math from turtle import * #胡阳 # 画粽子 def rice_dumpling():pensize(4) # 画笔宽度pencolor(4, 60, 12) # 画笔颜色fillcolor(4, 70, 19) # 填充色begin_fill()fd(200) # 向前circle(15, 120) #画圆弧fd(200)circle(15, 120)fd(200)circle(15, 120)fd(200)circle(1…

自动化测试你一定要知道的几个技巧,包你受用终身

自动化测试是应用程序在非常短的时间内执行软件的整个生命周期的过程,使测试软件具有很大的充分性和有效性。在这个程序设计的系统中,测试人员编写一个脚本,并借助合适的软件对软件进行测试。自动化测试背后的基本目标是提高测试效率和提高软…

C 语言经典100例(菜鸟在线工具)

C 语言经典100例 C 语言经典100例 菜鸟工具 C代码在线运行工具 搜索引擎 前端开发

农产品批发采购APP开发 手机里的农产品市场

农业发展是民生之本,随着互联网时代的到来各行各业都迎来了新的发展机遇,农产品批发采购、配送服务等方面也发生了很大的改变,各种农产品商城APP、农产品批发采购平台、农产品供应管理系统的开发让包含农产品信息、数据、物流、配送、仓储、质…

关于tcp协议的18个常问面试题(进阶版)

TCP是一个基础协议,这里相关的十八个问题也都是常见的问题。无论是前端还是后端同学,都应该掌握的这些问题。过于基础的问题,比如TCP格式是什么 占多少字节 三次握手的流程等等,由于过于简单,我们不介绍,本…

Mabatis(CRUD)

Mybatis CRUD(数据和配置使用Mybatis快速入门) select标签 选择&#xff0c;查询语句: <select id"getUserById" resultType"com.louis.pojo.User" parameterType"int"></select>id:就是对应namespace中的方法名(就相当于重写了…

记录::windows11安装子系统ubuntu18.04+cuda

https://learn.microsoft.com/zh-cn/windows/wsl/install-manual https://zhuanlan.zhihu.com/p/436441212 目录 1、开启开发者模式 2、开启子系统 3、下载ubuntu 4、安装ubuntu 5、安装cuda 6、安装cudnn 7、安装桌面 2、桌面 3、Xfces&#xff08;前面2和这个二选一…