appeler une fonction perso dans un beanshell

42 views
Skip to first unread message

Eudes Elie

unread,
Oct 1, 2009, 10:42:12 AM10/1/09
to JMeter en français
Bonjour,

Dans un soucis de ne pas réécrire un même code x fois, j'aurai besoin
de l'externaliser au travers d'une fonction avec le(s) argument(s) qui
va(vont) bien et de l'appeler ensuite dans un sampler / post ou pre
procecesseur Beanshell.
Seulement je ne sais pas comment faire ...
Si vous aviez une idée je suis preneur :)

Milamber

unread,
Oct 5, 2009, 6:00:45 PM10/5/09
to jmet...@googlegroups.com
Bonjour,

Là, cela commence à être un besoin 'pointu' ;-)
Tu devrais pouvoir faire quelque chose en développement (en étendant
JMeter) ta propre fonction 'Jmeter', c'est à dire un développement Java.

Une fonction JMeter est une classe Java avec un nom de package incluant
le mot "functions" (par exemple : net.milamberspace.jmeter.functions),
et implémentant la classe org.apache.jmeter.functions.AbstractFunction

Donc, avec Eclipse, tu fais un projet Java simple, avec une classe
qqch.functions.Maclasse implémentant AbstractFunction (provenant des Jar
Jmeter). Prendre modèle sur les fonctions existantes de JMeter.
Puis tu fais un Jar pour ton projet, que tu déposes dans le
JMeter_Home/lib/ext.
Puis lorsque tu démarres JMeter, tu trouveras ta fonction dans la liste
des fonctions (menu Options>Boite de dialogue...) Il te suffira de
l'appeler ensuite.


A+
Milamber

PS : par exemple une fonction "${__helloworld}

=====
package net.milamberspace.jmeter.functions;

import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.functions.AbstractFunction;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;

public class HelloWorld extends AbstractFunction {

private static final String KEY = "__helloworld"; // $NON-NLS-1$

private static final List<String> desc = new LinkedList<String>();

@Override
public String execute(SampleResult previousResult, Sampler
currentSampler)
throws InvalidVariableException {
return "Hello World";
}

@Override
public String getReferenceKey() {
return KEY;
}

@Override
public void setParameters(Collection<CompoundVariable> parameters)
throws InvalidVariableException {

}

public List<String> getArgumentDesc() {
return desc;
}

}

=====


Le 01/10/2009 14:42, Eudes Elie a ecrit :

Eudes Elie

unread,
Oct 8, 2009, 3:18:52 AM10/8/09
to JMeter en français
ok merci bcp,
comme toujours les réponses sont toujours très claires :-)
Reply all
Reply to author
Forward
0 new messages