Postman:API测试之Postman使用完全指南

Postman是一个可扩展的API开发和测试协同平台工具,可以快速集成到CI/CD管道中。旨在简化测试和开发中的API工作流。

Postman工具有Chrome扩展和独立客户端,推荐安装独立客户端。

Postman有个workspace的概念,workspacepersonalteam类型。Personal workspace只能自己查看的APITeam workspace可添加成员和设置成员权限,成员之间可共同管理API

当然我个人使用一般是不登录的,因为登录之后会自动将你的测试历史数据保存到账户里,你可以登陆网页端进行查看。

因为API的很多数据是很敏感的,有的含有Token,或者就是一些私密信息,虽然Postman自己也强调说这样很安全,不会私下窥探用户的信息之类的,但是呢还是至少做一点有效的防范吧,自己不上传,因为网络并没有绝对的安全。

所以我每次测试之后会将数据(Case)保存在本地,下次使用或者换设备的情况下将数据拷贝过来又可以继续使用了。

下面正式开始介绍如何使用Postman吧。

1. 为什么选择Postman

选择使用Postman的原因如下:

  • 简单易用 - 要使用Postman,你只需登录自己的账户,只要在电脑上安装了Postman应用程序,就可以方便地随时随地访问文件。

  • 使用集合 - Postman允许用户为他们的API调用创建集合。每个集合可以创建子文件夹和多个请求。这有助于组织测试结构。

  • 多人协作 - 可以导入或导出集合和环境,从而方便共享文件。直接使用链接还可以用于共享集合。

  • 创建环境 - 创建多个环境有助于减少测试重复(DEV/QA/STG/UAT/PROD),因为可以为不同的环境使用相同的集合。这是参数化发生的地方,将在后续介绍。

  • 创建测试 - 测试检查点(如验证HTTP响应状态是否成功)可以添加到每个API调用中,这有助于确保测试覆盖率。

  • 自动化测试 - 通过使用集合RunnerNewman,可以在多个迭代中运行测试,节省了重复测试的时间。

  • 调试 - Postman控制台有助于检查已检索到的数据,从而易于调试测试。

  • 持续集成- 通过其支持持续集成的能力,可以维护开发实践。

2. 如何下载安装Postman

Step1) 去官网下载进行安装

官网主页:https://www.postman.com/downloads/, 下载所需版本进行安装即可。

在这里插入图片描述

Step2) 登录

安装完成之后会要求你必须登录才能使用,没有账号可以进行注册,注册是免费的。(也可使用Google账号,不过基本不能登录,你懂的)

Step3)在Workspace选择你要使用的工具并点击“Save My Preferences”保存。

在这里插入图片描述

Step4)你将看到启动后的页面如下

在这里插入图片描述

3. 如何使用Postman

下图是Postman的工作区间,各个模块功能的介绍如下:

  1. New,在这里创建新的请求、集合或环境;还可以创建更高级的文档、Mock ServerMonitor以及API
  2. Import,这用于导入集合或环境。有一些选项,例如从文件,文件夹导入,链接或粘贴原始文本。
  3. Runner,可以通过Collection Runner执行自动化测试。后续介绍。
  4. Open New,打开一个新的标签,Postman窗口或Runner窗口。
  5. My Workspace,可以单独或以团队的形式创建新的工作区。
  6. Invite,通过邀请团队成员在工作空间上进行协同工作。
  7. History,所有的历史记录,这样可以很容易地跟踪你所做的操作。
  8. Collections,通过创建集合来组织你的测试套件。每个集合可能有子文件夹和多个请求。请求或文件夹也可以被复制。
  9. Request tab,这将显示您正在处理的请求的标题。默认对于没有标题的请求会显示“Untitled Request”。
  10. HTTP Request,单击它将显示不同请求的下拉列表,例如:GETPOSTCOPYDELETE等。在测试中,最常用的请求是GETPOST
  11. Request URL ,也称为端点,显示APIURL
  12. Save ,如果对请求进行了更改,必须单击save,这样新更改才不会丢失或覆盖。
  13. Params ,在这里将编写请求所需的参数,比如Key - Value
  14. Authorization ,为了访问api,需要适当的授权。它可以是UsernamePasswordToken等形式。
  15. Headers ,请求头信息。
  16. Body ,请求体信息,一般在POST中才会使用到。
  17. Pre-request Script ,请求之前 先执行脚本,使用设置环境的预请求脚本来确保在正确的环境中运行测试。
  18. Tests ,这些脚本是在请求期间执行的。进行测试非常重要,因为它设置检查点来验证响应状态是否正常、检索的数据是否符合预期以及其他测试。
  19. Settings ,最新版本的有设置,一般用不到。

