欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

postman --参数化

程序员文章站 2022-03-05 18:22:25
...

一、自带三个内建变量(系统变量)

1.{{$guid}}//生成随机GUID
postman --参数化

2.{{$timestamp}}//当前时间戳
postman --参数化

3.{{$randomInt}}//0-1000的随机整数
postman --参数化
问题:内建变量不能进行精确对比
postman --参数化

二、Pre_request_scripts写脚本

1.接口运行时的顺序

1.Pre-request Script是集合中请求发送之前需要执行的代码片段
2.请求参数中包含一个随机数或者请求header中包括一个时间戳,或者你的请求参数需要加密
3.先运行Pre-request Script内的函数,再发送请求,最后识别tests中的断言

2. 实现方法

1.在Pre-request Scrip定义一个获取当前时间戳的函数,设置为全局变量
postman --参数化
2.在tests中设置断言,实现获取随机变量的标题的功能
postman --参数化
3.得出判断结果,输出测试用例结果
postman --参数化
postman --参数化

3.常用功能

// 当前时间戳
var now_time = Date.now();
pm.globals.set("now_time", now_time);

// guid实现:
const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
    .replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16))
    .replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16));
pm.globals.set("guid_value", guid);

// 随机整数实现:
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
pm.globals.set("random_number", randomInt(8, 14));

// 从多个选项中选择实现:
const getRandomValue = list => list[randomInt(0, list.length - 1)];
const charsInName = ['王','李','张'];
pm.globals.set("people_name",getRandomValue(charsInName) );

// 随机手机号实现:
var mobile_num = `18${randomInt(300000000, 399999999)}`;
pm.globals.set("mobile_num",mobile_num);

const sleep = (milloiseconds) => {
    const start = Date.now();
    while (Date.now() <= start + milloiseconds) {}
};
sleep(5000); //毫秒为单位

二、csv文件\json格式文件实现参数化

csv文件要在Collection Runner中工作, 第一行必须是在request中要使用的变量名,
每一行是一条用例, 并表示一次迭代。
json文件你需要确保你的文件有键/值对数组。 数组中的每个元素是键值对对象, 代表
一次迭代。 key作为request中要使用的变量名, value作为key
postman --参数化
postman --参数化
postman --参数化

相关标签: postman