以下提到的功能,全是免费版即可使用的。
首先建议注册账号登录使用,毕竟数据同步还是挺好的。
以下只说几处我自己知道的或者觉得实用的几个特色功能。
0.基本情况
当前时间:2021年9月9日
最新postman版本:v8.12.1
免费版。
如下图。
1.variable
1.1 一般都会拿来发起http请求
如下图
里面可以自由地定义自己想好的 请求类型
、header
,body
,url
等等,不再赘述。
1.2初级进阶
1.2.1 简单变量的使用
如果请求多了,会觉得烦,比如每次都要写http://xxxxx:8080/...
,http://xxxxx:8081/...
之类的这些内容,不由地想要是能有变量就好了。
答案是有
。
比如我自己定义一个root
变量,表示 http://xxxxx:8080/
,那么我每次就不用总是写那么繁琐了。
如图,
看得出,变量还可以分为局部的和全局的。
顾名思义,不必多解释。如下图,新增一个root变量。
软件中有说明,CURRENT VALUE
和 INITIAL VALUE
。
可结合团队使用。
不过根据说明,看得出,如果是自己一个人用的话,只设置 INITIAL VALUE
就够了,反正另一个也会继承它的值。
然后保存。使用:
如图即可。
也就是说,变量使用{{}}
包裹即可使用。
当然,变量不见得只能用在url里,也可用在body
,form
等各处参数里,都可自由发挥,不再赘述。
注:这里的这个root变量其实是 Environment
变量。
值得一提的是 Environment
变量是跟着workspace
走的,即 environment变量在不同的workspace中并不通用。
1.2.2 系统内置变量的使用
这一部分其实很有趣,估计很多人都不知道。
系统内置了很多常用参数,在测试的时候很有用。
一般都是{{randomXXX}}
的形式。
随便示例几个。
甚至还能有随机的在线图片,随机语句等等,很方便。每个请求究竟发出了什么内容,得到了什么返回,还可以打开console看详情。
1.2.3 批量请求怎么办,runner
用上述方式测试看似很爽,但接下来又有下一个问题,比如我想通过调用一个产生用户的接口,产生10000条记录到数据库里。那我要怎么办,要真的点击10000次吗?
答案是不用。
有个东西叫runner
选择想要重复执行的请求,拖过去。
设置重复次数,间隔时间,其他参数。点击run test
则会开始循环执行。
并且可以看到执行结果,略。
1.3 高级进阶
1.3.1 进阶1 Pre-request Script
其实在实际应用中,上面的功能尽管便利,但依然不足以满足所有需求,
比如,有些变量它没有内置,我想自己生成。
或者在请求执行前我做点什么操作,能行吗?
答案是可以
。
他就是 Pre-request Script
,可以直接写js,直接定义变量。
以下随便上一段我的工作中的某个请求的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),然后在请求的参数中就可以直接使用了。
如
另外,不仅可以设置一般的变量,还可以设置全局的等各种变量,具体看官方教程。
如下图。
1.3.2 进阶2 Tests
看名字就知道什么意思了。
就像单元测试,还可以判定这个请求的这个返回是否成功。
可以跟runner结合使用,口味更佳。
如下图:
随便上一段代码:
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
持续请求,定期通知。