在这里插入图片描述

4. 如何处理GET请求

Get请求用于从指定的URL获取信息,不会对端点进行任何更改。

在这里我们使用如下的URL作为演示:

https://jsonplaceholder.typicode.com/users	

Postman的工作区中:

1、选择HTTP请求方式为GET

2、在URL区域输入 链接

3、点击 “Send”按钮

4、你将看到下方返回200状态码

5、在正文中应该有10个用户结果,表明您的测试已经成功运行。

在这里插入图片描述

注意:在某些情况下,Get请求失败可能由于URL无效或需要身份验证。

5. 如何处理POST请求

Post请求与Get请求不同,因为存在用户向端点添加数据的数据操作。使用之前GET请求中相同数据,现在添加我们自己的用户。

Step 1)创建一个新请求

在这里插入图片描述

Step 2 )在新请求中

1、选择HTTP请求方式为GET

2、在URL区域输入 链接:https://jsonplaceholder.typicode.com/users

3、切换到Body选项

在这里插入图片描述

Step 3Body选项

1、选中raw选项

2、选择JSON

在这里插入图片描述

Step 4) 复制前面GET请求返回的json内容的第一节

更改id为11,更改name以及uesrnameemail

[{"id": 11,"name": "Krishna Rungta","username": "Bret","email": "Sincere@april.biz","address": {"street": "Kulas Light","suite": "Apt. 556","city": "Gwenborough","zipcode": "92998-3874","geo": {"lat": "-37.3159","lng": "81.1496"}},"phone": "1-770-736-8031 x56442","website": "hildegard.org","company": {"name": "Romaguera-Crona","catchPhrase": "Multi-layered client-server neural-net","bs": "harness real-time e-markets"}}
]

在这里插入图片描述

注意: 检查Body里用到的JSON格式很重要,以确保数据正确。

检测的工具比如:https://jsonformatter.curiousconcept.com/

在这里插入图片描述

Step 5)发送请求

1、完成上述的信息输入,点击Send按钮

2、Status:应该是201,显示为创建成功

3、在Body里返回数据

在这里插入图片描述

6. 如何将请求参数化

数据参数化是Postman最有用的特征之一。你可以将使用到的变量进行参数化,而不是使用不同的数据创建相同的请求,这样会事半功倍,简洁明了。

这些数据可以来自数据文件环境变量。参数化有助于避免重复相同的测试,可用于自动化迭代测试。

参数通过使用双花括号创建:{{sample}}

比如下面的请求:

在这里插入图片描述

接下来创建一个参数化get请求:

Step 1) 创建一个参数化get请求

1、将HTTP请求设置为GET

2、输入URLhttps://jsonplaceholder.typicode.com/users;将链接的域名部分替换为参数,例如

{{url}}。请求url现在应该是{{url}}/users

3、点击Send按钮。

应该没有响应,因为我们没有设置参数的源,如下图:

在这里插入图片描述

Step 2) 使用环境设置所需的参数

1、点击眼睛图标

2、单击Edit将该变量设置为可在所有集合中使用的全局环境。

在这里插入图片描述

Step 3) 变量–variable

1、将名称设置为url,该urlhttps://jsonplaceholder.typicode.com

2、点击保存按钮

在这里插入图片描述

Step 4) 如果看到下面截图的样式,请单击Close

在这里插入图片描述

Step 5) 回到你的Get请求页面,然后单击发送Send按钮,Get请求应该就会返回结果了,如下图:

在这里插入图片描述

注意:请确保所有的参数都有准确的源数据,不管是环境变量还是数据文件,以避免出错。

7. 如何创建Postman Tests

Postman Tests在请求中添加JavaScript代码来协助验证结果,如:成功或失败状态、预期结果的比较等等。

通常从pm.test开始。它可以与断言相比较,验证其他工具中可用的命令。

接下来创建一个包含Tests的请求:

Step 1) 创建一个Get请求

1、切换到Tests选项,右边是代码片段选项。

2、从右边的代码片段选项里面选中 “Status code: Code is 200

3、JS代码就自动出现在窗口中

在这里插入图片描述

Step 2) 点击发送请求按钮。测试结果就显示出来了,如下图:

在这里插入图片描述

Step 3) 回到Tests选项卡,让我们添加另一个测试。这次我们将比较预期结果和实际结果。

在右边的SNIPPETS区域选择“Response body:JSON value check”选项,我们将检查Leanne Graham是否拥有userid 1

