如何根据Postman中运行的迭代增加变量值

dly7yett  于 2023-04-20  发布在  Postman
关注(0)|答案(3)|浏览(162)

我有一个API请求,我需要在Postman-Collection-Runner中通过多次迭代运行。API请求使用Variable。
我怎样才能使这个变量在每次迭代中自动增加(或者将迭代值设置为另一个变量)?

muk1a3rh

muk1a3rh1#

如果我正确理解了你的问题,你想在不同的迭代中为请求中的变量分配不同的值,这可以通过两种方式实现。

a)使用数据文件

https://learning.getpostman.com/docs/postman/collection_runs/working_with_data_files/
数据文件可以是JSON或CSV格式。不幸的是,在Postman中没有办法将变量值绑定到另一个变量,除非你想用一种黑客的方式来做!

B)预请求和测试脚本

1-在Pre-request Scripts中初始化环境变量,如下所示:

var value = pm.environment.get("var");

if( !value) {
    pm.environment.set("var", 1);
}

2-递增测试中的变量值

var value = pm.environment.get("var");

pm.environment.set("var", value+1);

这将创建一个环境变量,并在每次迭代后递增它。根据您如何构建集合,您可能需要考虑刷新/重置环境变量,以便为下一次运行做好准备
值得一提的是,Pre-request ScriptsTests分别在请求之前和之后运行,所以您可以在Tests中编写任何想要在请求之后运行的脚本,不一定是测试!

2w3kk1z5

2w3kk1z52#

1.在预请求脚本/测试中使用全局pm.*函数和变量
Pre-Request脚本-执行请求前运行
测试-执行请求后运行

我的天啊

pm.variables.set("id", pm.info.iteration);

例如:example.com/{{id}}/update给出

example.com/0/update
example.com/1/update等...

迭代次数在Collection Runner中设置。pm.info.iteration键具有当前迭代次数,从0开始。
B

var id = +pm.globals.get("id");
pm.globals.set("id", ++id);

变量可以在任何范围内-globals/collection/environment/local/data
在Collection Runner中,选中Keep Variable Values复选框,以将变量的最终值保存在会话中(此处为id)。

**注意:**如果变量是通过单独的作用域访问的(通过pm.globals.*pm.environment.*pm.collectionVariables.*),则需要根据需要切换上述复选框。否则,如果通过本地作用域(pm.variables.*)访问,则无论复选框如何,值都不会被持久化。

例:同上
More on variables and scoping

2.使用动态变量

在需要随机值或不需要特定顺序的情况下,可以使用这些变量。

a.$randomInt-给出1 - 1000之间的随机整数。

例如:example.com/{{$randomInt}}/update给出

example.com/789/update
example.com/265/update等...
B.$timestamp-以秒为单位给出当前UNIX时间戳。

例如:example.com/ {{$timestamp}}/update给出

example.com/1587489427/update
example.com/1587489434/update等...

More on Dynamic variables
使用Postman 7.22.1,同时回答这个问题。将来可能会有新的方法。

xcitsw88

xcitsw883#

我的三步代码方法:

1.转到“变量”选项卡并设置初始值。例如:

number = 0

1.在您的请求中使用它。例如:我把它放在我的POST请求的正文中(用双花括号):

{code = "code_{{number}}"}

1.在“测试”选项卡中,使用下面的代码将在每个request之后将number增加1:

var value = pm.globals.get("number");
pm.globals.set("number", value + 1);

您可以将迭代次数设置为10次,以运行您的请求10次,使number变量从0增加到9。

相关问题