在邮递员中为API测试创建独特的身体请求

时间:2018-02-10 08:54:21

标签: postman

我想在邮递员上创建具有唯一电子邮件属性的测试请求。

{
    ...
    "email": "{{email_string}}.com",
    ...
}

我在环境中设置了email_string静态字符串,但有没有办法在发出请求之前动态设置email_string

3 个答案:

答案 0 :(得分:7)

您可以直接在请求正文中使用Postman对Faker库的内置支持:

{
    ...
    "email": "{{$randomEmail}}",
    ...
}

或者,在预请求脚本中:

pm.environment.set('user-email', pm.variables.replaceIn('{{$randomEmail}}'));

答案 1 :(得分:3)

作为上一个答案的替代方法,您可以使用sendRequest函数从第三方API获取值,该第三方API旨在返回随机数据。

可以将其添加到Pre-Request Script标签:

pm.sendRequest("https://randomuser.me/api/", (err, res) => {
    // Get the random value from the response and store it as a variable
    var email = res.json().results[0].email
    // Save the value as an environment variable to use in the body of the request
    pm.environment.set("email_address", JSON.stringify(email))
})

可以使用此API潜在地创建大量随机数据,但它是第三方API,因此您无法控制此更改。如果你在短期内只需要这个,我相信它会没事的。

还值得记住的是Postman内置了Lodash内置功能,因此您可以使用任何模块函数来减少一些本机JS代码。

答案 2 :(得分:2)

postman应用程序中有一个名为" pre-request script"接近"测试"标签。您可以使用此选项卡设置环境变量。

这是诀窍:

var text = "";
var possible = "abcdefghijklmnopqrstuvwxyz";
for (var i = 0; i < 5; i++) {
    text += possible.charAt(Math.floor(Math.random() * possible.length));
}
postman.setEnvironmentVariable('email_string', text + '@' + text);

我认为这个脚本可以帮助您在您的环境中设置随机值。