Postman Pre-request Script:需要生成随机DOB(18岁以上)

Postman Pre-request Script: Need to generate a random DOB (18 years or older)

我有时也在寻找它,但总能得到直接的答案。我想要一个以 MM-DD-YYYY 格式生成的随机出生日期,并且应该超过 18 岁。

我在这里查找了新的动态变量,这些变量是从生成虚拟数据的 faker 库生成的。有一些日期示例,但可以获得有关出生日期的任何帮助。

Postman Dynamic variables

我可以看到一个很好的例子,比如生成一个随机 Phone 数字,如下所示。我也在寻找与出生日期类似的东西。

// GENERATE RANDOM Phone Number
pm.environment.set("phone_number", pm.variables.replaceIn('{{$randomPhoneNumber}}'));

我对此有一个部分修复,我可以按要求的格式生成随机 DOB MM/DD/YYYY,但我在 18 年和更早的验证中无法做到这一点。希望其他人有这个解决方案。

//Generate random Date of Birth in MM/DD/YYYY Format
function randomDate(start, end) {
    return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
}
var date = randomDate(new Date(2000, 0, 1), new Date());
var formattedDate = (date.getMonth()+1) + '/' + date.getDate() + '/' + date.getFullYear();
console.log("DOB: " + formattedDate);

谢谢@Hans 的解决方案。我接受了它并对其进行了一些修改。这不是最聪明的方法,但我相信它可以满足要求。按照以下步骤,返回的 DOB 的 YYYY 将始终介于 1990 和 1999 之间,因此用户始终大于 18 岁。

//Genrate random Date of Birth in MM/DD/YY Format and the DOB always fall in between 1990 and 1999
function randomDate(start, end) {
        return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
}
var date = randomDate(new Date(2000, 0, 1), new Date());
var year_last_integer = Math.floor(Math.random() * 10);
var formattedDate = (date.getMonth()+1) + '/' + date.getDate() + '/' +  '199' + year_last_integer;
pm.environment.set("dob", formattedDate);
console.log("DOB: " + formattedDate);