Skip to content

Instantly share code, notes, and snippets.

@arey
Created May 24, 2012 18:24
Show Gist options
  • Select an option

  • Save arey/2783293 to your computer and use it in GitHub Desktop.

Select an option

Save arey/2783293 to your computer and use it in GitHub Desktop.
Extracteur JMeter d'identifiant du view state JSF à l’aide d'une regex
import java.util.HashSet;
import java.util.Set;
import org.apache.jmeter.extractor.RegexExtractor;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
import org.apache.jmeter.testelement.TestElement;
import com.javaetmoi.tests.jmeter.TestElementProcessor;
import com.javaetmoi.tests.jmeter.TestElementTree;
public class ViewStateExtractor implements TestElementProcessor {
private Set<String> pages = new HashSet<String>();
@Override
public boolean isApplicableTo(TestElementTree<TestElement> testElementTree) {
// Toutes les pages JSF dynamiques appartiennent au sous-répertoire /pages/ et portent
// l'extension .faces
if (testElementTree.getTestElement() instanceof HTTPSamplerBase) {
HTTPSamplerBase HTTPSamplerBase = (HTTPSamplerBase) testElementTree.getTestElement();
String path = HTTPSamplerBase.getPath();
if ((path.contains("/pages/") && path.contains(".faces"))) {
return !pages.contains(path);
}
}
return false;
}
@Override
public void process(TestElementTree<TestElement> testElementTree) {
RegexExtractor regexExtractor = new RegexExtractor();
regexExtractor.setName("Extracteur ViewState");
regexExtractor.setRefName("VIEWSTATE");
regexExtractor.setRegex("id=\"javax.faces.ViewState\" value=\"(.*?)\"");
regexExtractor.setTemplate("$1$");
regexExtractor.setDefaultValue("INDISPONIBLE");
regexExtractor.setProperty(TestElement.GUI_CLASS, "RegexExtractorGui");
testElementTree.getSubTree().add(regexExtractor);
HTTPSamplerBase HTTPSamplerBase = (HTTPSamplerBase) testElementTree.getTestElement();
pages.add(HTTPSamplerBase.getPath());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment