if I do changes to a global variable in setup it is not reflected outside of setup(),
is it because setup runs once while global runs per vu.
// clobals
var mycache = __ENV.CACHE || {};
inside setup()
// cache the groupid so we do not look it up
if(!(testenvs[i] in mycache)) {
mycache[testenvs[i]] = {};
}
if(!(verticals[j] in mycache[testenvs[i]])) {
mycache[testenvs[i]][verticals[j]] = {};
if(!('groupid' in mycache[testenvs[i]][verticals[j]])) {
mycache[testenvs[i]][verticals[j]]['groupid'] = groupadd(testenvs[i], verticals[j], accessToken, groupname);
}
in setup cache look like this:
INFO[0002] cache: {"test12":{"trk":{"groupid":"1415731c-9fb0-103d-9c6d-7bbe67e726f1"}}} source=console
inside default():
// cache
console.log(`cache: ${JSON.stringify(mycache)}`);
let groupid = mycache[testenvs[i]][verticals[j]]['groupid'];
and I get this:
INFO[0012] cache: {} source=console
ERRO[0012] TypeError: Cannot read property 'trk' of undefined
running at file:///C:/dist/work/fido2-performance-test/fido2-scim-groups.js:324:47(57) executor=constant-vus scenario=default source=stacktrace
I works if I add it into default(), but it is more natural to do this in setup() where group is prepared.