28

我正在使用Postman对服务器进行 REST API 调用。我想使名称字段动态化,以便每次都可以使用唯一名称运行请求。

{
  "location":
  {
    "name": "Testuser2", // this should be unique, eg. Testuser3, Testuser4, etc
    "branding_domain_id": "52f9f8e2-72b7-0029-2dfa-84729e59dfee",
    "parent_id": "52f9f8e2-731f-b2e1-2dfa-e901218d03d9"
  }

}
4

6 回答 6

33

在 Postman 中,您想使用Dynamic Variables

您发布的 JSON 如下所示:

{
  "location":
  {
    "name": "{{$guid}}", 
    "branding_domain_id": "52f9f8e2-72b7-0029-2dfa-84729e59dfee",
    "parent_id": "52f9f8e2-731f-b2e1-2dfa-e901218d03d9"
  }

}

请注意,这将为您提供一个 GUID(您还可以选择使用整数或时间戳),并且我目前不知道注入字符串的方法(例如,从测试文件或数据生成实用程序)。

于 2014-10-14T16:14:47.367 回答
15

只是我的5美分这件事。使用 randomInt 时,数字最终可能会出现在数据库中,这可能会导致问题。解决方案(至少对我而言)是改用 $timestamp 。

例子:

{
    "username": "test{{$timestamp}}",
    "password": "test"
}
于 2017-08-24T15:56:32.420 回答
14

在 Postman 中,您可以传递范围从 0 到 1000 的随机整数,在您的数据中,您可以将其用作

{
  "location":
  {
    "name": "Testuser{{$randomInt}}",
    "branding_domain_id": "52f9f8e2-72b7-0029-2dfa-84729e59dfee",
    "parent_id": "52f9f8e2-731f-b2e1-2dfa-e901218d03d9"
  }

}
于 2016-08-23T14:30:37.033 回答
1

对于任何要对我投反对票的人,这篇文章是在与 OP 的评论讨论之前发表的(见下文)。我将其保留在原位,因此最终描述他需要什么的 OP 的评论不会从问题中删除。


据我了解您正在寻找的,这是一个基本的解决方案。它假设:

  • 您正在开发某种需要测试数据的脚本
  • name字段每次运行时都应该是唯一的

如果您的问题更具体,那么我可以给您更具体的答案,但这是我目前所能做的最好的。


var counter = location.hash ? parseInt(location.hash.slice(1)) : 1; // get a unique counter from the URL
var unique_name = 'Testuser' + counter; // create a unique name
location.hash = ++counter; // increase the counter by 1

您可以通过查看地址栏并将 URL 从结尾更改为 等来强制更改#1计数器#5

name然后,您可以在构建对象时使用该变量:

var location = {
    name: unique_name,
    branding_domain_id: 'however-you-currently-get-it',
    parent_id: 'however-you-currently-get-it'
};
于 2014-09-22T13:06:22.957 回答
0
var uuid = require('uuid');
pm.globals.set('unique_name', 'testuser' + uuid.v4());

将上述代码添加到预请求选项卡。这是您可以为后续的 api 调用重用唯一名称。

像 randomInt 或 guid 这样的动态变量是动态的,即:您不知道请求中发送了什么。没有办法再次引用它,除非它被发回作为回应。即使你将它存储在一个变量中,它仍然是动态的

另一种方法是:

var allowed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var shuffled_unique_str = allowed.split('').sort(function(){return 0.5-Math.random()}).join('');

礼貌参考此链接以获取更多选项

于 2019-12-18T07:54:19.967 回答
0

在 pre-req 中添加以下文本:

var myUUID = require('uuid').v4(); pm.environment.set('myUUID', myUUID);

并在任何你想要的地方使用 myUUID

名称:“{{myUUID}}”

它将为每个请求生成一个随机的唯一 GUID

于 2019-07-31T12:50:15.137 回答