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

Postman接口测试工具完整教程

前言

作为软件开发过程中一个非常重要的环节,软件测试越来越成为软件开发商和用户关注的焦点。完善的测试是软件质量的保证,因此软件测试就成了一项重要而艰巨的工作。要做好这项工作当然也绝非易事。

第一部分:基础篇

postman:4.5.1
1.安装postman
进入postman官网,如果是mac系统可以直接点击mac app安装

 

如果是windows的话,需要在windows下安装chrome浏览器,然后在地址栏输入chrome://extensions,勾选开发者模式


然后将下载的postman插件解压,浏览器点击加载已解压的扩展程序,选择插件所在目录就可以了

2.测试第一个api,以豆瓣开发者api为例


这个接口的method为get,postman默认为get,在url栏输入被测接口

 

在接口文档中,q与tag其中的一个是必填项,所以这里需要配置参数,点击url右侧的params,并输入参数


点击send按钮发送请求,在下面可以看到返回的response,响应的状态码,与响应时间

response还可以以不同的方式查看,并且还可以看到cookies,headers信息


每次以不同的参数或者设置,在左侧history都会帮我们记录一个接口测试历史,以便于下次重新调用

 

第二部分:进阶篇

1.使用自带的脚本对接口进行测试
点击tests按钮,可以看到右侧有个snippets栏,里面就是postman内置的测试脚本,辅助对接口进行测试

选择其中的一个脚本,修改其中的参数,再次点击send,这时response的tests出现了一个1/1,说明执行一个测试并且通过测试,绿色pass说明验证通过


红色fail说明测试不通过,一个接口可以写多个脚本进行多次测试

 

2.内置脚本说明

 1. 清除一个全局变量Clear a global variable对应脚本:postman.clearGlobalVariable("variable_key");参数:需要清除的变量的key2.清除一个环境变量Clear an environment variable对应脚本:postman.clearEnvironmentVariable("variable_key");参数:需要清除的环境变量的key3.response包含内容Response body:Contains string对应脚本:tests["Body matches string"] =responseBody.has("string_you_want_to_search");参数:预期内容4.将xml格式的response转换成son格式Response body:Convert XML body to a JSON Object对应脚本:var jsonObject = xml2Json(responseBody);参数:(默认不需要设置参数,为接口的response)需要转换的xml5.response等于预期内容Response body:Is equal to a string对应脚本:tests["Body is correct"] = responseBody === "response_body_string";参数:预期response6.json解析key的值进行校验Response body:JSON value check对应脚本:tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args参数:test替换被测的值,args替换被测的key7.检查response的header信息是否有被测字段Response headers:Content-Type header check对应脚本:tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");参数:预期header8.响应时间判断Response time is less than 200ms对应脚本:tests["Response time is less than 200ms"] = responseTime < 200;参数:响应时间9.设置全局变量Set an global variable对应脚本:postman.setGlobalVariable("variable_key", "variable_value");参数:全局变量的键值10.设置环境变量Set an environment variable对应脚本:postman.setEnvironmentVariable("variable_key", "variable_value");参数:环境变量的键值11.判断状态码Status code:Code is 200对应脚本:tests["Status code is 200"] = responseCode.code != 400;参数:状态码12.检查code name 是否包含内容Status code:Code name has string对应脚本:tests["Status code name has string"] = responseCode.name.has("Created");参数:预期code name包含字符串13.成功的post请求Status code:Successful POST request对应脚本:tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;14.微小验证器Use Tiny Validator for JSON data            对应脚本: var schema = {"items": {"type": "boolean"}};var data1 = [true, false];var data2 = [true, 123];console.log(tv4.error);tests["Valid Data1"] = tv4.validate(data1, schema);tests["Valid Data2"] = tv4.validate(data2, schema);参数:可以修改items里面的键值对来对应验证json的参数

折叠

3.保存api,点击save按钮,找到save as按钮,点击


这时我们可以修改request name 也可以写一下请求的描述

接下来新建一个接口集合,写一个集合的名字,点击保存


然后在左侧功能区,找到collections栏目并点击

 

可以看到刚保存的api集合

4.运行api集合:找到顶层功能区,找到runner按键,并点击

选中刚才新建的api集合


点击start test,可以在右侧看到运行的结果

 

5.命令行运行接口集合:首先下载刚才创建的集合,点击export,并保存到指定路径


