欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 在postman中设置环境变量和全局变量以及五大常用响应体断言

在postman中设置环境变量和全局变量以及五大常用响应体断言

2025/2/13 4:36:20 来源:https://blog.csdn.net/m0_57094953/article/details/145544403  浏览:    关键词:在postman中设置环境变量和全局变量以及五大常用响应体断言

一、什么是环境变量和全局变量

环境变量(Environment Variables)和全局变量(Global Variables)是 Postman 中用于存储和管理数据的两种变量类型,它们可以提高 API 测试的灵活性和可维护性。

1、 环境变量(Environment Variables)

环境变量是与特定环境关联的变量,适用于需要在不同环境(如开发、测试、生产三种环境,与测试有关的只有测试和生产两种环境)之间切换的情况。

特点:
局限于特定环境:只有在选中的环境下才能使用该变量。
适用于不同的环境配置,如 base_url、auth_token、数据库连接信息等。
优先级高于全局变量(如果变量名相同,环境变量会覆盖全局变量)。

2、全局变量(Global Variables)

全局变量是适用于所有环境的变量,不依赖于某个特定环境。

特点
适用于所有 Postman 请求,无论当前环境是什么。
适合存储通用信息,如 API 版本号、默认超时时间、默认用户 ID 等。
优先级低于环境变量(如果变量名相同,环境变量的值会覆盖全局变量的值)。

环境变量和全局变量对比图

二、为什么要在postman中设置变量

1、为了适应不同的测试环境,避免手动修改 API 请求 URL、认证信息。
2、方便团队协作,工作中肯定不止你一个测试人员,使用变量可以让每个成员可以使用不同的环境配置,而无需修改请求内容。
3、避免重复修改,当测试环境变更时,只需修改变量值,而不需要修改所有相关 API 请求。
4、共享数据,可用于存储临时的计算数据或跨请求共享数据(如 token、请求结果等)

总的来说,就是为了提高效率,我们设置一个变量,变量数据可以让不同的用例直接引用,还可以将这个用例的请求结果,当作下一个用例的请求数据,即接口和接口之间调用 依赖关系,需要借助全局变量和环境变量来解决关联问题。
例子:A接口返回的数据供B接口使用。

1.组织A接口http请求数据,发送 A接口 请求。
2.获取 A接口 返回的 响应数据,写入全局、环境变量中
3.组织 B接http请求,从 全局、环境变量中 获取 A返回的数据。

三、如何设置环境变量和全局变量

1、在 Postman UI 页面中手动设置

环境变量:

  1. 点击variables(变量)打开变量面板。
  2. 点击Environments(环境),打开环境变量面板
  3. 在左侧创建环境变量,,添加变量
  4. 选择该环境后,在 API 请求中使用 {{环境变量名}}。

在这里插入图片描述
在我们进行接口测试发送请求时,我们要用环境变量,需要选择对应的环境,因为环境变量是不公用的,只能在该环境下使用
在这里插入图片描述
使用环境变量时,我们在请求页面的params页面添加变量,添加方法为{{变量名}},如图所示。
在这里插入图片描述
全局变量:

  1. 点击variables(变量)打开变量面板。
  2. 点击Globals(全局变量),打开全局变量面板
  3. 在左侧创建变量。
  4. 创建完成后,在 API 请求中使用 {{全局变量名}}。

在这里插入图片描述
使用全局变量时,直接在请求页面的params页面添加变量,添加方法为{{变量名}},全局变量不需要选择环境,直接添加即可。

2、 在 Postman 脚本中动态设置

在 Script下的 Pre-request或 Post-response 中使用 JavaScript 代码创建变量,图中 Pre-request是在请求前设置, Post-response是在请求结束获取响应后时设置变量,可根据实际情况创建变量。
在这里插入图片描述
设置环境变量:

pm.environment.set("变量名", "变量值");

获取环境变量:

var 变量名 = pm.environment.get("变量值");
console.log(变量名);

设置全局变量:

pm.globals.set("变量名", "变量值");

获取全局变量

var 变量名= pm.globals.get("变量名");
console.log(变量名);

这里介绍的只是创建变量和获取变量的语法,具体的还要根据具体实际来设置,比如先从本次响应中获取想要的变量值,再将它赋值给变量,然后才能再其他用例中用到。写完语法,点击发送请求,然后去 Postman UI 页面中查看是否有你设置的变量,下图就是创建成功的例子。
在这里插入图片描述

四、postman五大常用断言

下面这五大常用断言在postman中都可以找到,我们如果要使用只需要点击,就会自动添加到左边的脚本框中,然后我们将变量名,断言结果修改为我们所要用的即可,无需全部自己编写。
在这里插入图片描述
1、断言响应状态码是否为为200,是200则返回"成功",返回的值我们是可以修改的,例如我们可以改为"啦啦啦,请求发送成功啦",可以设置为你像设置的任何语句,但是为了方便和易懂一般设置为成功。

// 1、断言响应状态码为200
pm.test("成功", function () {pm.response.to.have.status(200);
});

2、断言响应体包含某字符,同样的断言成功后的返回值我们都是可以修改的。include(“操作成功”),括号里填写的是你所要验证的响应体里是否包含的字符,

//2、响应体包含某字符
pm.test("响应体包含操作成功字符", function () {pm.expect(pm.response.text()).to.include("操作成功");
});pm.test("响应体包含10000字符", function () {pm.expect(pm.response.text()).to.include("10000");
});

3、断言响应体等于某个对象或字符串,同样的test后面的断言成功后的返回值我们都是可以修改的

// 3、断言响应体等于某个对象或字符串
pm.test("Body is correct", function () {pm.response.to.have.body("response_body_string");
});//例子
pm.test("断言响应体等于某个对象或字符串", function () {pm.response.to.have.body({"success": true,"code": 10000,"message": "操作成功!","data": "1b2d9a94-75e8-49de-acbd-6f5c644aa2c5"
});
});

4、断言响应体中的json数据,下面是三个例子。

//4、断言响应体中的json数据
pm.test("响应体中json数据的code为", function () {var jsonData = pm.response.json();pm.expect(jsonData.code).to.eql(10000);
});pm.test("响应体中json数据的success为", function () {var jsonData = pm.response.json();pm.expect(jsonData.success).to.eql(true);
});pm.test("响应体中json数据的message为", function () {var jsonData = pm.response.json();pm.expect(jsonData.message).to.eql("操作成功!");
});// var jsonData=pm.response.json();意思是定义一个变量,名称叫 jsonData ,值为:json格式的响应体数据
// pm.expect(jsonData.value).to.eql(100);意思是:postman 预期 json 格式的响应结果中 xxx(key)的值为 xxx
// value可以替换为:success、code、message、data
// to.eq1()中的值对应为:true、10000、"操作成功!"、"fe565654-7540-4c64-9949-3d4bf5ad03a4

5、下面这个是断言响应体的数据类型。

//5、断言响应头Content-Type
pm.test("断言响应头有Content-Type", function () {pm.response.to.have.header("Content-Type","application/json;charset=UTF-8");//括号里的键值对可以自己修改
});

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com