当前位置: 首页 > news >正文

Postman面试问题

在 API 测试领域,Postman 已成为最流行的工具之一。无论是功能测试、自动化测试,还是接口调试,Postman 都扮演着重要角色。而在软件测试面试中,Postman 相关问题更是高频考点。如果你正在准备面试,赶紧看看这些Postman 相关面试题,让你的面试更加胸有成竹!

1. 基础概念类

❓ Postman 是什么?它的主要功能有哪些?
答:Postman 是一款用于 API 测试和调试的工具,提供接口请求、参数化测试、自动化测试、环境管理、Mock Server 等功能。

❓ Postman 支持哪些 HTTP 方法?
答:常见的有 GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS 等。

❓ Postman 中的 Collection 和 Environment 作用是什么?
答:

  • Collection(集合):用于组织和管理 API 请求,支持批量执行测试。
  • Environment(环境变量):可存储不同的测试环境(如开发、测试、生产)参数,便于切换。

进阶操作类

❓ 如何在 Postman 中创建环境变量?
答:点击 Environments,创建新环境,在 KEY 中输入变量名,在 VALUE 中输入对应值。使用 {{变量名}} 进行引用。

❓ 如何在 Postman 中发送带有 Token 认证的请求?
答:

  1. Authorization 选项中选择 Bearer Token,粘贴 Token。
  2. 或者在 Headers 中手动添加 Authorization: Bearer your_token

❓ Postman 如何执行参数化测试?
答:可使用 环境变量 / 全局变量 来传递参数,或者结合 CSV / JSON 文件进行 数据驱动测试(Data-Driven Testing)

3. 脚本与自动化

❓ Postman Pre-request Script 和 Tests 的区别是什么?
答:

  • Pre-request Script:请求前执行的脚本(比如生成 Token、动态计算参数)。
  • Tests:请求后执行的脚本(用于断言 API 响应结果)。

❓ 如何在 Postman 中编写自动化测试?
答:使用 Tests 选项,结合 JavaScript 断言。例如:

pm.test("状态码应为 200", function () { pm.response.to.have.status(200); });

❓ Postman 如何集成 CI/CD 流程?
答:可以使用 Newman 命令行工具,将 Postman 测试集合集成到 Jenkins、GitHub Actions、GitLab CI/CD 等持续集成工具中。

4. 常见报错与优化

❓ Postman 报 “Could not get response” 怎么办?
答:可能的原因包括 网络问题、代理设置错误、SSL 证书问题,可以检查 Console(控制台) 日志进行分析。

❓ 如何优化 Postman 接口测试效率?
答:

  • 使用 Collection Runner 进行批量执行。
  • 通过 环境变量 进行动态数据管理。
  • 结合 Pre-request Script 自动生成测试数据。

Postman在工作中使用流程是什么样的?

Postman是一款功能强大的接口测试工具,它可以帮助开发者和测试者快速地构建、发送、调试和管理各种类型的接口请求。Postman在工作中使用流程大致如下:

  • 根据接口用例所属的模块或功能,新建集合(Collection)来管理接口请求,可以在集合中设置公共的变量、参数、认证等信息,方便复用和修改。

  • 在集合中不同的文件夹下编写接口测试用例,可以使用Postman的图形化界面或者直接输入URL、Header、Body等信息来构建请求,也可以导入或生成代码片段来发送请求。

  • 处理接口之间的数据关联操作,可以使用Postman的变量(Variable)和脚本(Script)功能来实现,例如在Pre-request Script中设置变量的值,在Tests中获取响应数据并赋值给变量,在其他请求中引用变量的值。

  • 在Tests标签页中增加断言(Assertion),可以使用Postman的内置库Chai Assertion Library来编写断言语句,检查响应的状态码、内容、时间等是否符合预期,也可以使用Postman的内置函数pm.test()和pm.expect()来编写断言。

  • 将接口调试通过,可以在Postman的界面中查看请求的发送和响应的接收情况,也可以在Console中查看更详细的日志信息,如果有错误或异常,可以及时修改和重试。

  • 批量运行用例或者导出通过Newman去运行生成报告,可以使用Postman的集合运行器(Collection Runner)来批量执行集合中的所有或部分请求,也可以使用Postman的命令行工具Newman来在终端中运行集合,并生成HTML或JSON格式的测试报告。

