2017-10-13 19 views
1

J'ai vu beaucoup d'exemples mais aucun ne semble fonctionner.Comment puis-je accéder au gestionnaire de cookies dans beanshell?

C'est ce que j'ai installé:

enter image description here

J'utilise une boucle foreach à travers mes variables et ont Cookie Manager les utiliser: enter image description here

Je veux que le beanshell pour effacer les cookies dans le gestionnaire de cookies sur chaque boucle afin qu'ils soient rajoutés à partir de mes vars, mais je n'arrive pas à y accéder.

J'ai essayé les éléments suivants:

import org.apache.jmeter.protocol.http.control.Cookie; 
import org.apache.jmeter.protocol.http.control.CookieManager; 

manager = sampler.getCookieManager(); 

Cela me donne cette erreur:

Attempt to resolve method: getCookieManager() on undefined variable or class name: sampler 

J'ai essayé de le faire:

CookieManager cManager = ctx.getCurrentSampler().getCookieManager(); 

Mais cela me donne cette erreur:

Typed variable declaration : Error in method invocation: Method getCookieManager() not found in class'org.apache.jmeter.protocol.java.sampler.BeanShellSampler' 

Edit: Ainsi, selon une proposition de solution, j'ai essayé ceci:

enter image description here

Et puis ceci:

enter image description here

Mais cela me donne cette erreur:

2017/10/13 12:26:31 ERROR - jmeter.extractor.JSR223PostProcessor: Problem in JSR223 script JSR223 PostProcessor javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method clear() on null object 
+0

Qu'est-ce qui a résolu votre problème? Mise à niveau vers 3.3? – user7294900

Répondre

2

Ne pas utiliser Beanshell à cause de Performa nce et il sera supprimé dans les versions futures.

  • Ajouter un JSR223 PreProcessor sur la première requête HTTP
  • Sélectionnez Groovy
  • Cochez la case "script compilé cache si disponible"
  • Ajouter code suivant:

import org.apache.jmeter.protocol.http.control.CookieManager; import org.apache.jmeter.protocol.http.control.Cookie; CookieManager cm = sampler.getCookieManager(); cm.clear();

C'est à quoi il devrait ressembler

enter image description here

+0

Si je fais cela quand j'appelle clair je reçois: "Impossible d'invoquer la méthode clear() sur l'objet nul" – red888

+0

vous avez utilisé un poste, j'ai besoin d'un préprocesseur –

+0

Post processeur traite la même erreur mise à jour pour afficher post-processeur ne fonctionne pas – red888

1

Vous devez prendre des cookies Gérer du contexte JMeter:

CookieManager cm= ctx.getCurrentSampler().getCookieManager(); 

Actuellement vous obtenez à partir sampler qui est hors de propos.