Postman高效实践(上)

简介: Postman是一款优秀的HTTP接口测试软件,它最初是谷歌浏览器的插件,后来独立成PC软件,支持多平台(macOS / Windows / Linux)安装。测试对于开发人员开发高质量的应用不可或缺,对于后端开发,除了必要的单元测试之外,也应对HTTP接口层进行相应的测试,对于前端开发,除了对接口进行检验外,也可以Mock接口服务,达到与后端并行开发的目的。


一、概述



Postman是一款优秀的HTTP接口测试软件,它最初是谷歌浏览器的插件,后来独立成PC软件,支持多平台(macOS / Windows / Linux)安装。测试对于开发人员开发高质量的应用不可或缺,对于后端开发,除了必要的单元测试之外,也应对HTTP接口层进行相应的测试,对于前端开发,除了对接口进行检验外,也可以Mock接口服务,达到与后端并行开发的目的。

准备:学习前需掌握基本的HTTP协议和请求响应模型

设置:在导航工具栏右侧打开设置面板

微信图片13.png

  • 通用
  • Trim keys and values in request body:请求体中的键和值去掉首尾空格
  • Send no-cache header:设置不缓存和请求头,保存每个响应都是最新的
  • 主题:配置显示主题
  • 快捷键:查看快捷键
  • 数据:导入/导出数据
  • 插件:下载Newman插件
  • 证书:基于域名添加和查看客户端证书
  • 代理:配置代理
  • 更新:配置自动更新


二、请求



Postman对接口测试就是创建一个HTTP接口的请求(Request),然后发送请求,检验响应结果。在Postman中,每个请求(或请求集合)都自己的名称和描述。


1. 请求


微信图片12.png


1.1 API

我们可以把API接口签名定义为:Method + URL,不管是普通接口还是RESTful风格设计的接口,两个不同的API不可能存在相同的请求方法和请求URL。

URL:在接口请求窗口直接输入URL,可以在 Params 标签页可以添加URL请求参数,如果是RESTful风格接口,可以使用:添加 Path Variable

https://api.library.com/:entity/

对于URL需要注意:

  • 如果没有输入协议,Postman会自动添加http://
  • Postman会自动对URL或URL请求参数进行编码,可以选中文本右击EncodeURIComponent来手动进行编码

Headers:在 Headers 标签页中就可以管理请求头

点击Presets来管理常用的请求头,可以对请求头进行预设置,比如多个接口使用相同的请求头。

Method:在URL输入栏左侧下拉框设置请求方式。

可以在侧边栏History中查看请求历史记录


1.2 请求体

Postman提供几乎所有的请求体,在 Body 标签页中配置接口请求的请求体,在你选择不同的请求体格式时,Postman会自动添加对应的Content-Type请求头,Binary形式的请求体不会自动添加。

None:(默认)没有请求体

Form-data:配置multipart/form-data格式的请求体,支持文件上传

Urlencoded:配置与URL请求参数相同的编码格式,不支持文件上传

Raw:原生请求体,Postman不会对请求体做任何修改,除了替换变量之外

Binary:配置无法输入的内容,比如:文本、图像、音频、视频文件

使用Raw格式请求体可以选择不同内容格式来高亮显示请求体内容,比如XML、JSON等,还可以点击BeautifyCtrl+B)来格式化内容。

URL请求参数格式:a=b&b=c&b=d,GET请求是将参数使用?号连接放置在URL后面,POST请求的Urlencoded方式则是将参数放置在请求体里。

在输入参数的时候可以直接将 JSON 复制粘贴到参数表格中,可以快速输入参数。


1.3 Cookies

在请求标签栏右侧单击 Cookies 可以管理请求的Cookie。

微信图片11.jpg


1.4 接口权限

Authorization标签页用来配置接口权限请求头,支持多种权限:

  • Inherit auth from parent
  • No Auth
  • Bearer Token
  • Basic auth
  • Digest Auth
  • OAuth 1.0
  • OAuth 2.0
  • Hawk Authentication
  • AWS Signature
  • NTLM Authentication [Beta]


2. 响应

微信图片10.png

2.1 API

响应是请求接口后的返回,Postman支持查看多种类型响应,JSON、XML、HTML等,支持格式化和预览功能。

Headers:在响应的 Headers 标签页中可以查看响应的请求头

响应时间:在响应的标签页右侧可以查看接口的响应时间

