Postman

本文详细介绍了Postman进行接口测试的各种操作,包括GET和POST请求的区别、环境变量与全局变量的使用、接口关联、动态参数、断言、批量测试、数据驱动测试、MockServer以及Cookie和Token鉴权。同时讲解了使用Newman实现命令行接口测试,并探讨了Postman在持续集成中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Postman执行接口测试

在这里插入图片描述

postman请求页签:
Params:get请求传参
authorization:鉴权
headers:请求头
Body:post请求传参
		form-data:既可以传键值对参数也可以传文件。
		x-www-from-urlencoded:只能够传键值对参数
		raw:json,text,xml,html,javascript
		binary:把文件以二进制的方式传参。
pre-request-script:请求之前的脚本。
tests:请求之后的断言。
cookies:用于管理cookie信息。

API接口

在京东万象找免费测试的接口

获取新闻 标识:get
接口地址: https://way.jd.com/jisuapi/get
请求方式: HTTPS GET POST
请求示例:https://way.jd.com/jisuapi/get?channel=头条&num=10&start=0&

参数请求

在这里插入图片描述
请求示例

在这里插入图片描述
channel还可以为在这里插入图片描述

结果
在这里插入图片描述

响应页签:
Body:接口返回的数据。
	Pretty:以Json,html,XML....不同的格式查看返回的数据。
	Raw:以文本的方式查看返回的数据。
	PreView:以网页的方式查看返回的数据。
Cookies:响应的Cookie信息
Headers:响应头Test Results”断言的结果。
200状态码
OK状态信息
372MS  响应的时间
37.17KB     响应的字节数。

get请求和post请求的区别:

1.get获取数据 post提交数据
2.post比get安全
3.本质区别是传参的方式不一样:get请求在地址栏后以?方式传,多个参数之间&分隔;post是在body以表单的方式传参

2.Postman环境变量和全局变量

环境变量:就是全局变量。
全局变量:能够在任何接口里面访问的变量。
环境变量名必须一致
生产环境的ip就是域名

获取环境变量和全局变量值:{{变量名}}
在这里插入图片描述

3.接口关联

1.json提取器实现接口关联

第一个接口:
console.log(responseBody);
//使用json提取器提取title的值
var result = JSON.parse(responseBody);
//把返回的字符串格式的数据转换成对象的形式
console.log(result.title);
//把title设置为全局变量
pm.globals.set("title", result.title);//title为全局变量名,后一个为全局变量值
第二个接口:{{title}}

2.使用正则表达式实现接口关联

第一个接口:
//使用正则表达式提取器实现接口关联,match匹配。
var resultt = responseBody.match(new RegExp('"title":"(.*?)"'));
console.log(resultt[1]);
//设置为全局变量
pm.globals.set("title", resultt[1]);
第二个接口:{{title}}

在这里插入图片描述

匹配到两个值
0:包括左边界和右边界
1:所需值

在这里插入图片描述

4.Postman内置动态参数以及自定义的动态参数

Postman内置动态参数:
{{$ timestamp}} 生成当前时间的时间戳
{{$ randomInt}}  生成0-1000之间的随机数
{{$ guid}} 生成速记GUID字符串。

自定义动态参数:
//手动获得时间戳
var times = Date.now();
//设置为全局变量
pm.globals.set("times", "times");

使用:{{times}}

5.其他测试接口

6.Postman断言

断言:一般一个完整的接口测试,包括:请求->获取响应正文->断言,请求和获取响应正文很常见。断言一般是对请求的响应结果做操作,判断预期结果与实际结果是否一致。

常规六种断言

状态断言
## Status code:Code is 200  检查返回的状态码是否为200
业务断言
## Response body:Contains string  检查响应中包括指定字符串
## Response body:Json value check 检查响应中其中json的值
## Response body:is equal to a string 检查响应等于一个字符串
Response headers:Content-Type...检查是否包含响应头Content-Type
Response time is less than 200ms:检查请求耗时小于200ms

在断言中获取自定义动态参数(全局变量)的方式:
pm.globals.get("variable_key")
globals["variable_key"]
globals.variable_key
例如:
pm.test("检查字符串是否包含result", function () {
pm.expect(pm.response.text()).to.include("result"+pm.globals.get("times"));
});

若项目下的接口都需要添加同一个断言,则可以添加全局断言
在这里插入图片描述

7.Postman批量运行测试用例

在这里插入图片描述
注意:文件上传接口测试需要把文件拷贝到工作路径文件夹并运行读取文件。

在这里插入图片描述

8.Postman数据驱动之CSV文件和JSON文件的处理

正例反例一起测试,不同的错误返回不同的错误码。下面的例子是各有一个数据为空。

8.1 csv文件

1.将csv数据文件写好,根据不同变量为空时,错误码不同在这里插入图片描述

2.在Params参数取数据文件的值,通过全局变量获取{{变量名}}
在这里插入图片描述

3.修改断言,断言的时候,取断言的值data.取文件的数据

pm.test("检查响应中包括access_token", function () {
    pm.expect(pm.response.text()).to.include("data.access_token");
});

4.通过正则表达式判断取值【假如异常用例,没有cookie就无法取值,所以要添加判断】

