使用postman做简单的接口测试时,需要参数化,有全局变量、局部变量之分。这里简单介绍一下使用Postman进行接口测试时,参数化过程。
现有两个请求,如图
image.png
上述两个请求中,有共同的变量,参要参数化,例如IP,端口,用户等。即为全局变量。
点击Postman右上角的设置图标-->Manage Environments-->Add,录入Environment名称,再逐一新增各个需要参数化的全局变量即可。
image.png
image.png
在接口测试过程中,部分参数每次发送请求时都要唯一,这时可采用随机数。postman中可以使用randomInt达到每次运行的参数都是变化的。请求Body的报文中直接用Postman内建变量{{参数名}}
就行
先定义一个随机方法
// 随机整数
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
//用户姓昵称,随机姓名中的姓
const simpleInName = ['张', '李', '孙', '赵', '王', '刘', '钱', '阮', '杨', '郭'];
const simpleOfChars = randomInt(1, 1);
let randomSimpleName = '';
for (let i = 0; i < simpleOfChars; i++) {
let index = randomInt(0, 9);
randomSimpleName += simpleInName[index];
}
postman.setGlobalVariable("randomSimpleName",randomSimpleName);
//用户名昵称,随机姓名中的名
const charsInName = ['蒙', '楠', '玲', '琼', '红', '俊', '伟', '康', '强', '莹'];
const numOfChars = randomInt(1, 1);
let randomName = '';
for (let i = 0; i < numOfChars; i++) {
let index = randomInt(0, 9);
randomName += charsInName[index];
}
postman.setGlobalVariable("randomName",randomName);
// 随机选项
const getRandomValue = list => list[randomInt(0, list.length - 1)];
//用户性别
const divisions = ['O', 'M', 'F'];
postman.setGlobalVariable("sex",getRandomValue(divisions));
//用户身份证号码
postman.setGlobalVariable("card",`50010620001208${randomInt(1000, 9999)}`);
// 随机生日(时间戳)
// 假设今天是2017-1-1,距1970-1-1 47年,则生日范围为 1923-1-1 ~ 2017-1-1
//environment.birthday = randomInt(0 - Date.now(), Date.now());
postman.setEnvironmentVariable("birthday",Date.now());
//随机生成一个字符串作为remark
postman.setGlobalVariable("remark", ("test" +
(Math.random()*Math.pow(36,4) << 0).toString(36)).slice(-4));
// 随机手机
//environment.phone = `18${randomInt(100000000, 999999999)}`;
postman.setGlobalVariable("phone",`18${randomInt(100000000, 999999999)}`);
//组装整个时间戳
var timesDate = d.getFullYear() + "-"+(d.getMonth()+1).toString() +"-"+ timeDate;
postman.setEnvironmentVariable("birthday", timesDate);
// 随机设备token(推送服务商提供)
const chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
let deviceToken = '';
for (let i = 0; i < 64; i++) {
deviceToken += getRandomValue(chars);
}
environment.randomDeviceToken = deviceToken;
// 随机设备名
environment.randomDevice = getRandomValue(['ios', 'android']);
// 随机行政区划
const divisions = ['北京市', '上海市', '天津市', '重庆市', '广东省 深圳市', '广东省 广州市', '新疆维吾尔自治区 克孜勒苏柯尔克孜自治州'];
environment.randomDivision = getRandomValue(divisions);
// 随机群名
const groupNames = ['犯罪团伙', 'We are gay', '`~!@#$%^&*()-_ =+'];
environment.groupName = getRandomValue(groupNames) + randomInt(0, 1000);
录入参数的接口Pre-Request Script代码如下:
image.png
image.png
网友评论