2015-02-26 1 views
0

Je suis nouveau dans jmeter et je ne trouve pas de réponse à ma question. Je veux appeler tous les liens internes sur le site Web. Le tutoriel m'a aidé à collecter tous les liens. Cependant, certains d'entre eux sont répétés. Et je veux appeler seulement des liens uniques - donc 1 lien 1 appel. J'appelle ma page Web et par l'extracteur d'expression régulière je rassemble tous les liens. Et par conséquent, j'ai des variables qui stockent des liens. Mais malheureusement, certains d'entre eux sont répétés et, par conséquent, j'appelle plus d'une fois certains liens.Jmeter - comment obtenir des URL uniques à partir de la page Web

Quelqu'un a une idée de comment le faire?

Répondre

0

En supposant que vos liens proviennent de Extracteur d'expression régulière, vous devriez avoir quelque chose comme:

LINK=http://foo.bar 
LINK_1=http://foo.bar 
LINK_2=http://example.com 
LINK_3=http://example.com 
LINK_matchNr=3 

JMeter ne fournit pas un élément d'essai approprié pour éliminer les doublons dans de telles situations, mais vous pouvez encore travailler autour via certains scripts.

Afin de le faire

  1. Ajouter un Beanshell PostProcessoraprès votre expression régulière Extractor
  2. Mettez le code suivant dans la zone "Script" du PostProcessor:

    int matches = Integer.parseInt(vars.get("LINK_matchNr")); 
    Set links = new HashSet(); 
    
    for (int i = 1; i <= matches; i++) { 
    
        links.add(vars.get("LINK_" + i)); 
        vars.remove("LINK_" + i); 
    } 
    
    int counter = 1; 
    for (String link : links) { 
        vars.put("LINK_" + counter, link); 
        counter++; 
    } 
    

Votre plan de test devrait donc ressembler à ceci:

Beanshell PostProcessor

Code Beanshell dans le PostProcessor

  • itère à travers toutes les variables JMeter commençant par LINK_
  • stocke leurs valeurs dans Java HashSet qui ne peut pas contenir des valeurs en double car il est basé sur le hachage. Donc, toutes les variables en double seront ignorés silencieusement
  • supprime des variables car ils sont itéré
  • construit de nouvelles variables de HashSet

Donc finalement vous aurez variables JMeter dans leur forme initiale, mais sans doublons.

Important: code Beanshell ci-dessus suppose que vous utilisez LINK comme « Nom de référence » dans votre extracteur d'expression régulière, assurez-vous que vous changiez à LINK il ou mettre à jour le code Beanshell pour correspondre à votre Nom Référence

Pour plus d'informations sur les scripts Beanshell dans Apache JMeter, reportez-vous au guide How to use BeanShell: JMeter's favorite built-in component.