zoukankan      html  css  js  c++  java
  • 使用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 + Math.round(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
    12
    var 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 = Date.now();
    console.log(a);
    //十三位毫秒时间戳
    b = new  Date().getTime();
    console.log(b)
     
    //十位秒时间戳
    let c = Date.now()/1000;
    console.log(c.toString().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
    10
    a = (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
    10
    function random(lower, upper) {
    return Math.floor(Math.random() * (upper - lower)) + lower;
    }
     
    var nums = random(100000,999999)
    console.log(nums);
     
    pm.environment.set('nums',nums);
     
    console.log(nums);

      

      运行结果:

      时间参数化:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # 方法1
    var myDate=new Date();
    var year = myDate.getFullYear();
    var month = myDate.getMonth() + 1;
    var date = myDate.getDate();
    var hours = myDate.getHours() + 1;
    var min = myDate.getMinutes();
    var seconds = myDate.getSeconds();
    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);

      运行结果如图:

    声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/ 如出现转载未声明 将追究法律责任~谢谢合作
  • 相关阅读:
    webstorm实现手机预览页面
    git 远端版本回退
    Vue开发中的移动端适配(px转换成vw)
    测试web-view,实现小程序和网页之间的切换
    mysql 字符集研究
    Openssl
    Android Activity 去掉标题栏及全屏显示
    Android中的 style 和 theme
    Android sharedPreferences 用法
    Vim 字符集问题
  • 原文地址:https://www.cnblogs.com/chenxiaomeng/p/14846158.html
Copyright © 2011-2022 走看看