响应大小:在响应的标签页右侧可以查看接口的响应内存大小

Cookies:在响应的 Cookies 标签页查看接口响应的Cookie

Tests:在响应的 Test Results 标签页查看接口测试的结果

2.2 响应体

Body 标签页中查看响应的响应体,Postman也支持种查看格式。

Pretty:对响应体内容格式化显示,比如JSON、XML等

Raw:原生显示,Postman对响应体不会做任何修改

Preview:预览显示,Postman会对HTML响应进行渲染

Pretty显示模式中,如果想要Postman自动格式化显示JSON、XML等响应体,确保接口响应返回相应的Content-Type,如果没有,你需要手动强制转换,也可以通过设置 Settings | General | REQUEST | Language detection 来设置默认返回类型。


2.3 保存响应结果

微信图片9.png

点击标签页右侧的 Save 按钮可以保存请求该次的响应结果,保存后可以通过点击窗口右上角的 Examples 来查看该接口保存的响应结果。

接口保存的响应结果可以用作Mock时接口的返回结果。


3. 抓包


Postman支持代理服务器功能,手机等客户端可以通过连接Postman代理服务器实现抓包功能。

微信图片8.png

点击导航栏右侧工具栏中的雷达按钮,通过配置端口和过滤规则,以及Target,一般设置为History,这样就可以在 History 请求历史记录里面查看拦截客户端的请求,这样简单的配置后,当前PC就可以当作代理服务器了,然后手机网络配置代理为当前PC的IP地址和前面配置的端口,就可以实现抓包。

微信图片7.png

Postman可以通过当前请求来生成各种语言的代码片段,点击请求的标签页右侧的 Code 来创建,通过选择左上角的下拉列表

来选择不同的语言或框架。


三、集合



微信图片6.png

Postman的集合可以对一组请求分类,也可以为一类请求创建文件夹。为什么要创建集合?

  • 组织:你可以按类保存你的请求,而不需要每次通过历史记录去搜索自己的请求
  • 文档:你可以为请求、文件夹、集合添加名称和描述,在集合中可以浏览生成的请求文档
  • 测试:你可以针对某类请求添加测试脚本,或者整合测试用例
  • 工作流:你可以使用脚本在API请求之间传递数据,构建和API实际操作相符的工作流


1. 创建集合

微信图片5.png

单击侧边栏的 + New Collection 或工具栏第一个 + New 按钮可以创建一个集合,创建集合的时候可以针对集合添加下面内容:

  • 输入集合的名称和描述
  • 配置集合的授权类型
  • 配置集合的前置脚本
  • 配置集合的测试脚本
  • 配置集合的变量

集合的授权、脚本和变量对该集合下的所有请求有效。针对集合的配置,可以抽象该集合下请求的公共配置,从而减少配置量,至于脚本的执行后面会说到。


2. 管理集合

微信图片4.png

2.1 集合详情

单击集合右侧的 ▸图标打开集合的详情栏,集合名称下面存在以后按钮菜单和标签页,按钮菜单如下:

  • Share:分享集合
  • Run:运行集合,批量运行请求,后面介绍
  • View in web:在Web页面中查看

标签页如下:

  • Documentation:接口文档
  • Monitors:监控
  • Mocks:Mock服务
  • Changelog:修改日志


2.2 集合菜单

单击集合右侧的菜单 ... 打开集合的菜单项,除去与详情页相同的功能菜单外如下:

  • Rename:重命名
  • Edit:编辑
  • Create a fork:创建一个Fork仓库
  • Merge changes:将当前Fork仓库的修改合并至主仓库
  • Add Reauest:添加一个请求
  • Add Folder:添加一个文件夹
  • Duplicate:复制当前集合
  • Export:导出当前集合
  • Remove form workspace:从工作空间删除

Postman中对请求、文件夹和集合添加描述时,可以使用Markdown语言来编写,支持插入图片等内容,在生成接口文档的时候就可以很好得展示描述内容。


2.3 版本管理

版本管理和Git原理一样,在多人协作的时候,可以从主集合Fork一个一样的集合出来,各自维护,然后可以将各自的修改合并到主集合上,也可以从主集合上摘取最新的集合版本。你可以从个人的工作空间或团队的工作空间中Fork一个集合,前提是工作空间属于你或者你是团队工作空间的一个成员。

2.3.1 Fork集合

