Postman之关联设置和参数化实现


一、关联设置

在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果,从而让后一个接口能够正常执行。

关联操作步骤如下:

1.利用postman获取上一个接口指定返回值

2.使用postman全局变量保存上一个接口的值,代码如下:

postman.setGlobalVariable("全局变量名",str);其中前面的参数为全局变量名称,后买你为变量

3.使用{{全局变量名}}引用

例如:设置access_token为全局变量并引用

第一步:在Tests页签中获取返回值access_tokens

var data=JSON.parse(responseBody);
postman.setGlobalVariable("access_token",data.access_token);

第二步:引用变量access_token

 

 二、内置参数化实现

1.postman自带三个变量

  {{$guid}}//生成GUID

  {{$timestamp}}//当前时间戳

  {{$randomInt}}//0-1000的随机整数

2.在Pre-request Script页签中使用代码实现:

  Pre-request Script页签为执行接口请求之前要做的操作,而Tests是执行完请求要做的操作,内建变量一般放在Requests里,我们也可以用代码在Pre-request Script页签中实现,好处是可以

可复用,精准断言。

2.1时间戳参数化

Pre-request Script页签中输入:

  var time=Date.now();
  pm.globals.set("pretime", time);

URL地址输入:

  https://www.baidu.com/s?wd={{pretime}}

Tests页签中输入:

  var time=pm.globals.get("pretime");

  tests["case01 判断百度标签是否和百度搜索相同"]=responseBody.has(time)

2.2GUID参数化

Pre-request Script页签中输入:

  const guid='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
  .replace(/x/g,()=>(Math.floor(Math.random()*16)).toString(16))
  .replace(/x/g,()=>(Math.floor(Math.random()*4+8)).toString(16))
  pm.globals.set("preguid", guid);

URL地址输入:

  https://www.baidu.com/s?wd={{preguid}}

Tests页签中输入: 

  var guid=pm.globals.get("preguid");
  tests["case01 判断百度标签是否和百度搜索相同"]=responseBody.has(guid)

2.3随机整数参数化

 

 

 

 

 

 2.4从多个选择中实现参数化

 

 

 

 2.5设置随机手机号

 

 

三、外部参数化实现

  在postman中,除了上述两种方法实现参数化,还可以利用外部数据文件(支持csv文件和包含json格式文本的数据)。外部数据文件目前是通过Runner页签导入。

  json文件需要确保文件中有键值对数组。数组中的每个元素是键值对对象,代表一次迭代。key作为为request中要使用的变量名,value作为keyde取值。

 步骤:

1.准备测试数据(csv格式或者json格式)

csv格式数据

 

 

 json格式数据

 

 2.在postman脚本中,HTTPrequest中使用{{key}}引用,在script中使用data.key或者data["key"]取一i你用

3.打开Runner窗口,点击Data旁边的select File按钮,导入参数化文件

4.点击data file type类型后,点击preview按钮,检查数据是否正确,如果不正确,调整数据文件格式或编码

5.设置迭代次数,每次迭代都将使用数据文件中的一行,如果迭代次数超过数据文件中的行数,将重复使用最后一行

例:百度搜索数据参数化

第一步,准备参数化文件

 

 第二步,引用参数

 

 

 

 第三步:导入文件

 

 第四步:查看数据是否正确

 

 第五步:设置迭代次数和延迟时间

 

 第六步:设置好后点击run执行

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM