我有一个API请求,需要通过多次迭代在Postman-Collection-Runner中运行。API请求使用变量。
如何让这个变量在每次迭代时自动增加(或者将迭代值设置为另一个变量)?
发布于 2019-08-01 02:46:07
如果我正确理解了您的问题,您希望在不同的迭代中为请求中的变量分配不同的值,这可以通过两种方式实现。
a)使用数据文件
https://learning.getpostman.com/docs/postman/collection_runs/working_with_data_files/
数据文件可以是JSON或CSV格式。不幸的是,Postman中没有办法将变量值绑定到另一个变量,除非你想用一种老套的方式!
b)预请求和测试脚本
1-在预请求脚本中初始化环境变量,如下所示:
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脚本和分别测试在请求之前和之后运行的,因此您可以在测试中编写想要在请求之后运行的任何脚本。这不一定是一个测试!
发布于 2020-04-22 01:28:44
1.在预请求脚本/测试中使用全局 pm.* 函数和变量
请求前脚本-在执行请求之前运行
测试-在执行请求后运行
a.
pm.variables.set("id", pm.info.iteration);例如:example.com/{{id}}/update给出
example.com/0/update
example.com/1/update等...
迭代次数在集合运行器中设置。pm.info.iteration密钥具有当前迭代编号,从0开始。
b.
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.*)访问,则无论选中哪个复选框,都不会持久化该值。
示例:同上
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等...
使用Postman 7.22.1,同时回答此问题。未来可能会出现新的方法。
https://stackoverflow.com/questions/57279999
复制相似问题