点击集合的菜单项选择 Create a fork 来创建一个Fork集合。

微信图片3.gif

Fork集合的时候不会Fork集合的Mock数据和监控数据,如果你要使用需要重新创建。

2.3.2 拉取修改

在Fork集合后,如果主集合被其他人更新了,此时Fork集合和主集合就不会一样,在这种情况下,可以点击Fork集合的菜单选择 Merge changes 来拉取最新的修改。

2.3.3 合并修改

在Fork集合后,如果你对Fork集合做了一个修改,想要将修改合并到主集合上面去,可以点击Fork集合的菜单选择 Merge changes 来操作。

在合并修改的时候有下面三个选择:

  • Merge changes: 将Fork集合的修改合并到主集合
  • Merge changes and update source: 将Fork集合的修改合并到主集合并更新Fork集合
  • Merge changes and delete source: 将Fork集合的修改合并到主集合并删除Fork集合


2.3.4 解决冲突

当两个或以上用户编辑了同一个请求、文件夹或集合时,在合并集合的时候会产生冲突,在这种情况下,我们在合并集合的时候需要先解决冲突在进行合并操作。

微信图片2.png

如果你对Git有所了解,对版本管理这一节掌握没有太大问题。


3. 导入集合


Postman可以导入和导出集合、环境、全局变量和请求头预配置,也可以通过文件和URL形式资源导入其他格式的API数据,比如Swagger、WADL等等。


3.1 导出数据


Postman可以以JSON文件形式导出所有数据,包括各种元数据,你可以重新导入JSON文件来创建集合,或者使用Newman在命令行界面运行该JSON文件。

导出集合:点击集合菜单的 Export 来导出集合数据

导出环境:打开 Manage Environment 界面来配置和导出环境数据

微信图片1.jpg

导出数据:打开设置菜单,点击 Data | Export data | Download 来导出全部数据,包括所有集合、环境、全局变量和请求头预配置等数据。


3.2 导入数据

Postman可以通过文件或URL资源来导入API数据,导入的数据格式可以是多种多样的,比如:


  • Postman:通过Postman设置导出的或集合菜单导出的数据
  • cURL:有效的cURL(只能是HTTP协议)命令
  • RAML:将RAML定义的API数据导入成集合
  • Swagger:将Swagger生成的API数据导入成集合
  • WADL:导入WADL规范的API数据

导入步骤:

微信图片_20220518195032.png










目录
相关文章
|
9月前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
498 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
8月前
|
数据可视化 JavaScript 前端开发
利用Postman和Apipost进行API测试的实践与优化-动态参数
在API测试中,Postman和Apipost是常用的工具。Postman内置变量功能有限,面对复杂场景时需编写JavaScript脚本,增加了维护成本。而Apipost提供丰富的内置变量、可视化动态值配置和低代码操作,支持生成真实随机数据,如邮箱、手机号等,显著提升测试效率和灵活性。对于复杂测试场景,Apipost是更好的选择,能有效降低开发与维护成本,提高测试工作的便捷性和可维护性。
|
XML JSON JavaScript
Postman高效实践(下)
四、脚本 Postman基于Node.js开发了一个强大的运行脚本平台,可以在请求和集合运行前后添加更多的动态操作,你可以使用它来编写测试用例、构建请求,你可以在下面两个事件执行的时候添加JavaScript代码: 在请求发送到服务器之前,可以在 Pre-request Script 标签页添加前置脚本 在响应到达之后,可以在 Tests 标签页上添加测试脚本
531 0
Postman高效实践(下)
|
JSON JavaScript 测试技术
Postman接口测试工具详解
Postman接口测试工具详解
367 1
|
10月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
7月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
326 2
|
9月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
668 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
11月前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
665 11
|
JSON Java 数据格式
使用postMan调试接口出现 Content type ‘multipart/form-data;charset=UTF-8‘ not supported“
本文介绍了使用Postman调试接口时遇到的“Content type ‘multipart/form-data;charset=UTF-8’ not supported”错误,原因是Spring Boot接口默认只接受通过`@RequestBody`注解的请求体,而不支持`multipart/form-data`格式的表单提交。解决方案是在Postman中将请求体格式改为`raw`并选择`JSON`格式提交数据。
使用postMan调试接口出现 Content type ‘multipart/form-data;charset=UTF-8‘ not supported“
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
625 5
Postman 接口测试配置 Pre-request Script