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

postman学习

一、为什么要做接口测试

接口的由来:连接前后端、客户端与服务端之间数据交互的桥梁,用来传递请求和返回数据,实现各端业务联通;

为什么做接口测试:

  1. 尽早发现bug:接口时业务核心,提前测接口,能在前端页面没写完时就查出逻辑错误、参数错误、数据异常、修复成本低
  2. 不受页面进度限制:前端、后端、移动端开发进度不一致,后端接口先开发完成,不用等页面写完就能直接测试
  3. 保障底层业务稳定:页面只是展示,核心业务逻辑、数据计算、权限校验都在接口,接口稳定整体系统才稳定
  4. 覆盖更广的场景:可轻松测异常参数、边界值、高并发、超时、权限拦截、手工页面测试很难全覆盖
  5. 方便自动化和回归:接口脚本稳定,后续迭代直接跑自动化回归,大幅节省测试时间
  6. 定位问题更快:出现报错直接判断时后端逻辑问题还是前端传参问题

二、postman简介

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

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

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

因为API里很多数据是敏感的,含Token或者一些私密信息,虽然Postman由强调这样安全,不会窥探用户信息,但还是要有效防范,敏感数据不要上传,网络没有绝对的安全

每次测试后将数据(case)保存在本地,下次使用或者更换设备再把数据拷过去可以继续使用

三、为什么选择Postman

如今,Postman的开发者已经超过1000万,选择使用Postman原因如下:

  • 简单易用:使用Postman,只需要登录自己的账户,只要在电脑上安装了Postman程序,就可以方便地随时随地访问文件
  • 使用集合:Postman允许用户为他们地API调用创建集合。每个集合可以创建子文件夹和多个请求,这有助于组织测试结构
  • 多人协作:可以导入或者导出集合和环境,从而方便共享文件,直接使用链接还可以用于共享集合。
  • 创建环境:创建多个环境有助于减少测试重复(DEV/QA/STG/UAT/PROD),因为可以为不同地测试环境使用相同地集合。这是参数化发生的地方,后续将会介绍
  • 创建测试:测试检查点(如验证HTTP响应状态是否成功)可以添加到每个API调用中,这有助于确保测试覆盖率
  • 自动化测试:通过使用集合Runner或Newman,可以在多个迭代中运行测试,节省了重复测试时间
  • 调试:PostMan控制台有助于检查已经检索到的数据,从而易于调试测试
  • 持续集成:通过其持续集成的能力,可以维护开发实践

四、下载安装Postman

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


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

Step3)你将看到启动后的页面如下,这是不登录的状态下,为轻量级API客户端–Lightweight API Client

Step4)如果你有账号,或者现注册一个账号,登录或创建帐户以使用集合、环境和解锁Postman中的所有免费功能,如下图:

五、使用Postman

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

  1. New:在这里创建新的请求、集合或环境;还可以创建更高级的文档、Mock Server 和Monitor以及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:单机它将显示不同请求的下拉列表,例如GET,POST,COPY,DELETE等等,在测试中最常用的请求是GET和POST.
  11. Request URL:也称为端点,显示API的URL
  12. Save:如果对请求进行了修改,必须单机save,这样新的更改才不会丢失或覆盖
  13. Params:这里将编写请求所需的参数,比如key-value
  14. Authorization:为了访问api,需要适当的授权。它可以是Username、Password、Token等形式
  15. Headers:请求头信息
  16. Body:请求体信息,一般在POST中才会使用到
  17. Pre-request Scipt:请求之前先执行脚本,使用设置环境的预请求脚本来确保在正确的环境中运行测试
  18. Tests:这些脚本实在请求期间执行的。进行测试非常重要,因为它设置检查点来响应状态是否正常、检索的数据是否符合预期以及其他测试
  19. Settings:最新版本有的设置,一般用不到

界面介绍:

六、处理GET请求

get请求用于从指定的URL获取信息,不会对端点进行任何更改,使用如下URL作为演示:

