在Postman中创建动态名称文本字段

时间:2014-09-22 12:10:11

标签: json postman

我使用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"
  }

}

6 个答案:

答案 0 :(得分:20)

在邮递员中,您想使用Dynamic Variables

您发布的JSON将如下所示:

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

}

请注意,这将为您提供GUID(您还可以选择使用整数或时间戳),而且我目前还没有注意到一种注入字符串的方法(例如,来自测试文件或数据生成实用程序)。

答案 1 :(得分:13)

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

示例:

{
    "username": "test{{$timestamp}}",
    "password": "test"
}

答案 2 :(得分:10)

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

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

}

答案 3 :(得分: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

您可以通过查看地址栏并将网址从#1更改为#5等来强行更改计数器。

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

var location = {
    name: unique_name,
    branding_domain_id: 'however-you-currently-get-it',
    parent_id: 'however-you-currently-get-it'
};

答案 4 :(得分:0)

在要求中添加以下文本:

  

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

,并在任何需要的地方使用myUUID 喜欢

名称:“ {{myUUID}}”

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

答案 5 :(得分:0)

var uuid = require('uuid');
pm.globals.set('unique_name', 'testuser' + uuid.v4());

将上述代码添加到请求前标签。 这是您可以在以后的api调用中重用唯一的名称。

Dynamic variable就像randomInt一样,或者guid是动态的,即:您不知道请求中发送了什么。除非将它作为响应发回,否则无法再次引用它。即使将其存储在变量中,它仍然是动态的

另一种方法是:

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

courtsey参考此link了解更多选项