使用postman做簡單的接口測試時修壕,需要參數(shù)化愈捅,有全局變量、局部變量之分慈鸠。這里簡單介紹一下使用Postman進(jìn)行接口測試時蓝谨,參數(shù)化過程。
現(xiàn)有兩個請求青团,如圖
上述兩個請求中譬巫,有共同的變量,參要參數(shù)化督笆,例如IP芦昔,端口,用戶等娃肿。即為全局變量咕缎。
點擊Postman右上角的設(shè)置圖標(biāo)-->Manage Environments-->Add,錄入Environment名稱,再逐一新增各個需要參數(shù)化的全局變量即可料扰。
在接口測試過程中凭豪,部分參數(shù)每次發(fā)送請求時都要唯一,這時可采用隨機數(shù)晒杈。postman中可以使用randomInt達(dá)到每次運行的參數(shù)都是變化的嫂伞。請求Body的報文中直接用Postman內(nèi)建變量{{參數(shù)名}}
就行
先定義一個隨機方法
// 隨機整數(shù)
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)}`);
// 隨機生日(時間戳)
// 假設(shè)今天是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);
// 隨機設(shè)備token(推送服務(wù)商提供)
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;
// 隨機設(shè)備名
environment.randomDevice = getRandomValue(['ios', 'android']);
// 隨機行政區(qū)劃
const divisions = ['北京市', '上海市', '天津市', '重慶市', '廣東省 深圳市', '廣東省 廣州市', '新疆維吾爾自治區(qū) 克孜勒蘇柯爾克孜自治州'];
environment.randomDivision = getRandomValue(divisions);
// 隨機群名
const groupNames = ['犯罪團(tuán)伙', 'We are gay', '`~!@#$%^&*()-_ =+'];
environment.groupName = getRandomValue(groupNames) + randomInt(0, 1000);
錄入?yún)?shù)的接口Pre-Request Script代碼如下: