首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据Postman中运行的迭代增加变量值

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

Stack Overflow用户
提问于 2019-07-31 05:03:30
回答 2查看 18.9K关注 0票数 9

我有一个API请求,需要通过多次迭代在Postman-Collection-Runner中运行。API请求使用变量。

如何让这个变量在每次迭代时自动增加(或者将迭代值设置为另一个变量)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-01 02:46:07

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

a)使用数据文件

https://learning.getpostman.com/docs/postman/collection_runs/working_with_data_files/

数据文件可以是JSON或CSV格式。不幸的是,Postman中没有办法将变量值绑定到另一个变量,除非你想用一种老套的方式!

b)预请求和测试脚本

1-在预请求脚本中初始化环境变量,如下所示:

代码语言:javascript
复制
var value = pm.environment.get("var");

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

2-在测试中增加变量值

代码语言:javascript
复制
var value = pm.environment.get("var");

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

这将创建一个环境变量,并在每次迭代后递增该变量。根据集合的结构,您可能需要考虑刷新/重置环境变量,以便为下一次运行做好准备

值得一提的是,Pre-request脚本分别测试在请求之前和之后运行的,因此您可以在测试中编写想要在请求之后运行的任何脚本。这不一定是一个测试!

票数 20
EN

Stack Overflow用户

发布于 2020-04-22 01:28:44

1.在预请求脚本/测试中使用全局 pm.* 函数和变量

请求前脚本-在执行请求之前运行

测试-在执行请求后运行

a.

代码语言:javascript
复制
pm.variables.set("id", pm.info.iteration);

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

example.com/0/update

example.com/1/update等...

迭代次数在集合运行器中设置。pm.info.iteration密钥具有当前迭代编号,从0开始。

b.

代码语言:javascript
复制
var id = +pm.globals.get("id");
pm.globals.set("id", ++id);

变量可以在任何作用域中- globals/collection/environment/local/data.

在集合运行器中,选中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 -提供当前时间戳(以秒为单位)。

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

example.com/1587489427/update

example.com/1587489434/update等...

More on Dynamic variables

使用Postman 7.22.1,同时回答此问题。未来可能会出现新的方法。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57279999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档