安装postman命令行运行工具newman

安装好newman后,命令行执行,可以看到执行结果


如果想要报告加上 -H filename 参数即可

第三部分:高级篇

1.环境变量的使用:在测试的过程中我们可能有多套测试环境,对应每一套测试环境的ip可能是不同的,但是接口的请求,与参数又是一样的,最笨的方法是每一个环境都写一个测试集合,但是postman给我们提供了更为便捷的方法:使用环境变量
进入请求栏目,找到no environment


点击no environment,找到manager environments,点击进入页面
![Uploading QQ20160812-2_610634.png . . .]


这个页面可以进行管理环境变量,点击add,添加一个环境变量

 

在这里输入环境变量的名字,环境变量是以键值对的形式存在的,输入环境变量的键值对,然后点击add,进行保存


回到请求测试区,点击no environment ,选择刚才新建立的环境变量,同时可以点击右侧的眼睛来查看环境变量与全局变量(后面会给大家介绍)

现在使用刚才新建的环境变量来替换uri,引用变量使用{{key}}的形式,将https://echo.getpostman.com用{{test_env}}来替换,并send发送请求

 

可以看到这里的结果和使用https://echo.getpostman.com是一样的,这样一组接口就可以实现写一次而通过更换环境变量来实现切换不同的环境

2.全局变量的使用:虽然我们可能有多个测试环境,但是我们的测试数据每个环境用的都是一组,对于postman相当于只有一组全局变量,对应多组环境变量
同样的,点击manager environment


点击globals,进入环境变量的管理页面

全局变量globals同样是以键值对的形式保存的,输入键值对,点击save


回到请求测试区,使用全局变量替换url的参数,引用方法与环境变量的引用方法一致,替换后点击send,查看结果

 

response依然以正确的内容显示出来

3.可以使用pre-request script功能来创建环境变量与全局变量,还有销毁环境变量与全局变量,pre-request script是预置的脚本,执行在请求之前
点击pre-request script,进入预设脚本页面


点击右侧的脚本,并设置全局变量与环境变量,并将url进行替换,点击send发送,看到结果还是以正确的形式进行展示

同样的我们也可以在tests里面使用预置的脚本进行设置与清除环境变量用法一样

4.环境变量与全局变量都已经进行了设置,我们还可以在tests里面进行引用,这样就解决了上下游数据互传的问题了
点击tests,切换到测试脚本页面,输入脚本.......

 

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

相关文章:

Postman接口测试工具完整教程

前言 作为软件开发过程中一个非常重要的环节&#xff0c;软件测试越来越成为软件开发商和用户关注的焦点。完善的测试是软件质量的保证&#xff0c;因此软件测试就成了一项重要而艰巨的工作。要做好这项工作当然也绝非易事。 第一部分&#xff1a;基础篇 postman:4.5.1 1.安…...

Android 滑动按钮(开关) SwitchCompat 自定义风格

原生的SwitchCompat控件如下图&#xff0c;不说不堪入目&#xff0c;也算是不敢恭维了。开个玩笑... 所以我们就需要对SwitchCompat进行自定义风格&#xff0c;效果如下图 代码如下 <androidx.appcompat.widget.SwitchCompatandroid:id"id/switch_compat"android:…...

前端面试灵魂提问-计网(2)

1、websocket 为什么全双工? 1.1 WebSocket是什么 WebSocket 是一种通信协议&#xff0c;它在客户端和服务器之间建立持久的全双工连接。全双工意味着数据可以双向流动&#xff0c;即客户端可以向服务器发送消息&#xff0c;服务器也可以向客户端发送消息&#xff0c;而无需…...

Git修改远程仓库名称

1、先直接在远程点仓库名&#xff0c;然后左侧菜单栏找settings-general&#xff0c;然后直接修改工程名&#xff0c;保存即可。 2、还是在settings-general下&#xff0c;下拉找到Advanced点击Expand展开&#xff0c;然后下拉到最底部 在Change path里填入新的项目名称&#x…...

kafka 集群 ZooKeeper 模式搭建

Apache Kafka是一个开源分布式事件流平台&#xff0c;被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序 Kafka 官网&#xff1a;Apache Kafka 关于ZooKeeper的弃用 根据 Kafka官网信息&#xff0c;随着Apache Kafka 3.5版本的发布&#xff0c;Zookeeper现…...

