使⽤Postman⼯具做接⼝测试(五)——⽣成随机参数
 引⾔
  我们平时使⽤最多的接⼝调试⼯具就是postman了,⽐如开发将⼀个接⼝给到你,你想看看接⼝是否正常。最常⽤的⽅法就是⽤postman去调⼀下。如果通,就写接⼝测试⽤例。我们测试接⼝时,避免不了重复调⽤⼀个接⼝,这样的话,需要随机数来参数化关键的业务字段。
Postman三种内置随机数
  其实postman还有其他内置随机数,这⾥介绍postman三种随机数,打开postman,输⼊{{,可以看到,如图:
  随机数如下:
  {{$guid}}:添加⼀个V4风格GUID(如: aa002-44ac-45ca-aae3-52bf19650e2d)
  {{$timestamp}}:将当前的时间戳,精确到秒
  {{$randomInt}}:添加0和1000之间的随机整数
  我们分别在postman中使⽤,如下:
  是不是挺好⽤,这样我们就可以⽤它来参数化了,重复调⽤接⼝也不会导致报⽂中数据重复使⽤同⼀份数据。
  但是,如果我想要⽣成6位,10位随机整数呢?要怎么做?
  这个时候需要⾃定义随机数。
  Postman⾃定义随机函数
  ⾃定义随机整数
  代码如下:
  第⼀种:
1 2 3// 结果为0-1间的⼀个随机数(包括0,不包括1) var randomNum1 = Math.random(); console.log(randomNum1);
  第⼆种:
1 2 3 4 5 6 7 8// 获取最⼩值到最⼤值之前的整数随机数function GetRandomNum(Min, Max) {
var Range = Max - Min;
var Rand = Math.random();
return(Min + und(Rand * Range)); }
var num = GetRandomNum(100000, 999999); console.log(num);
  第三种:
1 2 3 4 5 6 7 8 9 10 11/**
* 产⽣随机整数,包含下限值,但不包括上限值
* @param {Number} lower 下限
* @param {Number} upper 上限
* @return {Number} 返回在下限到上限之间的⼀个随机整数*/
function random(lower, upper) {
return Math.floor(Math.random() * (upper - lower)) + lower; }
console.log(random(100000,999999));
  第四种:这种就有可能第⼀位是0
1 2 3 4 5 6 7 8 9 10 11 12var Num="";
for( var i=0;i<10; i++ )
{
Num += Math.floor(Math.random() * 10); }
console.log(Num);
  上⾯都是⽣成⾃定义位数的随机数,你可以根据需要传⼊参数来决定⼏位。
  ⾃定义随机时间
  通常情况下,很多接⼝使⽤的是时间戳,其实我们也可以⽤这个来做随机数参数化,如图:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18//⼗三位毫秒时间戳
let a = w();
console.log(a);
//⼗三位毫秒时间戳
b = new Date().getTime();
console.log(b)
//⼗位秒时间戳
let c = w()/1000;
console.String().substring(0,10)); //截取第 0~9 位console.log(parseInt(c))
// 将 13 位时间戳除以 1000 然后再取整,得到 10 位时间戳数字parseInt(+new Date()/1000);
/
/ 将 13 位时间戳转换为字符串截取前 10 位,得到 10 位时间戳字符串(+new Date()).toString().substring(0,10); // 截取第 0~9 位
(+new Date()).toString().substr(0,10);    // 从第 0 位开始截取 10 位
  如果我们想使⽤具体时间作为随机参数,例如,获取当前年⽉⽇时分秒,可以这样,如图:
1 2 3 4 5 6 7 8 9 10a = (new Date()).Format("yyyy-MM-dd hh:mm:ss.S")
b = (new Date()).Format("yyyy-M-d h:m:s.S") console.log(a)
console.log(b)
c = (new Date()).Format("yyyyMdhms")
d = (new Date()).Format("yyyyMMddhhmmss") console.log(c)
console.log(d)
  Postman实操
  结合上⾯的例⼦,我们在postman中使⽤如下:
1 2 3 4 5 6 7 8 9 10function random(lower, upper) {
return Math.floor(Math.random() * (upper - lower)) + lower; }
var nums = random(100000,999999)
console.log(nums);
console.log(nums);
  运⾏结果:  时间参数化:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18# ⽅法1
var myDate=new Date();
var year = FullYear();
var month = Month() + 1;
var date = Date();
postman在线测试var hours = Hours() + 1;
var min = Minutes();
var seconds = Seconds();
hours = hours < 10 ? "0"+ hours : hours;
min = min < 10 ? "0"+ min : min;
seconds = seconds < 10 ? "0"+ seconds : seconds;
var date = year + ""+ month + date + hours + min + seconds; console.log(date,"测试");
#⽅法2
var moment = require('moment');
var data = moment().format(" YYYYMMDDHHmmss"); console.log(data);
pm.globals.set("time", data);
  运⾏结果如图:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。