https://jsonplaceholder.typicode.com/users

在Postman的工作区中:

  • 1、选择HTTP请求方式为GET
  • 2、在URL区域输入链接
  • 3、点击“send”按钮
  • 4、你将看到下方返回200状态码
  • 5、在正文中有10个用户的结果,代表测试成功运行

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

七、处理POST请求

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

7.1、正常get请求

step 1)创建一个新的请求

step 2)在新请求中

  • 1、选择HTT请求方式为POST
  • 2、在URL区域输入链接:https://jsonplaceholder.typicode.com/users
  • 3、切换到Body选项

step 3)Body选项

  • 1、选中raw选项
  • 2、选择JSON

step 4) 复制前面Get请求返回的json内容的第一节,更改id为11,更改name、username、email

[ { "id": 11, "name": "wjww", "username": "qqq", "email": "www@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、Staus:显示201,为创建成功
3、并在Body里返回数据

7.2、参数化get请求

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

  • 1、将HTTP请求设置为get
  • 2、输入URL: https://jsonplaceholder.typicode.com/users,这里将链接的域名部分替换为参数,例如{{url}},请求的url现在应该是{{url}}/users
  • 3、点击send按钮

结果会报错,因为我们没有设置参数的源,如下图:

Step 2)使用环境设置所需的参数
1、点击Globals的add按钮

Step 3)变量-variable

1、将名称设置为url,该url为https://jsonplaceholder.typicode.com
2、ctrl+s保存

Step 4)回到get请求页面,然后点击发送Send按钮,get请求会返回结果,如下图:

八、创建Postman Tests

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

通常从pm.test开始,他可能与断言相比较,验证其他工具中的可用的命令
借来下创建一个包含Test的请求:
Step 1) 创建一个get请求
1、选择上方的Scripts标签
2、选择左侧的Post-response
3、从下面Snippets中选择“Status code:code is 200”,JS代码就会自动出现在窗口

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

Step 3)再添加另一个测试,这次将比较预期结果和实际结果
1、在Snippets中选择“Response body:JSON value check”选项,会出现一段代码,这个是用来检查值是否存在

Step 4)
1、代码中“Your Test Name”指的是这个测试的名字,描述测试的目的和内容
2、jsonData.value替换为jsonData[0].name(第一条测试数据的name值,第二条数据的全部值是:jsonData[1])
3、在eql后面的括号里输入Leanne Graham,这个测试的目的是判断第一条数据的name值是不是Leanne Graham

pm.test("检查第一条用例数据的name是Leanne Graham", function () { var jsonData = pm.response.json(); pm.expect(jsonData[0].name).to.eql("Leanne Graham"); });

Step 5)点击send发送请求,可以看到在Test Results里有两项显示测试通过

注意:在这里可以创建不同种类的测试,可以多探索下

九、创建测试集合

集合在组织测试套件中扮演重要角色,可以被导入或者带出,使得在团队之间共享集合和容易,本节学习如何创建和执行集合
1、点击左上角+,选择collection(集合)
2、创建collection窗口会出现在左侧,修改名称和对集合的描述
3、可以在左侧栏里观察到collection已经被创建好了
4、这就相当于文件夹,可以在里面创建各式各样的文件(请求)

十、运行集合

Step1)点击要运行集合的左边的省略号,选择Run

step 2)可以在左侧框选择要运行的Sequence,在左侧选择设置的内容,不懂的时候翻译下意思,

step 3)点击start run按钮,运行完就可以看到一些结果

十一、使用Newman运行集合

运行集合还可以通过newman,newman和collection runner之间的主要区别如下:

  1. Newman是postman的替代品,所以需要单独安装newman
  2. Newman使用命令行,而collection runner使用UI界面
  3. Newman可以持续集成

安装Newman并运行collection,步骤如下

Step 1)下载并安装nodejs:http://nodejs.org/download/
Step 2)打开cmd命令行窗口输入下列命令

npm install -g newman

