使用Postman工具做接口测试——生成随机参数

我们平时使用最多的接口调试工具就是postman了,比如开发将一个接口给到你,你想看看接口是否正常。最常用的方法就是用postman去调一下。如果通,就写接口测试用例,反之,将开发打一顿吧o( ̄︶ ̄)o。

我们测试接口时,避免不了重复调用一个接口,这样的话,需要随机数来参数化关键的业务字段。

Postman三种内置随机数

其实postman还有其他内置随机数,这里介绍postman三种随机数,打开postman,输入{{,可以看到,如图:

图片

随机数如下:

{{$guid}}:添加一个V4风格GUID(如:aa002-44ac-45ca-aae3-52bf19650e2d)

{{$timestamp}}:将当前的时间戳,精确到秒

{{$randomInt}}:添加0和1000之间的随机整数

我们分别在postman中使用,如下:

图片

是不是挺好用,这样我们就可以用它来参数化了,重复调用接口也不会导致报文中数据重复使用同一份数据。

但是,如果我想要生成6位,10位随机整数呢?要怎么做?

这个时候需要自定义随机数。

Postman自定义随机函数

自定义随机整数

代码如下:

第一种:

 
  1. // 结果为0-1间的一个随机数(包括0,不包括1)

  2. var randomNum1 = Math.random();

  3. console.log(randomNum1);

图片

第二种:

 
  1. // 获取最小值到最大值之前的整数随机数

  2. function GetRandomNum(Min, Max) {

  3. var Range = Max - Min;

  4. var Rand = Math.random();

  5. return(Min + Math.round(Rand * Range));

  6. }

  7. var num = GetRandomNum(100000, 999999);

  8. console.log(num);

图片

第三种:

 
  1. /**

  2. * 产生随机整数,包含下限值,但不包括上限值

  3. * @param {Number} lower 下限

  4. * @param {Number} upper 上限

  5. * @return {Number} 返回在下限到上限之间的一个随机整数

  6. */

  7. function random(lower, upper) {

  8. return Math.floor(Math.random() * (upper - lower)) + lower;

  9. }

  10. console.log(random(100000,999999));

图片

第四种:这种就有可能第一位是0

 
  1. var Num="";

  2. for ( var i=0;i<10; i++ )

  3. {

  4. Num += Math.floor(Math.random() * 10);

  5. }

  6. console.log(Num);

图片

上面都是生成自定义位数的随机数,你可以根据需要传入参数来决定几位。

自定义随机时间

通常情况下,很多接口使用的是时间戳,其实我们也可以用这个来做随机数参数化,如图:

 
  1. //十三位毫秒时间戳

  2. let a = Date.now();

  3. console.log(a);

  4. //十三位毫秒时间戳

  5. b = new Date().getTime();

  6. console.log(b)

  7. //十位秒时间戳

  8. let c = Date.now()/1000;

  9. console.log(c.toString().substring(0,10)); //截取第 0~9 位

  10. console.log(parseInt(c))

  11. // 将 13 位时间戳除以 1000 然后再取整,得到 10 位时间戳数字

  12. parseInt(+new Date()/1000);

  13. // 将 13 位时间戳转换为字符串截取前 10 位,得到 10 位时间戳字符串

  14. (+new Date()).toString().substring(0,10); // 截取第 0~9 位

  15. (+new Date()).toString().substr(0,10); // 从第 0 位开始截取 10 位

图片

如果我们想使用具体时间作为随机参数,例如,获取当前年月日时分秒,可以这样,如图:

 
  1. a = (new Date()).Format("yyyy-MM-dd hh:mm:ss.S")

  2. b = (new Date()).Format("yyyy-M-d h:m:s.S")

  3. console.log(a)

  4. console.log(b)

  5. c = (new Date()).Format("yyyyMdhms")

  6. d = (new Date()).Format("yyyyMMddhhmmss")

  7. console.log(c)

  8. console.log(d)

  9. 图片

  10.   Postman实操

  11.   结合上面的例子,我们在postman中使用如下:

  12. function random(lower, upper) {

  13. return Math.floor(Math.random() * (upper - lower)) + lower;

  14. }

  15. var nums = random(100000,999999)

  16. console.log(nums);

  17. pm.environment.set('nums',nums);

  18. console.log(nums);

运行结果:

图片

时间参数化:

 
  1. # 方法1

  2. var myDate=new Date();

  3. var year = myDate.getFullYear();

  4. var month = myDate.getMonth() + 1;

  5. var date = myDate.getDate();

  6. var hours = myDate.getHours() + 1;

  7. var min = myDate.getMinutes();

  8. var seconds = myDate.getSeconds();

  9. hours = hours < 10 ? "0" + hours : hours;

  10. min = min < 10 ? "0" + min : min;

  11. seconds = seconds < 10 ? "0" + seconds : seconds;

  12. var date = year + "" + month + date + hours + min + seconds;

  13. console.log(date,"测试");

  14. #方法2

  15. var moment = require('moment');

  16. var data = moment().format(" YYYYMMDDHHmmss");

  17. console.log(data);

  18. pm.globals.set("time", data);

运行结果如图:

图片

 

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值