Postman中全局/环境/集合变量的优先级是怎么样?

  • 当变量重名时,优先级由高到低为:本地变量 > 数据变量 > 环境变量 > 集合变量 > 全局变量。

  • 这意味着,如果在不同的范围中定义了相同名称的变量,Postman会使用存储在具有最窄范围的变量中的值。例如,如果有一个名为base_url的全局变量和一个名为base_url的本地变量,那么Postman会使用本地变量的值。

  • 变量的范围决定了变量在Postman中的可用性和持久性。例如,全局变量在整个工作区中都可用,而本地变量只在单个请求或集合运行中可用。

  • 变量的类型决定了变量的显示和共享方式。例如,机密类型的变量会掩盖其初始值和当前值,以防止敏感数据的泄露,而默认类型的变量则会以纯文本的形式显示。

Postman如何设置关联呢?

关联是指在接口测试中,使用前一个接口的响应数据作为后一个接口的请求参数,从而实现接口之间的依赖关系。

Postman中设置关联的方法有以下几种:

  • 使用环境变量(Environment Variable):环境变量是一种在Postman中存储和引用数据的方式,它们可以在不同的请求和集合中使用。要使用环境变量实现关联,可以在Tests标签页中使用pm.environment.set(“variable_key”, “variable_value”)来设置环境变量的值,然后在其他请求中使用{{variable_key}}来引用环境变量的值。例如,如果要将登录接口的token值作为后续接口的请求头,可以在登录接口的Tests中使用以下代码:

var jsonData = pm.response.json(); //解析响应数据为JSON格式 pm.environment.set("token", jsonData.token); //将token值设置为环境变量

然后在其他接口的Headers中使用以下代码:

Authorization: Bearer {{token}} //引用环境变量作为请求头
  • 使用全局变量(Global Variable):全局变量与环境变量类似,也是一种在Postman中存储和引用数据的方式,但它们的作用范围更广,可以在整个工作区中使用。要使用全局变量实现关联,可以在Tests标签页中使用pm.globals.set(“variable_key”, “variable_value”)来设置全局变量的值,然后在其他请求中使用{{variable_key}}来引用全局变量的值。例如,如果要将用户ID作为全局变量,可以在任意一个接口的Tests中使用以下代码:

var jsonData = pm.response.json(); //解析响应数据为JSON格式 pm.globals.set("user_id", jsonData.user_id); //将用户ID设置为全局变量

然后在其他接口的Params或Body中使用以下代码:

user_id: {{user_id}} //引用全局变量作为请求参数
  • 使用数据变量(Data Variable):数据变量是一种在Postman中存储和引用数据的方式,它们可以在集合运行器或Newman中使用,可以实现参数化的效果。要使用数据变量实现关联,可以在集合运行器或Newman中指定一个数据文件,如CSV或JSON格式,然后在请求中使用{{variable_key}}来引用数据文件中的值。例如,如果要使用一个CSV文件作为数据变量,可以在集合运行器中选择该文件,然后在请求中使用以下代码:

username: {{username}} //引用数据文件中的username列的值 password: {{password}} //引用数据文件中的password列的值

Postman 作为最流行的 API 测试工具,在面试中是绕不开的话题。从基础操作到高级自动化,掌握这些 Postman 面试问题,不仅能让你轻松应对面试,还能提升实际测试能力。如果你对 Postman 还有疑问,不妨在评论区留言,我们一起交流成长!🚀🚀🚀

“工具是死的,思维是活的。掌握 Postman,不只是会用,更要用得精!” 💡

 

相关文章:

Postman面试问题

