Answered question

Problème lors de l'utilisation d'un variable pour paramétrer un délai

J'essaie d'utiliser une variable de type Javascript pour paramétrer la valeur d'un délai. Lors de la validation du scénario, la valeur retournée est un nombre de type float visible dans l'onglet "variables" (par exemple 120000.0) ce qui provoque l'erreur "Le délai doit être un nombre supérieur ou égal à zéro". Comment définir un délai variable?

Yves G.
Yves G.

Yves G.

Level
0
85 / 100
points
Nouredine A.
Nouredine A.

Nouredine A.

Level
4
5000 / 5000
points
Team

Vous pouvez éventuellement utiliser la fonction toFixed afin de supprimer la décimal.

Par exemple, (300000*n).toFixed(0)

Did you find this useful ?

No (0)

Yes (0)

0% of users found this answer useful

Other answers

Nouredine A.
Nouredine A.

Nouredine A.

Level
4
5000 / 5000
points
Team

Pourriez-vous copier/coller le contenu du Javascript que vous utilisez ?

Yves G.
Yves G.

Yves G.

Level
0
85 / 100
points

Voici le code utilisé dans une variable de type Javascript.
Lors de l'évaluation la valeur affichée est 300000.0 pour une valeur n=1

function toInt(variableName) {
var v = Packages.java.lang.Integer.parseInt(context.variableManager.getValue(variableName));
return v;
}
function evaluate() {
logger.debug("Computing value of js variable");
return new function() {
var n = toInt("User.Multiplier");
this.pingDelay = 300000*n;
this.pollDelay = 1200000*n;
};
}

christophe M.
christophe M.

christophe M.

Level
4
5000 / 5000
points
Team

I'm not sure to understand the code. It looks like you want to use a variable inside the Delay field, like "${MyDelay}".

You code doesn't set a variable and returns a function. I don't understand who would call the functions.

I would expect a call to the API with something similar to:
context.variableManager.setValue(variableName,this.pollDelay)

Yves G.
Yves G.

Yves G.

Level
0
85 / 100
points

I use the code of the Javascript variable template supplied by Neoload as the attached screenshot show it.

Yves G.
Yves G.

Yves G.

Level
0
85 / 100
points

Votre proposition fonctionne. Il est cependant très surprenant de devoir éliminer la décimale lorsqu'on multiplie deux entiers.
Merci