PostMan 脚本学习

本文主要是关于 pre-request 和 tests 脚本那块

pre-request 我的理解是发送http请求前做的事情,比如设置环境变量

test 可以控制什么时候发起请求,并且可以处理发送请求后的事情,比如我在脚本第三行控制发送请求,然后在第五行解析响应的报文,把响应报文里的json解析出来

他们语法可能有一点点差异,但是大体上是一样的

简单教程

初学者建议先去学会使用动态变量,动态变量就是类似一些宏,比如可以获取时间戳,随机字符串等等常用需要发送的东西,一般是两个括号加内容,如 {{$timestamp}} ,(系统动态变量是带 $的),postman 具体带有什么样的动态变量,见后文,最新版本的postman敲一个 { 就能看到所有的动态变量以及解释

PostMan 脚本学习_第1张图片

 如果动态变量不足以满足你的需求,你可以写一些环境变量(不带$),需要一定的编程经验,下面这段我是写在 pre-request 里的

var IP = "1.2.3.4";
var port = "443";
pm.environment.set('referer', "https://" + IP + ":" + port);
pm.environment.set('timestamp', Math.round(new Date()));

 用法跟动态变量一样——两括号(但是没有$)

PostMan 脚本学习_第2张图片

 你可以在左下方的 console 里看到你的发送请求,已验证你发的信息是不是对的

PostMan 脚本学习_第3张图片

一些参考

1、系统提供的动态变量

动态变量,比如说获取时间,随机字符等等

https://learning.postman.com/docs/writing-scripts/script-references/variables-list/
https://www.jianshu.com/p/4ef79a5a9ec6

2、自己编程获取token

Postman之token动态获取 - 小码农薛尧 - 博客园

3、如果是简单的Cookie的话,设置同一个环境,貌似会同步Cookie

4、拿回相应的body,并设置环境变量

PostMan 脚本学习_第4张图片

var submit = pm.response.text()
pm.environment.set('submit', submit)
console.error(submit)

5、正则表达式匹配字符串

var str = 'a.png'
var newsubmit = str.match('.*a.png')[0]
console.error(newsubmit)

6、postman的json解析

#假设返回值是这样 {"data":{"id":"2abca2b4d26e4584ac0b5c5e15d8ca0c"}}
#解析完之后,直接用.加变量名就能取值
var submit = pm.response.json()
console.error(submit.data.id)

7、生成固定位数的随机字符串

function getStr(len){
    len = len || 32;
	var chars = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var maxPos = chars.length;
	var s = '';
	for (let i = 0; i < len; i++) {
		s += chars.charAt(Math.floor(Math.random() * maxPos));
	}
	return s;
}

你可能感兴趣的:(postman,测试工具,前端)