//判断当返回结果中包括有access_token时才通过正则表达式取值
if(responseBody.search("access_token")!=-1){

//使用正则表达式提取器实现接口关联,match匹配。
var resultt = responseBody.match(new RegExp('"access_token":"(.*?)"'));
console.log(resultt[1]);
//设置为全局变量
pm.globals.set("access_token", resultt[1]);
}
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include(data.assert_value);
});

在这里插入图片描述

在这里插入图片描述

8.2 json文件

在这里插入图片描述

**特别注意:在最后不要加“,”否则文件会报错。

json文件与csv文件是数据构建格式不一样,json文件的其他步骤则跟csv文件一样。

9.测试必须带请求头的接口

通过抓包工具抓取网页请求头信息
常见(加粗)的请求头:

Host请求的主机地址
ConnectionConnection
Accept客户端接收到的数据格式
X-Requested-With异步请求
User-Agent客户端的用户类型
Referer来源
CookieCookie信息
Content-Type请求内容的格式

10.Postman接口Mock Server服务器

mock 模拟器
当后端的接口还没有开发完成,前端的业务需要调用后端的接口。
1.创建一个新的mock
在这里插入图片描述
在这里插入图片描述

2.在环境变量中添加地址
在这里插入图片描述
3.测试
在这里插入图片描述
可以在Body中直接修改需要的返回值
在这里插入图片描述

11.Postman的Cookie鉴权,Token的鉴权

什么是cookie?
cookie是一小段文本,格式是key=value。

cookie鉴权原理:

  1. 当客户端第一次访问服务器的时候,那么服务器就会生成Cookie信息,并且在响应头的set-cookie里面把生成的cookie信息发送给客户端。
    在这里插入图片描述

  2. 当客户端第2-N次访问服务器的时候,那么客户端就会在请求头的cookie带上cookie信 息,从而实现鉴权。
    在这里插入图片描述

cookie的分类 会话cookie:保存在内存,当浏览器关闭之后就会自动化清除cookie。
持久cookie:保存在硬盘,浏览器关闭后不会清除,只有当失效时间到了才会自动清除。

在这里插入图片描述

12.Postman实现接口的加密和解密

目前市面上的加密的方式

  1. 对称式加密:DES,AES,Base64加密算法
  2. 非对称加密:双钥(公钥和私钥,【公钥加密,私钥解密】,【私钥加密,公钥解密】)加密,RSA加密算法 (BEJSON网址可用)
  3. 不考虑解密:MD5,SHA1,SHA3

Postman如何实现加密和解密。

MD5最广泛。
在这里插入图片描述
取值{{变量名}}

13.Newman

postman是专为接口测试而生。newman是专为postman而生。newman可以让我们的postman的脚本通过非GUI(命令行)的方式。
运行命令:newman run
常用参数:

-e引用环境变量
-g引用全局变量
-d引用数据文件
-n指定测试用例迭代的次数
-r cli,html,json,junit --reporter-html-export指定生成HTML的报告。

创建一个文件夹,把环境变量,全局变量、以及测试用例导出生成json文件,放入文件夹,将data.json文件一起。cmd打开命令

执行命令如下: E:\postman>newman run testcase.json -e environment.json -g globals.json -d data. json -r cli,html,json,junit --reporter-html-export report.html

14.Postman+Newman+Jenkins实现接口测试持续集成

1.新建一个项目
2.设置自定义工作空间。
在这里插入图片描述

3.执行windows的批处理命令
在这里插入图片描述
4.执行系统的Groovy脚本
在这里插入图片描述
5.生成的HTML的报告集成到Jenkins
在这里插入图片描述
报告查看
在这里插入图片描述

03-25
### Postman 使用指南 Postman 是一款功能强大的 API 开发和测试工具,广泛应用于现代软件开发生命周期中。以下是关于如何使用 Postman 的详细说明: #### 下载与安装 要开始使用 Postman,需先从官方网站下载并安装该应用。根据官方统计,目前已有超过 1000 万开发者在使用此工具[^1]。访问 Postman 官方网站 (https://www.postman.com/) 并按照提示完成下载和安装过程。 #### 基本概念 - **集合(Collections)**: 用户可以通过创建集合来组织多个 API 请求。每个集合可以进一步划分子文件夹以便更好地管理复杂项目。 - **环境(Environments)**: 支持定义多套配置参数,适用于不同阶段的开发需求(如 DEV、QA、STG 等),从而减少重复劳动。 #### 功能详解 - **多人协作** Postman 提供了便捷的方式让团队成员之间分享集合和环境设置。除了传统的导入导出操作外,还能够通过链接形式直接共享特定资源。 - **自动化测试** 利用内置脚本语言 JavaScript 编写断言逻辑,在每次发送请求之后自动校验返回结果是否符合预期;借助 Collection Runner 工具实现批量执行一系列预设好的步骤[^4]。 - **调试能力** 内嵌式控制台界面可以帮助开发者追踪整个流程中的变量变化以及网络交互细节,极大地提高了排查问题效率。 - **持续集成支持** 集成 CI/CD 流程变得轻而易举,得益于其开放插件架构设计使得第三方服务无缝对接成为可能[^2]。 #### 示例代码片段 下面展示了一个简单的 POST 方法调用示例及其对应的 URL 地址: ```javascript pm.sendRequest({ url: 'http://example.com/process/requisitionOrder/updateDistributeStatus', method: 'POST', header: { "Content-Type": "application/json" }, body: JSON.stringify({ key: value }) }, function(err, res){ console.log(res); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值