Java-скрипт, написанный для UUID, не работает в jmeter - PullRequest
0 голосов
/ 28 июня 2018

Найдите ниже код, который мы разработали в java-скрипте для запуска в jmeter с использованием сэмплера JSR223 (работает как java-скрипт). Тот же код работал на Jquery, когда разрабатывался, но не публиковал идентификатор во время работы в jmeter. выданная ошибка "appid" не определена. Может ли кто-нибудь помочь отладить проблему, глядя на код

vars.put("guid", "${__UUID}"); 
vars.put("appId", "ce547c40-acf9-11e6-80f5-76304dec7eb7");
var id=getAppInfo(appId, guid);

функция getAppInfo (appId, guid) {

    var appInfo = null;
    var appIdBytes = guidToBytes(appId);
    var guidBytes = guidToBytes(guid);
    var appInfoBytes = [];
    for (var cnt = 0; cnt < appIdBytes.length; cnt++) 
    {
        appInfoBytes[cnt] = appIdBytes[cnt] + guidBytes[cnt];
    }
    var appInfoGuidfromBytes = bytesToGuid(appInfoBytes);
    return appInfoGuidfromBytes;
}  

function bytesToGuid(guidBytes) {
    var x = guidBytes;
    var result = "";
    var bytes = x.slice(0, 4).reverse().concat(x.slice(4, 6).reverse()).concat(x.slice(6, 8).reverse()).concat(x.slice(8));

    var y = bytes.map(function (item) { return ('00' + item.toString(16)).substr(-2, 2) });
    var byteArray = y;
    for (var cnt = 0; cnt < byteArray.length; cnt++) {
        if (cnt === 4 || cnt === 6 || cnt === 8 || cnt === 10)
            result = result + "-" + byteArray[cnt];
        else
            result = result + byteArray[cnt];
    }
    return result;
}
function guidToBytes(guid) {
    var bytes = [];
    guid.split('-').map(function (number, index) {
        var bytesInChar = index < 3 ? number.match(/.{1,2}/g).reverse() : number.match(/.{1,2}/g);
        bytesInChar.map(function (byte) { bytes.push(parseInt(byte, 16)); });
    });
    return bytes;
}

// Create the Randon Number. It will call from NewGuid function.
function getRandomNumber() {
    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);    
};
// Creating GUID eg. "cbe26df8-2b01-4377-9ae8-1d023ccd5171"
// getRandomNumber returns 4 digit Alphanumeric number and we are going to concatenating this with "-" symbol and third number starts with "-4" and substring the random number and concatenate the string and return.

function newGuid() {
    return (getRandomNumber() + getRandomNumber() + "-" + getRandomNumber() + "-4" + getRandomNumber().substr(0, 3) + "-" + getRandomNumber() + "-" + getRandomNumber() + getRandomNumber() + getRandomNumber()).toLowerCase();
};

1 Ответ

0 голосов
/ 28 июня 2018

Вы не должны вызывать функцию JMeter внутри JSR223-скрипта .

Вместо этого добавьте его в поле Параметры как ${__UUID}

и затем используйте его, используя args :

vars.put("guid", args[0]); 

args - параметры в виде массива строк (разбиваются на пробелы)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...