J'essaie d'exécuter des appels ajax à partir de l'échantillonneur JSR223 comme dans requête parallèle à l'aide de l'échantillonneur JSR223 (Jmeter).

Je peux obtenir une réponse d'appels ajax qui n'ont pas besoin de cookie d'authentification de connexion. Cependant, ne pas obtenir de réponse des appels ajax nécessitant un cookie d'authentification généré par la connexion.

J'ai ajouté un appel http de connexion avant l'échantillonneur JSR223 mais le cookie n'est pas transmis dans la demande. Essayé en ajoutant du code:

HTTPSamplerProxy previousSampler = ctx.getPreviousSampler();
CookieManager cookieManager = previousSampler.getCookieManager();
HTTPSampleResult previousResult = (HTTPSampleResult)ctx.getPreviousResult();
log.info("Cookie Count is : "+ cookieManager.getCookieCount());

Il jette ci-dessous l'exception:

2017-11-28 10: 44: 51,195 ERREUR oajpjsJSR223Sampler: Problème dans le script JSR223 Sampler JSR223, message: javax.script.ScriptException: java.lang.NullPointerException: Impossible d'appeler la méthode getCookieCount () sur l'objet null javax.script.Script.Script java.lang.NullPointerException: impossible d'appeler la méthode getCookieCount () sur un objet nul

1
ajay 28 nov. 2017 à 08:38

3 réponses

Meilleure réponse

L'erreur que vous obtenez indique que vous ne disposez pas du Gestionnaire de cookies HTTP ajouté / activé.


Comme alternative au script Groovy, vous pouvez utiliser des échantillonneurs JMeter "normaux" de HTTP Request qui supportent naturellement les cookies, le cache, les en-têtes, l'autorisation, etc.

Afin de pouvoir les exécuter de manière parallèle AJAX, placez les échantillonneurs sous Parallel Controller. Vous pouvez installer Parallel Controller à l'aide de JMeter Plugins Manager

JMeter Plugins Manager Parallel Controller

3
Dmitri T 28 nov. 2017 à 10:50

Comme dit précédemment, avez-vous un gestionnaire de cookies HTTP? Et voici le code pour ajouter un cookie dans le gestionnaire de cookies

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

try {
    String params = vars.get("getCookieValue");
    ctx.getCurrentSampler().getCookieManager().add(new Cookie("COOKIENAME", params, "domain", "/url", true, Long.MAX_VALUE));
}
catch (Throwable ex) {
    log.error("Error in Beanshell", ex);
    throw ex;
}
0
jeffrey Dorey 28 nov. 2017 à 13:44

Vérifiez que vous avez ajouté CookieManager dans votre pkan de test.

Utilisez également un pré-processeur JSR223 au lieu d'un échantillonneur JsR223.

0
UBIK LOAD PACK 28 nov. 2017 à 07:18
47524672