在这里插入图片描述

Step 4

1、将代码中的“Your Test Name”替换为“Check if user with id1 is Leanne Graham”,以便测试名称确切描述我们想测试的内容。

2、使用jsonData[0].name代替jsonData.value;获取路径,在获取结果之前检查Body。因为Leanne Grahamuserid 1,所以jsonData在第一个结果中,这个结果应该从0开始。如果你想获得第二个结果,那么对后续结果使用jsonData[1]即可。

3、在eql中,输入“Leanne Graham

pm.test("Check if user with id1 is Leanne Graham", function () {var jsonData = pm.response.json();pm.expect(jsonData[0].name).to.eql("Leanne Graham");
});

在这里插入图片描述

Step 5) 点击发送请求,可以看到你的请求之后测试结果中有两项显示测试通过。

在这里插入图片描述

注意: 有不同种类的测试可以在Postman中创建。尝试探索这个工具,看看哪些测试适合你实际测试。

8. 如何创建测试集合

集合在组织测试套件中扮演着重要的角色。它可以被导入和导出,使得在团队之间共享集合变得很容易。在本教程中,我们将学习如何创建和执行集合。

Step 1) 单击页面左上角的New按钮,如下图:

在这里插入图片描述

Step 2) 选择Collection(集合),创建collection窗口弹出,如下图:

在这里插入图片描述

Step 3) 输入所需的集合名称和描述,然后单击create

现在已经创建了一个集合。

在这里插入图片描述

Step 4) 和前面的Get请求一样,点击保存。

在这里插入图片描述

Step5

1、选择Postman测试集合(Test Collection

2、点击保存Postman Test Collection

在这里插入图片描述

Step 6) Postman test collection现在应该包含了一个请求,如下图:

在这里插入图片描述

Step 7) 重复上述的Step4-5,继续创建请求,这样,测试集合就应该有2个请求了,如下图:
在这里插入图片描述

9. 如何使用Collection Runner运行集合

有两种方式来运行一个集合,即Collection RunnerNewman

9.1.Collection Runner

Step 1) 单击页面顶部导入按钮旁边的Runner按钮,如下图:

在这里插入图片描述

Step 2Collection Runner页面应该出现如下所示。以下是对各个字段的描述

在这里插入图片描述

Step 3) 做如下设置,运行你的测试集合

  • 选择Postman测试集合-集合迭代次数为3

  • 设置延迟为2500毫秒

  • 点击Start Run按钮

在这里插入图片描述

Step 4) 单击Run按钮后将显示Run结果页。根据延迟的不同,你应该在测试执行的同时看到显示的结果。

1、一旦测试完成,你就可以看到测试状态是通过还是失败,以及每个迭代的结果。

2、你将看到Get请求的Pass状态;

3、由于我们没有任何Post测试,所以应该会出现请求没有任何测试的消息。

在这里插入图片描述

可以出在请求中进行测试是多么重要,这样你就可以验证HTTP请求状态是否成功,以及是否创建或检索了数据。

9.2 如何使用Newman运行集合

运行集合的另一种方式是通过NewmanNewmanCollection Runner之间的主要区别如下:

1、NewmanPostman的替代品,所以需要单独安装Newman

2、Newman使用命令行,而Collection Runner使用UI界面;

3、Newman可以用于持续集成。

安装Newman并运行Collection,步骤如下:

Step 1) 下载并安装NodeJs: http://nodejs.org/download/

Step 2) 打开命令行窗口并输入下面命令:

npm install -g newman

安装后如下图:

在这里插入图片描述

Step 3

Newman安装好之后,让我们回到Postmanworkspace。在Collections框中,单击三个点 ... 会出现新的选择选项,可看到Export选项,如下图:

在这里插入图片描述

Step 4

选择导出集合,默认使用推荐的集合版本,比如此处是v2.1,然后单击导出:

在这里插入图片描述

Step 5

选择你想要保存的地址之后点击保存,这里建议专门新建一个文件夹来存放你的Postman tests

Step 6

另外还需要导出我们的环境(enviroment)。单击全局环境下拉菜单旁边的eye图标,选择JSON格式下载。选择你想要的位置,然后单击Save。最好将环境放在与Step5导出的集合相同的文件夹中。

在这里插入图片描述

Step 7

导出Environment到集合文件夹后,现在回到命令行,将目录更改为保存集合和环境的位置。

cd C:\Users\Asus\Desktop\Postman Tests

Step 8

使用下面的命令运行你的测试集合:

