2010-10-14 7 views
2

J'ai une page qui utilise JQuery. Cette page contient également des champs cachés dont la valeur est renseignée dynamiquement par JQuery (lors de la sélection de la liste déroulante).Expressions JQuery dans JMeter

Maintenant, j'ai une expression javascript/jquery similaire à ce $ ('* [nom = staffid]'). Val() - cette expression me fournit la valeur sélectionnée. Je voudrais stocker cette valeur dans une variable dans JMeter afin que je puisse la transmettre aux appels suivants ou pendant soumettre.

Comment j'évalue/exécute cette expression dans JMeter afin que je puisse transmettre ces valeurs aux demandes suivantes ou les stocker dans une variable pour une utilisation ultérieure.

+0

Avez-vous trouvé une solution réalisable? – BlackGaff

Répondre

0

Vous pouvez essayer le javascript function, ${__javaScript()}

ou un beanshell processor, qui peut exécuter javascript

+0

J'ai essayé ceci mais JMeter se plaint que la référence $ à jquery n'est pas reconnaissable jmeter.extractor.BSFPostProcessor: Problème dans le script BSF org.apache.bsf.BSFException: Erreur JavaScript: Erreur interne: org.mozilla.javascript.EcmaError: ReferenceError: " $ "n'est pas défini – Bala

+0

Oui, le JavaScript ne fonctionnera pas car JMeter exécute simplement une expression JavaScript sans aucun contexte de la page réelle. C'est ainsi que JMeter fonctionne: comme presque tous les outils de test de charge, il ne traite pas vraiment la page, ne configure pas le DOM, n'évalue pas le JavaScript, etc. –

0

Vous ne serez pas en mesure d'évaluer les expressions jQuery contre les pages à l'aide JMeter. J'aimerais que ce soit aussi simple que cela, mais que jQuery ait besoin d'un moteur DOM + JavaScript totalement opérationnel et que JMeter ne le fournisse pas.

Plug-and-Shameless: la société que j'ai démarrée, BrowserMob, charge les tests en exécutant les navigateurs actuels pilotés par Selenium. Lorsque vous utilisez un vrai navigateur, vous n'avez pas à faire ce genre de choses. Découvrez-le au http://browsermob.com.