【LeetCode】 160. 相交链表

相交链表 题目题解 题目 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&am…...

TZOJ 1429 小明A+B

答案&#xff1a; #include <stdio.h> int main() {int T0, A0, B0, sum0;scanf("%d", &T); //输入测试数据的组数while (T--) //循环T次{scanf("%d %d", &A, &B); //输入AB的值sum A B;if (sum > 100) //如果是三位数{…...

制作openeuler的livecd

下载该项目&#xff0c;执行下面的操作gitee openeuler livecd项目 基于openeuler环境 #安装工具&#xff0c;第一次可能报错&#xff0c;可以再执行一次 make installx86 livecd-creator -d -v --config./config/euler_x86_64.ks --fslabeleuler-LiveCD --cachecache --log…...

B.牛牛排队伍——模拟双链表

当前位置: 首页 > news >正文 B.牛牛排队伍——模拟双链表 news 2023/12/1 15:14:37 分析 题目其实很简单,就是双链表的增删查,但是刚开始,直接vis标记删除元素,查找一个位置的前一个用的while不断向前找,但是TLE;毕竟O(n*k)的复杂度,一开始没有考虑时间复杂度…...

【PyTorch】(四)损失函数与优化器

文章目录 1. 损失函数2. 优化器 1. 损失函数 2. 优化器...

【Python】使用execute(sql)执行insert之后没有插入数据

在sql为insert语句&#xff0c;用Python的sqlalchemy模块中的execute()执行之后没有插入数据的情况&#xff0c;主要是因为sqlalchemy版本的更新&#xff0c;不能直接只用execute()了&#xff0c;MySQL数据库连接的配置和sql都需要多处理一步&#xff1a; 之前的版本&#xff…...

虚拟机备份数据自动化验证原理

备份数据成功备份下来了&#xff0c;但是备份数据是否可用可靠&#xff1f;对于这个问题&#xff0c;最好最可靠的方法是将备份数据实际恢复出来验证。 但是这样的方法&#xff0c;不仅费时费力&#xff0c;而且需要随着备份数据的定期产生&#xff0c;还应当定期做备份数据验…...

前端入门(五)Vue3组合式API特性

文章目录 Vue3简介创建Vue3工程使用vite创建vue-cli方式 常用 Composition API启动项 - setup()setup的执行时机与参数 响应式原理vue2中的响应式vue3中的响应式ref函数reactive函数reactive与ref对比 计算属性 - computed监视属性 - watchwatchEffect Vue3生命周期自定义hook函…...

Doris 数据导入二:Stream Load 方式

Stream load 是一个同步的导入方式,用户通过发送 HTTP 协议发送请求将本地文件或数据流导入到 Doris 中。Stream load 同步执行导入并返回导入结果。用户可直接通过请求的返回体判断本次导入是否成功。 1 适用场景 Stream load 主要适用于导入本地文件,或通过程序导入数据流中…...

【算法刷题】Day10

文章目录 15. 三数之和题干&#xff1a;算法原理&#xff1a;1、排序 暴力枚举 利用set 去重2、排序 双指针 代码&#xff1a; 18. 18. 四数之和题干&#xff1a;算法原理&#xff1a;1、排序 暴力枚举 利用set 去重2、排序 双指针 代码&#xff1a; 15. 三数之和 原题链…...

SAP 如何检查已安装的SAP UI5 版本

第一个方法是直接从FLP中查看 但是部分高版本的FLP中没有这个about&#xff0c; 那么在当前界面可以使用&#xff1a;CTRL ALT SHIFT S 查看当前版本 根据此版本&#xff0c;去进行你的UI5的开发吧...

15、 深度学习之正向传播和反向传播

上一节介绍了训练和推理的概念,这一节接着训练和推理的概念讲一下,神经网络的正向传播和反向传播。 其实单看正向传播和反向传播这两个概念,很好理解。 正向传播(Forward Propagation)是指从输入层到输出层的数据流动过程,而反向传播(Backpropagation)是指数据从输出…...

微信小程序中复制文本

在微信小程序中&#xff0c;可以使用wx.setClipboardData()方法来实现复制文本内容的功能。以下是一个示例代码&#xff1a; // 点击按钮触发复制事件 copyText: function() {var that this;wx.setClipboardData({data: 要复制的文本内容,success: function(res) {wx.showToa…...