在 API 测试领域,Postman 已成为最流行的工具之一。无论是功能测试、自动化测试,还是接口调试,Postman 都扮演着重要角色。而在软件测试面试中,Postman 相关问题更是高频考点。如果你正在准备面试,赶紧看看这些Postman…...

【JVM详解四】执行引擎

一、概述 Java程序运行时,JVM会加载.class字节码文件,但是字节码并不能直接运行在操作系统之上,而JVM中的执行引擎就是负责将字节码转化为对应平台的机器码让CPU运行的组件。 执行引擎是JVM核心的组成部分之一。可以把JVM架构分成三部分&am…...

esp32 udp 客户端 广播

esp32 udp 客户端 广播 #include "bsp_udpc.h"// #include "com_config.h" // #include "com_xqueue.h"#include "bsp_udpc.h" #define TAG "bsp_udpc"#include <string.h> #include <sys/param.h> #include &q…...

nginx日志存储access日志和error保留180天,每晚把前一天的日志文件压缩成tar.gz

‌logrotate日志分割时&#xff0c;rotate参数是必须要加的‌ 在logrotate的配置文件中&#xff0c;rotate参数用于指定保留的旧日志文件数量。如果不配置rotate参数&#xff0c;默认是0个&#xff0c;也就是只允许存在一份日志&#xff0c;刚切分出来的日志会马上被删除‌ l…...

【Java】多线程和高并发编程(四):阻塞队列(上)基础概念、ArrayBlockingQueue

文章目录 四、阻塞队列1、基础概念1.1 生产者消费者概念1.2 JUC阻塞队列的存取方法 2、ArrayBlockingQueue2.1 ArrayBlockingQueue的基本使用2.2 生产者方法实现原理2.2.1 ArrayBlockingQueue的常见属性2.2.2 add方法实现2.2.3 offer方法实现2.2.4 offer(time,unit)方法2.2.5 p…...

C#控件开发6—旋转按钮

按钮功能&#xff1a;手自动旋转&#xff0c;标签文本显示、点击二次弹框确认&#xff08;源码在最后边&#xff09;&#xff1b; 【制作方法】 找到控件的中心坐标&#xff0c;画背景外环、内圆&#xff1b;再绘制矩形开关&#xff0c;进行角度旋转即可获得&#xff1b; 【关…...

在亚马逊云科技上云原生部署DeepSeek-R1模型(下)

在本系列的上篇中&#xff0c;我们介绍了如何通过Amazon Bedrock部署并测试使用了DeepSeek模型。在接下来的下篇中小李哥将继续介绍&#xff0c;如何利用亚马逊的AI模型训练平台SageMaker AI中的&#xff0c;Amazon Sagemaker JumpStart通过脚本轻松一键式部署DeepSeek预训练模…...

C# COM 组件在.NET 平台上的编程介绍

.NET学习资料 .NET学习资料 .NET学习资料 一、COM 组件简介 COM&#xff08;Component Object Model&#xff09;即组件对象模型&#xff0c;是一种微软提出的软件组件技术&#xff0c;它允许不同的软件模块在二进制层面进行交互。COM 组件可以用多种编程语言开发&#xff0…...

火热的大模型: AIGC架构解析

文章目录 一、背景介绍二、架构描述数据层模型层&#xff08;MaaS&#xff09;服务层&#xff08;PaaS&#xff09;基础设施层&#xff08;IaaS&#xff09;应用层 三、架构分析四、应用场景与价值4.1 典型场景4.2 价值体现 五、总结 一、背景介绍 火热的大模型&#xff0c;每…...

Android LifecycleOwner 闪退,java 继承、多态特性!

1. 闪退 同意隐私政策后&#xff0c;启动进入游戏 Activity 闪退 getLifecycle NullPointerException 空指针异常 FATAL EXCEPTION: main Process: com.primer.aa.gg, PID: 15722 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.primer.aa.…...

PHP 完整表单实例

