JavaScript中的随机对象生成器

Gjo*_*gji 2 javascript random object fuzzing

我需要一个JavaScript中的随机对象生成器,它生成具有不同字段和值的各种对象.我能找到这样的工具吗?

我需要生成具有各种复杂性的随机对象.我的目标是使用JSON来序列化这些对象并模糊测试我的应用程序http api.

小智 7

function createRandomObj(fieldCount, allowNested)
{
    var generatedObj = {};

    for(var i = 0; i < fieldCount; i++) {
        var generatedObjField;

        switch(randomInt(allowNested ? 6 : 5)) {

            case 0:
            generatedObjField = randomInt(1000);
            break;

            case 1:
            generatedObjField = Math.random();
            break;

            case 2:
            generatedObjField = Math.random() < 0.5 ? true : false;
            break;

            case 3:
            generatedObjField = randomString(randomInt(4) + 4);
            break;

            case 4:
            generatedObjField = null;
            break;

            case 5:
            generatedObjField = createRandomObj(fieldCount, allowNested);
            break;
        }
        generatedObj[randomString(8)] = generatedObjField;
    }
    return generatedObj;
}

// helper functions

function randomInt(rightBound)
{
    return Math.floor(Math.random() * rightBound);
}

function randomString(size)
{
    var alphaChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var generatedString = '';
    for(var i = 0; i < size; i++) {
        generatedString += alphaChars[randomInt(alphaChars.length)];
    }

    return generatedString;
}
Run Code Online (Sandbox Code Playgroud)

它将使用X参数创建一个obj,所有参数都包含整数,浮点数,字符串,布尔值或空值.
我刚刚做到了:B

  • 请小心这一点 - 据我所知,如果 fieldCount &gt; 5 且allowNested = true,这可能会永远运行,可能会尝试生成具有无限深度的对象。 (2认同)