Параметризация одной и той же переменной во всех API в K6

Я извлекаю значение json из ответа json, сохраняю его в массив и возвращаю тот же массив, но значение становится неопределенным. Где, как и в функции настройки, я могу распечатать значение.

export function setup() {
    let code = [];
    code = object.func_name();
    code.push();
    console.log('code:::' + code);     // code::: 92409391-4d82-8028-5yy
    return code;
}

export function abc(code) {
    console.log('code: ' + code);  
}

export default function(code) {
    console.log('code1: ' + code);  
}

получение TypeError: Не удается прочитать свойство 'push' of undefined с этой ошибкой. Но когда я изменил функцию push -

if (!Array.isArray(authcode)) {
  authcode = [];
}
authcode.push();

Я получаю значение undefined в abc и функциях по умолчанию для кода.


person jenny    schedule 06.10.2020    source источник


Ответы (1)


Вы перезаписываете массив let code = [] тем, что возвращает object.func_name(), возможно, каким-то объектом, тогда как вы должны возвращать простые данные из setup().

Имейте в виду, что каждая VU в k6 — это отдельная среда выполнения JavaScript, и setup() также выполняется в своей собственной отдельной среде выполнения, поэтому вы можете возвращать объект с методами и т. д., только простые данные. Данные, возвращаемые из setup(), по существу сериализуются в JSON, а затем десериализуются в каждом БУ.

person na--    schedule 06.10.2020
comment
Хорошо, тогда как я могу передать извлеченное значение во все функции? Также object.func_name() выполняется один раз в скрипте, поэтому объявлено в setup() - person jenny; 07.10.2020
comment
Не знаю, что делает object.func_name(), но если он просто возвращает что-то вроде строки, нельзя ли просто return String(object.func_name()) или что-то в этом роде. Просто верните его как простые данные, которые можно преобразовать в JSON. - person na--; 07.10.2020
comment
На самом деле все, что я возвращаю из setup(), которое я не могу использовать по умолчанию или любой другой функции. Я думаю, что область setup() сама по себе. B'cz то же самое, что я пробовал в другой функции или функции по умолчанию, тогда я могу передавать эти глобальные переменные или переменные среды по всему проекту или экранам. но не может использовать среду или глобальные переменные setup() в любой другой функции. - person jenny; 07.10.2020