postman全局变量和环境变量的区别

一、postman中可以设置全局和环境变量(以便可以存储一些例如:url、token值、测试参数等数据)

1、postman全局变量和环境变量的区别:

(1)全局变量:全局变量是全局唯一的,不可重复定义的变量

(2)环境变量:一个变量只能属于某个环境,在某一个环境中变量不可重复定义;在环境与环境之间可以定义重复的变量;一个环境可以包含多个环境变量;常见环境分类:开发环境、测试环境、生产环境。

2、变量的设置

(1)变量是通过key-value的形式来存储。

例如:url:http://test.baidu.com

(2)变量的使用:

通过{ {变量key}}来调用关键字获取值

例如:{ {url}},可以放在需要填写参数的任何位置。

(3)如何创建变量:

扫描二维码关注公众号,回复: 15656941 查看本文章

  点击postman界面右上角的Environment quick look,在弹窗中可以选择创建全局变量、导入变量文件、创建环境变量。

添加环境变量或全局变量

全局变量在创建后,任何时候都可以获取到,而环境变量只有在设置为当前环境时,才会获取到此环境中的变量。这个根据需要来设置是全局变量还是环境变量。

(4)变量的引用:

  如图所示,是一个环境变量的设置和引用,当鼠标悬浮在我们引用的变量{ {key}}上时,会显示当前变量的值。

二、参数传递和断言

  在postman中有专门的代码区域,可以通过js代码语言来实现一些自定义操作。在Pre-request Script区域,是请求发送前的代码区,比如我们需要对密码进行md5加密后发送,就可以使用js中的方法先进行加密。在Tests区域中,可以通过获取返回参数的值进行断言,断言失败的接口会显示为false结果。

如何进行参数传递:

  比如支付接口,需要上一个下单接口返回的订单号来作为入参。

  这个时候,首先要在下单接口的Tests区域中,获取到返回数据的订单号,然后存储为全局变量;

  接着在支付接口中,入参中的订单号值填写为我们设置的全局变量,这样就实现了一次参数传递。

三、在postman中对全局(环境)变量的操作方法

1.1、获取变量

(1)获取全局变量:

pm.globals.get(“variable_key”);

(2)获取当前环境变量:

pm.environment.get(“variable_key”);

(3)获取普通变量:

pm.variables.get(“variable_key”);

1.2、设置变量

(1)设置全局变量:

pm.globals.set(“variable_key”, “variable_value”);

(2)设置当前环境变量:

pm.environment.set(“variable_key”, “variable_value”);

1.3、清空变量值

(1)清空当前环境变量:

pm.environment.unset(“variable_key”);

(2)清空全局变量:

pm.globals.unset(“variable_key”);

2、返回数据的判断

这里需要注意的是,网上有一些教程比较老了,例如这种形式的写法:

tests[“Status code is 200”] = responseCode.code === 200;

这样的写法官方文档中已经表示不推荐使用,而是推荐统一的js书写格式。

(1)判断返回状态码

pm.test(“返回状态码为200”, function () {
  pm.response.to.have.status(200);
});

(2)判断返回header中是否有“Content-Type”字段

pm.test(“Content-Type字段存在”, function () {
  pm.response.to.have.header(“Content-Type”);
});

(3)判断接口返回内容匹配一个字符串

pm.test(“返回内容匹配字符串”, function () {
  pm.response.to.have.body(“response_body_string”);
});

(4)判断返回参数中包含某个字符串

pm.test(“字符串包含在返回值中”, function () {  pm.expect(pm.response.text()).to.include(“想要搜索的字符串”);});

(5)判断接口响应时间

pm.test(“接口响应时间小于200ms”, function () {  pm.expect(pm.response.responseTime).to.be.below(200);});

(6)把responseBody转为json字符串

var Jsondata =JSON.parse(responseBody);

(7)把xml格式返回转换为json格式

var jsonObject = xml2Json(responseBody);

(8)获取并判断返回参数的值

// 假设返回参数为:{“code” : 0}
pm.test(“断言code字段值是否为0”,function(){
  var jsonData = pm.response.json(); // 创建一个变量,值为返回参数(json格式)
  pm.expect(jsonData.code).to.eql(0); // 判断返回参数中code字段值为0
});

官方文档:https://learning.postman.com/docs/writing-scripts/script-references/test-examples/#making-assertions-on-the-http-response

猜你喜欢

转载自blog.csdn.net/sinat_33101665/article/details/128935572