newman run PostmanTestCollection.postman_collection.json -e Testing.postman_globals.json

运行的结果应该如下图:

在这里插入图片描述

关于Newman的一些基础指导如下:

1、只运行集合(如果没有环境或测试数据文件依赖关系,则可以使用此选项)

newman run <collection name> 

2、运行集合和环境(参数-eenvironment

newman run <collection name> -e <environment name> 

3、使用所需的编号运行集合的迭代

newman run <collection name> -n <no.of iterations>

4、运行数据文件

newman run <collection name> --data <file name>  -n <no.of iterations> -e <environment name> 

5、设置延迟时间

(这一点很重要,因为如果由于请求在后台服务器上,完成前一个请求时没有延迟时间直接启动下一个请求,测试可能会失败。)

newman run <collection name> -d <delay time>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis、mysql 创建时间(create_time)异常自动更新为当前时间

目录标题 一、问题二、原因三、解决 一、问题 bug: mybatis更新代码没有修改时间&#xff0c;但是时间会自动更新为当前时间。 。。。 被坑了挺久 二、原因 可能是创建表的时候&#xff0c; Navicat Premium 等可视化工具给你整活了。。。 三、解决 取消勾选。 注意&…

【超好用的工具库】hutool-all工具库的基本使用

简介&#xff08;可不看&#xff09;&#xff1a; hutool-all是一个Java工具库&#xff0c;提供了许多实用的工具类和方法&#xff0c;用于简化Java开发过程中的常见任务。它包含了各种模块&#xff0c;涵盖了字符串操作、日期时间处理、加密解密、文件操作、网络通信、图片处…

【漏洞复现】NUUO摄像头存在远程命令执行漏洞

漏洞描述 NUUO摄像头是中国台湾NUUO公司旗下的一款网络视频记录器&#xff0c;该设备存在远程命令执行漏洞&#xff0c;攻击者可利用该漏洞执行任意命令&#xff0c;进而获取服务器的权限。 免责声明 技术文章仅供参考&#xff0c;任何个人和组织使用网络应当遵守宪法法律&…

单片机FLASH下载算法的制作

环境 硬件使用正点原子STM32F407探索者V2开发板 编程环境使用MDK 下载工具使用JLINK FLASH芯片使用W25Q128 什么是下载算法 单片机FLASH的下载算法是一个FLM文件&#xff0c;FLM通过编译链接得到&#xff0c;其内部包含一系列对FLASH的操作&#xff0c;包括初始化、擦除、写…

【flink理论】动态表:关系查询处理流的思路:连续查询、状态维护;表转换为流需要编码编码

文章目录 一. 使用关系查询处理流的讨论二. 动态表 & 连续查询(Continuous Query)三. 在流上定义表1. 连续查询2. 查询限制2.1. 维护状态2.2. 计算更新 四. 表到流的转换1. Append-only 流2. Retract 流3. Upsert 流 本文主要讨论了&#xff1a; 讨论通过关系查询处理无界流…

Window MongoDB安装

三种NOSQL的一种,Redis MongoDB ES 应用场景: 1.社交场景:使用Mongodb存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人,地点等功能 2.游戏场景:使用Mongodb存储游戏用户信息,用户的装备,积分等直接以内嵌文档的形式存储,方便查询,高效率存储和访问…

一阶低通滤波器(一阶巴特沃斯滤波器)

连续传递函数G(s) 离散传递函数G(z) 转换为差分方程形式 一阶巴特沃斯滤波器Filter Designer参数设计&#xff1a;参考之前的博客Matlab的Filter Designer工具设计二阶低通滤波器 设计采样频率100Hz&#xff0c;截止频率20Hz。 注意&#xff1a;设计参数使用在离散系统中&…

Python使用Mechanize库完成自动化爬虫程序

Mechanize是一个Python第三方库&#xff0c;它可以模拟浏览器的行为&#xff0c;实现自动化的网页访问、表单填写、提交等操作。下面是一个使用Mechanize库编写的爬虫的例子&#xff0c;它可以爬取百度搜索结果页面的标题和链接&#xff1a; import mechanize from bs4 import …

短期经济波动:均衡国民收入决定理论(三)

短期经济波动&#xff1a;国民收入决定理论(三) 文章目录 短期经济波动&#xff1a;国民收入决定理论(三)[toc]1 总需求曲线及其变动1.1 总需求曲线含义1.2 总需求曲线推导1.2.1 代数推导1.2.2 几何推导 1.3 AD曲线及其变动1.3.1 扩张性财政政策1.3.2 扩张性货币政策 2 总供给曲…

【星海出品】云存储 ceph

https://ceph.com/en/ ceph组件介绍 Monitor 一个Ceph集群需要多个Monitor组成的小集群&#xff0c;它们通过Paxos同步数据&#xff0c;用来保存OSD的元数据。 OSD OSD全称Object Storage Device&#xff0c;也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有…

elasticsearch+canal增量、全量同步

目录 一、搭建环境&#xff1a; 1.1 下载软件上传到linux目录/data/soft下 1.2 把所有软件解压到/data/es-cluster 二、单节点&#xff08;多节点同理&#xff09;集群部署elasticsearch 2.1 创建es用户 2.2 准备节点通讯证书 2.3 配置elasticsearch&#xff0c;编辑/d…

C语言指针详解(1)(能看懂字就能明白系列)文章超长,慢慢品尝

目录 1、内存和地址 2、指针简介 与指针相关的运算符&#xff1a; 取地址操作符&#xff08;&&#xff09; 解引用操作符&#xff08;间接操作符&#xff09;&#xff08;*&#xff09; ​编辑 指针变量的声明 指针变量类型的意义 指针的基本操作 1、指针与整数相加…

leetcode栈和队列三剑客

用队列实现栈 队列是先进先出的&#xff0c;而栈是只能在栈顶进行出栈和入栈&#xff0c;那我们这道题要用队列来实现栈的话&#xff0c;这里给的思路是两个队列&#xff0c;因为两个队列的话就可以相互导数据&#xff0c;比如我们来实现这个题目的push函数&#xff0c;我们的栈…

PostgreSQL技术大讲堂 - 第34讲:调优工具pgBagder部署

PostgreSQL从小白到专家&#xff0c;是从入门逐渐能力提升的一个系列教程&#xff0c;内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容&#xff0c;希望对热爱PG、学习PG的同学们有帮助&#xff0c;欢迎持续关注CUUG PG技术大讲堂。 第34讲&#…

Niushop单商户及多商户v5商城系统第三方商业插件cps联盟视频购物及多包装库存转换的安装

一、后端安装 把video文件夹直接上传到addon目录下即可登录后台&#xff0c;设置->系统维护->插件管理->未安装插件&#xff0c;找到插件直接安装即可 3.在营销->营销中心->营销活动&#xff0c;找到视频列表这个插件&#xff0c;点击进去配置视频即可 4.装…

Vue h5页面手指滑动图片

场景&#xff1a; 四张图&#xff0c;要求随着手指滑动而滑动 代码&#xff1a; imgs是父盒子 poster-item是每个图片 .imgs {white-space: nowrap;overflow: hidden;overflow-x: auto;margin-bottom: 17px;.poster-item {display: inline-block;vertical-align: middle;wid…

Pytorch数据集读出到transform全过程

最近写代码又遇见了这个问题&#xff0c;又忘记了&#xff0c;于是写一篇博客记录一下。 一般我们使用pytorch获取CIFAR10数据集&#xff0c;一般这样写&#xff1a; mean [0.4914, 0.4822, 0.4465] std [0.2023, 0.1994, 0.2010] transform transforms.Compose([transform…

HBase中的数据表是如何用CHAT进行分区的?

问CHA&#xff1a;HBase中的数据表是如何进行分区的&#xff1f; CHAT回复&#xff1a; 在HBase中&#xff0c;数据表是水平分区的。每一个分区被称为一个region。当一个region达到给定的大小限制时&#xff0c;它会被分裂成两个新的region。 因此&#xff0c;随着数据量的增…

探索arkui(2)--- 布局(列表)--- 2(支持分组/实现响应滚动位置)

前端开发布局是指前端开发人员宣布他们开发的新网站或应用程序正式上线的活动。在前端开发布局中&#xff0c;开发人员通常会展示新网站或应用程序的设计、功能和用户体验&#xff0c;并向公众宣传新产品的特点和优势。前端开发布局通常是前端开发领域的重要事件&#xff0c;吸…

Unity中Shader矩阵的转置矩阵

文章目录 前言一、转置的表示二、转置矩阵三、转置矩阵的总结1、(A^T^)^T^ A2、(A B)^T^ A^T^ B^T^3、(kA)^T^ kA^T^ (k为实数)4、(AB)^T^ B^T^A^T^5、如果 A A^T^ 则称A为对称矩阵6、如果 AA^T^ I(单位矩阵)&#xff0c;则称 A 为正交矩阵&#xff0c;同时 A^T^ A^-1…