在Postman中,{{$guid}}用于什么?

93

Postman的官方网站指出,Postman有一些动态变量。我的问题是:

{{$guid}}: 添加v4风格的GUID

{{$guid}}是什么类型的变量?如何在API请求的测试脚本中使用它?


1
为什么是v4?有v3吗?我在哪里可以找到关于Guid的文档。它是ISO还是其他标准? - Bastien Vandamme
1
是的,有多个版本。请查看guid.one - John Smith
5个回答

123

GUID是“全球唯一标识符”的缩写。GUID主要用于生成由连字符分隔的十六进制数字组,以实现唯一性,例如:

b3d27f9b-d21d-327c-164e-7fb6776f87b0

在Postman中,您可以使用此功能根据需要生成并发送随机GUID到您的API:

{
    "id": "{{$guid}}",
}

发送将会生成以下内容(使用上述随机示例):

{
    "id": "b3d27f9b-d21d-327c-164e-7fb6776f87b0",
}

6
请注意,如果您需要每个请求都更改它,则可以使用“$ { {$ randomUUID}}”。 - kotchwane
2
{{$guid}}在每个请求时都会改变。 - bytedev

28

如果您想生成一个V4 GUID,将其设置为环境变量,然后可以在整个集合中使用,您可以在预请求脚本中执行以下操作:

var uuid = require('uuid');
postman.setEnvironmentVariable('guid', uuid.v4());

您可以在整个集合中的多个调用中使用环境变量guid。这在您想要为整个集合生成一次guid并需要在多个请求中保持不变时非常有用。

如果您希望每个请求都生成guid,则可以像其他答案已经解释的那样,在负载中直接使用{{$guid}}。

基于Osloan在Github上的有趣回答:https://github.com/postmanlabs/postman-app-support/issues/886


1
这与问题中内置的$guid有何不同? - ryanwebjackson
$guid在问题中每次都会生成一个新的guid。 这个答案是为了帮助那些希望在多个请求中保持guid不变的人们。 - undefined

3

使用{{$randomUUID}}这样的变量在每个请求中进行更改。


1
在Postman中有两种类型的变量可用。
1). 如果您有静态变量,例如IP、端口或某些不会在项目中更改的内容,可以使用环境变量存储。
1.1). 设置 > 管理环境 > 添加 > 环境名称 > 添加参数,例如:键:Port和值:80
1.2). 您还可以添加请求 > 预请求脚本

从片段中添加 "设置环境变量"...

postman.setEnvironmentVariable("Port", "80"); 2). 对于像SessionIdentifier这样的动态变量,您必须从响应中捕获并在测试中添加全局变量。从片段中看起来像:
"var jsonData = JSON.parse(responseBody); postman.setGlobalVariable("SessionIdentifier", jsonData.Data.);"
在同一响应中。 要使用,您应该使用{{Port}},{{SessionIdentifier}}。
添加到环境后。

1

要使用随机生成器,请在 pre-Request 中使用以下代码

var text="shipment";
var charset = "abcdefghijklmnopqrstuvwxyz0123456789";
    for( var i=0; i < 8; i++ )
        text += charset.charAt(Math.floor(Math.random() * charset.length));    
postman.setEnvironmentVariable("awb", text);

获取详细说明,请参阅下面的链接

http://jmeterblogb.blogspot.in/2016/10/how-to-automate-rest-api-in-postman.html


将guid保存到全局变量在PM中无法工作。我使用了这段代码生成一个随机字符串并将其保存到变量中。谢谢! - allap
非常适合生成随机文本 - 非 GUID。 - drewid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接