vue3学习--初始

...

cmake和vscode 下的cmake的使用详解(二)

第四讲&#xff1a; GDB 调试器 前言&#xff1a; GDB(GNU Debugger) 是一个用来 调试 C/C 程序 的功能强大的 调试器 &#xff0c;是 Linux 系统开发 C/C 最常用的调试器 程序员可以 使用 GDB 来跟踪程序中的错误 &#xff0c;从而减少程序员的工作量。 Linux 开发 C/C …...

郑州大学生命科学学院生物与医药专业考研复试资料(2025届学姐整理)|电子版

温馨提示&#xff1a;文末有联系方式【权威整理】郑大生科院生物与医药方向考研复试精品资料包 本资料由郑州大学生命科学学院生物与医药专业2022年高分录取学姐牵头整合&#xff0c;汇集2022–2025连续四届成功上岸师兄师姐的实战复试经验与核心资料&#xff0c;内容系统、精准…...

运算放大器与比较器的本质区别及应用指南

1. 运算放大器与比较器的本质区别在电子电路设计中&#xff0c;运算放大器&#xff08;Op-Amp&#xff09;和电压比较器&#xff08;Comparator&#xff09;是两种极为常见却又经常被混淆的器件。它们在外观符号上几乎一模一样&#xff1a;都有五个引脚——正负电源端、同相与反…...

DDD难落地?就让AI干吧! - cleanddd-skills介绍

一、什么是urllib3&#xff1f; urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你&#xff1a; 发送各种 HTTP 请求&#xff08;GET, POST, PUT, DELETE等&#xff09;。 管理连接池&#xff0c;提高网络请求效率。 处理重试和重定向。 支…...

seo公司招聘的实习机会有哪些

SEO公司招聘的实习机会有哪些&#xff1f; 在当今数字化时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为企业在网络上获得高流量和高曝光度的关键手段。随着越来越多的企业意识到SEO的重要性&#xff0c;SEO公司也在不断扩展&#xff0c;吸引大量优秀的实习…...

intv_ai_mk11多场景落地:覆盖内容运营、教育辅助、行政办公等6大方向

intv_ai_mk11多场景落地&#xff1a;覆盖内容运营、教育辅助、行政办公等6大方向 1. 模型介绍与核心能力 intv_ai_mk11是一款基于Llama架构的中等规模文本生成模型&#xff0c;特别适合处理通用问答、文本改写、解释说明和简短创作等任务。这个模型已经完成了本地部署优化&am…...

Multisim仿真避坑指南:振幅调制器设计时,如何搞定静态工作点和输出幅度?

Multisim仿真实战&#xff1a;振幅调制器设计的5个关键调试技巧 在电子工程课程设计中&#xff0c;振幅调制器是一个经典但充满挑战的项目。许多学生在Multisim仿真阶段就会遇到各种问题——静态工作点不稳定、输出波形失真、峰峰值不达标...这些问题往往让初学者感到挫败。本文…...

5个维度解析LimeReport:Qt框架下的高效全能报表生成解决方案

5个维度解析LimeReport&#xff1a;Qt框架下的高效全能报表生成解决方案 【免费下载链接】LimeReport Report generator for Qt Framework 项目地址: https://gitcode.com/gh_mirrors/li/LimeReport 在企业级应用开发中&#xff0c;报表功能往往是连接数据与决策的关键纽…...

事务失效十大场景分析

1. 方法不是 public&#xff08;最经典失效&#xff09; 代码示例 Service public class UserService {Autowiredprivate UserMapper userMapper;// 非 public → 事务失效Transactionalprivate void addUser() {userMapper.insert(new User("张三"));// 模拟异常int…...

保姆级教程:在Windows上用Python 3.10.7一键部署SenseVoice语音识别API

Windows平台Python 3.10.7环境下的SenseVoice语音识别API全流程部署指南 语音识别技术正在改变我们与设备交互的方式。对于开发者而言&#xff0c;快速搭建一个可靠的语音识别服务是许多AI应用开发的第一步。SenseVoice作为开源的语音识别解决方案&#xff0c;以其轻量级和易用…...

Windows 10平台Android子系统技术实现与跨平台应用实践

Windows 10平台Android子系统技术实现与跨平台应用实践 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 Windows Subsystem for Android&#xff0…...