一、自带三个内建变量(系统变量)
1.{{$guid}}//生成随机GUID
2.{{$timestamp}}//当前时间戳
3.{{$randomInt}}//0-1000的随机整数
问题:内建变量不能进行精确对比
二、Pre_request_scripts写脚本
1.接口运行时的顺序
1.Pre-request Script是集合中请求发送之前需要执行的代码片段
2.请求参数中包含一个随机数或者请求header中包括一个时间戳,或者你的请求参数需要加密
3.先运行Pre-request Script内的函数,再发送请求,最后识别tests中的断言
2. 实现方法
1.在Pre-request Scrip定义一个获取当前时间戳的函数,设置为全局变量
2.在tests中设置断言,实现获取随机变量的标题的功能
3.得出判断结果,输出测试用例结果
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
3.1 CSV
3.2 JSON
注意:设置迭代次数超过当前文件中的行数,那么超过的数据会重复使用最后一行的数据