0
点赞
收藏
分享

微信扫一扫

postman高级功能/进阶功能学习


以下提到的功能,全是免费版即可使用的。
首先建议注册账号登录使用,毕竟数据同步还是挺好的。
以下只说几处我自己知道的或者觉得实用的几个特色功能。

0.基本情况

当前时间:2021年9月9日

最新postman版本:v8.12.1

免费版。

如下图。

postman高级功能/进阶功能学习_postman高级功能

1.variable

1.1 一般都会拿来发起http请求

如下图

postman高级功能/进阶功能学习_postman高级功能_02


里面可以自由地定义自己想好的 ​​请求类型​​​、​​header​​​,​​body​​​,​​url​​等等,不再赘述。

1.2初级进阶

1.2.1 简单变量的使用

如果请求多了,会觉得烦,比如每次都要写​​http://xxxxx:8080/...​​​,​​http://xxxxx:8081/...​​之类的这些内容,不由地想要是能有变量就好了。

答案是​​有​​。

比如我自己定义一个​​root​​​变量,表示 ​​http://xxxxx:8080/​​,那么我每次就不用总是写那么繁琐了。

如图,

postman高级功能/进阶功能学习_免费版_03


看得出,变量还可以分为局部的和全局的。

顾名思义,不必多解释。如下图,新增一个root变量。

postman高级功能/进阶功能学习_postman_04


软件中有说明,​​CURRENT VALUE​​​ 和 ​​INITIAL VALUE​​。

可结合团队使用。

不过根据说明,看得出,如果是自己一个人用的话,只设置 ​​INITIAL VALUE​​就够了,反正另一个也会继承它的值。

postman高级功能/进阶功能学习_postman高级功能_05


然后保存。使用

postman高级功能/进阶功能学习_免费版_06


如图即可。

也就是说,变量使用{{}}包裹即可使用
当然,变量不见得只能用在url里,也可用在​​​body​​​,​​form​​等各处参数里,都可自由发挥,不再赘述。

注:这里的这个root变量其实是 ​​Environment​​​变量。
值得一提的是 ​​​Environment​​​变量是跟着​​workspace​​走的,即 environment变量在不同的workspace中并不通用。

1.2.2 系统内置变量的使用

这一部分其实很有趣,估计很多人都不知道。

系统内置了很多常用参数,在测试的时候很有用。

一般都是​​{{randomXXX}}​​的形式。

随便示例几个。

postman高级功能/进阶功能学习_postman_07


甚至还能有随机的在线图片,随机语句等等,很方便。每个请求究竟发出了什么内容,得到了什么返回,还可以打开console看详情。

postman高级功能/进阶功能学习_postman_08

1.2.3 批量请求怎么办,runner

用上述方式测试看似很爽,但接下来又有下一个问题,比如我想通过调用一个产生用户的接口,产生10000条记录到数据库里。那我要怎么办,要真的点击10000次吗?

答案是不用。

有个东西叫​​runner​

postman高级功能/进阶功能学习_postman_09


选择想要重复执行的请求,拖过去。

postman高级功能/进阶功能学习_postman教程_10


设置重复次数,间隔时间,其他参数。点击​​run test​

postman高级功能/进阶功能学习_postman_11


则会开始循环执行。

postman高级功能/进阶功能学习_postman教程_12


并且可以看到执行结果,略。

1.3 高级进阶

1.3.1 进阶1 Pre-request Script

其实在实际应用中,上面的功能尽管便利,但依然不足以满足所有需求,

比如,有些变量它没有内置,我想自己生成。

或者在请求执行前我做点什么操作,能行吗?

答案是​​可以​​。

他就是 ​​Pre-request Script​​,可以直接写js,直接定义变量。

postman高级功能/进阶功能学习_免费版_13


以下随便上一段我的工作中的某个请求的​​Pre-request Script​

// var a = pm.environment.get("{{$randomPhoneNumber}}");

var randomScore = Math.round(Math.random() * 100 );
pm.collectionVariables.set("randomScore", randomScore);


var subjectCode = NewGuid();
pm.collectionVariables.set("subjectCode", subjectCode);

var mobileArr = ['13800000001','13800000002','13800000003','13800000004','13800000005','13800000006','13800000007','13800000008','13800000009','13800000010','13800000011','13800000012','13800000013','13800000014','13800000015'];

var randomMobile = getMoble();
pm.collectionVariables.set("randomMobile", randomMobile);

//--- 以下是方法
function S4()
{
return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
}
function NewGuid()
{
return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}

//---
/**

* 随机生成手机号

*/

function getMoble() {
var index = Math.floor(Math.random() * (mobileArr.length - 1) );
return mobileArr[index];
}

//------- 随机时间
var randomYear = 2020;
var randomMonth = Math.floor(Math.random() * 11 ) + 1;
var randomDate = Math.floor(Math.random() * 30 );
var dateStr= randomYear + "-" + randomMonth + "-" + randomDate;
console.log(dateStr);
var date = new Date(dateStr);
var submitTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
pm.collectionVariables.set("submitTime", submitTime);

这段代码里随便定义了几个变量(用的js),然后在请求的参数中就可以直接使用了。


postman高级功能/进阶功能学习_postman_14


另外,不仅可以设置一般的变量,还可以设置全局的等各种变量,具体看官方教程。

如下图。

postman高级功能/进阶功能学习_免费版_15

1.3.2 进阶2 Tests

看名字就知道什么意思了。

就像单元测试,还可以判定这个请求的这个返回是否成功。

可以跟runner结合使用,口味更佳。

如下图:

postman高级功能/进阶功能学习_postman高级功能_16


随便上一段代码:

pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("成功");
});

一般来说,上面的内容已经很实用了,会用就已经如虎添翼了。

下面几个部分,也很实用,我大致了解了它的用法,但也并不常用,以后有心情有时间再补充详细内容。
@2021年9月9日

2. environment

environment在workspace中生效。
在上面的变量章节里已经提到过,这个也没什么好解释的,用一下就知道。
environment,就是 environment,确实没什么好解释的。

3. mock Server

就是mock server,字面意思。

4. Monitor

持续请求,定期通知。


举报

相关推荐

0 条评论