postman批量测试(动态设置变量值)

1、前言

  这里的需求不是测试需求,而是一个需要批量请求的需求,所以这里只是用postman来做批量请求操作而已,并没有特殊的测试知识讲解。在使用之前,百度找了下postman变量的相关的知识,好像真没找到怎么设置变量,都是获取变量的知识,于是去官网找了下文档找到了我要的。
  对于不熟悉postman测试的,先看看我以前转载的博文postman(一)批量执行接口测试用例,熟悉一下测试的流程和对应的界面。

2、变量知识

文档来自于:Environments and globals -> Variables

postman批量测试(动态设置变量值)_第1张图片
  可以知道外层变量的作用域会被内层同名变量覆盖,而这里的global作用域是整个postman,environments单独作用域自己选择的环境,postman右上角可以选environment,data看了一下文档是从文件(csv或者json文件)中读取数值。

2.1、读取变量的方式:

  1. 直接在接口url或者请求参数中使用双大括号包住变量:{{variable}}
  2. 在Pre-request script和Tests中编写js代码实现变量获取:pm.environment.get(“variableName”)、pm.globals.get(“variableName”);具体看文档的Accessing variables through scripts

2.2、设置变量的方式:

  1. 这里只知道environment怎么设置,设置environment变量直接点开右上角的environment具体环境,通过界面修改即可
  2. 通过 script修改:pm.environment.set(“variableName”,value)、pm.globals.set(“variableName”,value);具体看文档的Accessing variables through scripts

2.3、更改变量的值:

这个是我研究前疑惑的点,怎么更改,其实很简单读取出来,像普通js一样,进行操作后或者运算后,再次设置同名变量,覆盖原来的即可。

3、实例

postman批量测试(动态设置变量值)_第2张图片
  从上图用到了我们environment里面的变量decision-maker和index两个变量,使用我们讲的格式:{{variable}}

  上图Body后的两个tab,Pre-request script和Tests是分别写测试用例执行前的校验等代码执行后的校验等代码
我们的思路很简单在Pre-request script编写变量初始化,在Tests中写index变量的自增操作
Pre-request script

if(!pm.environment.get("index")){
    var startIndex = 0;
    var endIndex = 174;
    pm.environment.set("index",startIndex);
    pm.environment.set("maxIndex",endIndex);
}

  这里pm.environment.get(“index”)获取postman中的变量index,if(!pm.environment.get(“index”))就是判断index不存在时,设置变量初始值

Tests:

var index = Number(pm.environment.get("index")) + 1 ;
var maxIndex = pm.environment.get("maxIndex");
if( index < maxIndex ){
    pm.environment.set("index",index);
}
//postman返回值校验代码
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

  这里重点是var index = Number(pm.environment.get("index")) + 1这句改变了变量的值;
有个坑就是pm.environment.get(“index”)读取出来就是字符串,所以加了个Number强制转换成数字再进行加1操作。

你可能感兴趣的:(其他)