美文网首页Postman藏兵谷测试
Postman接口测试系列:接口参数化和参数的传递

Postman接口测试系列:接口参数化和参数的传递

作者: 乘风破浪的姐姐 | 来源:发表于2018-12-03 17:22 被阅读344次

使用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

相关文章

网友评论

    本文标题:Postman接口测试系列:接口参数化和参数的传递

    本文链接:https://www.haomeiwen.com/subject/eejhcqtx.html