Step 3) newman安装好后,回到postman,点击需要运行collection右侧的省略号,点击export collection

Step 4)点击export JSON导出collection集合

Step 5) 另外还需要导出我们的环境,比如global和environment,例如:点击Global,在右上角的省略号里勾选shared value,然后设置内容和Shared相同。

Step 6) 点击右上角export,将JSON文件保存在和collection的JSON文件相同的文件夹里

Step 8) 在文件夹里打开cmd,使用下面的命令运行测试集合,运行结果如图

newman run postman_collection.json -e globals.json

关于Newman的一些基础命令如下:
1、只运行集合(没有环境或测试数据文件依赖关系,选择此命令)

newman run <collection name>

2、运行集合和环境

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

3、让集合迭代几遍(跑几次)

newmna run <collection name> -n <no.of iterations>(次数)

4、运行数据文件

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

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

newman run <collection name> -d <delay time>
http://www.jsqmd.com/news/872041/

相关文章:

  • 观察Taotoken用量看板如何清晰展示各模型消耗与费用趋势
  • 如何让AI自动拆解复杂任务并逐步执行?2026年企业级Agent长链路任务闭环实战教程
  • 终极指南:如何用md2pdf实现离线Markdown转PDF的完美转换
  • RuoYiOffice 这类一体化平台如何降低企业系统集成成本
  • taotoken模型广场如何帮助开发者根据任务需求选择合适大模型
  • 2026年沈阳地坪漆厂家怎么挑?多维度解析沈阳地坪漆厂家哪家好 - 兔兔不是荼荼
  • 大型园林景观石供应技术研究与实践
  • ros2 control笔记(还没学完)
  • 学Simulink——推挽式(Push-Pull)DC-DC 变换器的磁芯饱和抑制仿真
  • 2026年实用降AIGC工具:亲测AI率从90%降至4%的靠谱方案
  • 洛雪音乐终极音源解决方案:如何构建多平台FLAC无损播放生态?
  • 系统架构师学校计划
  • 2026年惠州黄金回收门店推荐,品质之选尽在其中 - 黄金上门回收
  • 网易季报图解:营收306亿,净利108亿 游戏拉动增长,贡献84%收入
  • 基于深度学习+AI的玉米叶片病害目标检测与预警系统(Python源码+数据集+UI可视化界面+YOLOv11训练结果)
  • 【告别限速!2026最新免费下载神器,下载即用】Motrix 下载神器全攻略: 超详细图文指南(保姆级教学)
  • 2026国内铸铝门别墅入户门工厂权威推荐指南:铸铝门|别墅大门|锌合金门|自建房大门|入户门|铜门|防盗门|装甲门|高端墅门定制|工程集采|文旅地标配套|全屋入户售后服务体系 - 企业品牌优选推荐官
  • 【QMT 量化实战】股市 “高开低走“ 是陷阱还是机会?(下)附完整 Python 代码
  • 3步掌握跨平台网络资源捕获神器:res-downloader终极指南
  • 【RAG】【retrievers11】递归检索器 + 节点引用 + Braintrust评估
  • 2026 苏州高评价上门回收黄金实测:哪家靠谱不踩坑? - 速递信息
  • 2026 全国翻译公司实力排行榜:专业、合规、高效机构权威推荐 - 速递信息
  • 利用Taotoken模型广场为你的网站选择最合适的AI模型
  • MySQL 运维实战系列(一)二进制安装 Mysql 8.0
  • 论文初稿被批太水?,有哪些真正亲测好用的的降AI率软件推荐?
  • taotoken的openai兼容协议让现有应用迁移成本降至最低
  • GHelper:华硕笔记本硬件控制的模块化架构与技术实现深度解析
  • 海事边缘计算实战:基于 Linux 构建船舶多链路高可用网络与隔离防线
  • 7天深度拆解:openpilot自动驾驶系统技术实现与二次开发指南
  • 2026年海口黄金回收平台深度盘点,标杆企业花落谁家? - 黄金上门回收