PHP 完整表单实例 引言 表单是网站与用户交互的重要方式&#xff0c;尤其是在收集用户输入数据时。PHP 作为一种流行的服务器端脚本语言&#xff0c;在处理表单数据方面具有强大的功能。本文将提供一个完整的 PHP 表单实例&#xff0c;涵盖表单创建、数据收集、验证和存储等关…...

深度学习学习笔记(32周)

目录 摘要 abstract 1 Mask R-CNN 2 RoI Align 2.1 RoIPool实验 2.2 RoIAlign实验 3 Mask Branch(FCN) 4 其他细节 4.1 Mask R-CNN损失 4.2 Mask分支损失 4.3 Mask Branch预测使用 摘要 Mask R-CNN是2017年发表的文章&#xff0c;一作是何恺明大神&#xff0c;没错就…...

Web3 开发者的机遇与挑战:技术趋势与职业发展

随着 Web3 技术的迅速发展&#xff0c;互联网的未来正朝着去中心化、用户主权、隐私保护等方向演进。作为 Web3 生态的核心力量&#xff0c;Web3 开发者在推动这一变革中扮演着至关重要的角色。无论是在区块链技术、智能合约开发、去中心化应用&#xff08;DApp&#xff09;的构…...

探索robots.txt:网站管理者的搜索引擎指南

在数字时代&#xff0c;网站如同企业的在线名片&#xff0c;其内容和结构对搜索引擎的可见性至关重要。而在这背后&#xff0c;有一个默默工作的文件——robots.txt&#xff0c;它扮演着搜索引擎与网站之间沟通桥梁的角色。本文将深入探讨robots.txt的功能、编写方法及其在现代…...

LM Studio本地调用模型的方法

首先需要下载LM Studio&#xff0c;&#xff08;LM Studio - Discover, download, and run local LLMs&#xff09;安装好后&#xff0c;需要对index.js文件进行修改&#xff0c;主要是对相关源hugging face的地址修改。 以macOS为例&#xff1a; cd /Applications/LM\ Studi…...

防火墙安全综合实验

防火墙安全综合实验 一、拓扑信息 二、需求及配置 实验步骤 需求一&#xff1a;根据下表&#xff0c;完成相关配置 设备接口VLAN接口类型SW2GE0/0/2VLAN 10AccessGE0/0/3VLAN 20AccessGE0/0/1VLAN List&#xff1a;10 20Trunk 1、创建vlan10和vlan20 2、将接口划分到对应…...

uniapp 编译生成鸿蒙正式app步骤

1&#xff0c;在最新版本DevEco-Studio工具新建一个空项目并生成p12和csr文件&#xff08;构建-生成私钥和证书请求文件&#xff09; 2&#xff0c;华为开发者平台 根据上面生成的csr文件新增cer和p7b文件&#xff0c;分发布和测试 3&#xff0c;在最新版本DevEco-Studio工具 文…...

【进程与线程】如何编写一个守护进程

如何编写一个守护进程。我们首先需要理解守护进程是什么。守护进程是在后台运行的进程&#xff0c;通常没有控制终端&#xff0c;用于执行系统任务&#xff0c;比如服务器或者定时任务。 用户可能想创建一个长期运行的服务&#xff0c;比如Web服务器或者日志监控程序。 首先&a…...

ubuntu安装VMware报错/dev/vmmon加载失败

ubuntu安装VMware报错/dev/vmmon加载失败&#xff0c;解决步骤如下&#xff1a; step1&#xff1a;为vmmon和vmnet组件生成密钥对 openssl req -new -x509 -newkey rsa:2048 -keyout VMW.priv -outform DER -out VMW.der -nodes -days 36500 -subj "/CNVMware/"ste…...

web前端布局--使用element中的Container布局容器

前端页面&#xff0c;跟Qt中一样&#xff0c;都是有布局设置的。 先布局&#xff0c;然后再在各布局中添加显示的内容。 Element网站布局容器&#xff1a;https://element.eleme.cn/#/zh-CN/componet/container 1.将element相应的布局容器代码layout&#xff0c;粘贴到vue项…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...