2017-09-04 1 views
0

Je cherche des conseils sur l'encodage dans JMeter. Je travaille actuellement sur un système utilisant les URL https et .aspx, et j'ai donc besoin de coder tous les paramètres dans mes demandes de post. En l'état, je copie et colle des formulaires Web de Fiddler pour générer mes scripts de test. Y a-t-il un moyen moins laborieux d'encoder tous mes paramètres du formulaire web, parce que je dois cocher pour encoder chaque paramètre individuel.JMeter, codant tous les paramètres

Répondre

0
  1. Très probablement vous faites quelque chose bizarre, étant donné que vous enregistrez vos demandes à l'aide de HTTP(S) Test Script Recorder JMeter JMeter doit remplir les paramètres de demande sur ses propres paramètres, y compris les valeurs de codage si nécessaire. Consultez JMeter Proxy Step by Step pour plus de détails sur l'enregistrement de vos scénarios de test.
  2. JMeter scripts .jmx sont essentiellement XML files donc vous devriez être en mesure d'ouvrir le script JMeter dans votre éditeur de texte favori, recherchez la ligne suivante:

    <boolProp name="HTTPArgument.always_encode">false</boolProp> 
    

    et le remplacer par

    <boolProp name="HTTPArgument.always_encode">true</boolProp> 
    
  3. Vous pouvez remplacer les paramètres non codés par leurs équivalents codés en utilisant JSR223 PreProcessor et le code Groovy suivant:

    org.apache.jmeter.config.Arguments args = sampler.getArguments() 
    sampler.getArguments().removeAllArguments() 
    args.each { 
        sampler.addEncodedArgument(it.getName(), it.getValue()) 
    } 
    

    Le code ci-dessus modifiera tous les échantillonneurs dans JSR223 PreProcessor's scope et remplacera les valeurs des paramètres par leurs équivalents codés. Cette approche peut être gourmande en ressources, utilisez-la judicieusement et, si possible, envisagez les alternatives décrites aux points 1 et/ou 2. Au cas où, voyez le Apache Groovy - Why and How You Should Use It pour vous familiariser avec le concept de script Groovy dans les tests JMeter.