postman之环境变量和全局变量

本文介绍了Postman中的环境变量和全局变量的使用,包括它们的区别和获取方式。详细讲解了如何通过JSON提取器和正则表达式进行接口关联,并列举了Postman内置的动态参数如时间戳、随机数和GUID。此外,还阐述了多种断言方法,如状态码、响应内容等,以及自定义全局变量断言的实现。最后,提到了如何设置全局断言以提高测试效率。

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

环境变量:本质就是全局变量,作用用于设置环境

全局变量:能够在任何接口都能访问的变量

获取环境变量和全局变量的值通过:{{变量名}}

一、接口关联

1、使用json提取器实现接口关联

get接口请求:
console.log(responseBody);//打印返回的数据
//使用json提取器提取返回数据的值
//把返回的字符串格式的数据转成对象形式
var result = JSON.parse(responseBody);
console.log(result.x)//x为数据key
//把数据值设置为全局变量
pm.globals.set("x",result.x);//"x"为变量名称

post接口参数:
{{x}}

2、使用正则表达式提取器实现接口关联

get接口:
//使用正则表达式提取器实现接口关联,match匹配。
responseBody.match(new.RegExp('"x""(.*?)"'));//“x”为想要值左侧全部内容,“(.*?)”为正则匹配值
console.log(result[y]);//y为输出数组目标值的位置
//设置全局变量
pm.globals.set("m",result[y]);//m为变量名称

post接口参数:
{{m}}

二、postman内置动态参数以及自定义的动态参数

postman内置动态参数:

{{$timestamp}}:生成当前时间的时间戳

{{$randomInt}}:生成1-1000之间随机数(可能会重复)

{{$guid}}:生成随机的GUID的字符串

自定义动态参数:

接口获取前脚本:
//手动获得时间戳
var times = Date.now();
//设置为全局变量
pm.globals.set{"times",times};

使用时:{{times}}

三、postman断言

1、常规六种断言:

status code:code is 200 检查返回的状态码是否为200

//状态断言
pm.test(“检查返回状态为200”,function(){
    pm.response.to.have.status(200);
})

response body contains sting 检查响应中包括指定字符串

//业务断言
pm.test(“检查包含字符串x”,function(){
    pm.expect(pm.response.text()).to.include(“x”)
});

response body json value check 检查响应中其中json的值

//业务断言
pm.test(“检查x的值为y”,function(){
    Var jsonData = pm.response.json();
    pm.expect(jsonData.x).to.eql(y); //x为返回数据,y为数据的值
});

response body:is equal to a string 检查响应等于一个字符串

//业务断言
pm.test(“检查响应数据为一个x”,function(){
    pm.response.to.have.body(“x”);
});

response headers:content-type 检查是否包含响应头content-type

pm.test(“检查响应头包含content-type”,function(){
    pm.response.to.have.header(“content-type”);
})

 response time is less than 200ms 检查请求耗时小于200ms

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

2、自定义动态参数(全局变量)断言的方式:

Pm.globals.get("x")

Pm.test(“检查响应中包含标签名”,function(){
    Pm.expect(pm.response.text()).to.include(“文本”+pm.globals.get("x"));//x为全局变量
});

globals{"x"}

Pm.test(“检查响应中包含标签名”,function(){
    Pm.expect(pm.response.text()).to.include(“文本”+globals{“x”});//x为全局变量
});

globals.x

Pm.test(“检查响应中包含标签名”,function(){
    Pm.expect(pm.response.text()).to.include(“文本”+globals.x);//x为全局变量
});

3、全局断言:

项目->edit->tests->将全局使用的断言放进去-> 其他业务接口只需要做业务断言即可

例如:将全局使用的状态断言放进全局断言内,其他

//状态断言
pm.test(“检查返回状态为200”,function(){
    pm.response.to.have.status(200);
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值