2012-07-03 17 views
24

Estoy usando jMeter para probar una aplicación Tomcat. Necesito analizar la respuesta de jMeter y hacer una segunda solicitud. La primera respuesta se parece a esto:Cómo analizar la respuesta de Jmeter y realizar una nueva solicitud

<responseData class="java.lang.String">&lt;html&gt;&#xd; 
&lt;body&gt;&#xd; 
ERROR=0&#xd; 
MSG=N/A&#xd; 
FILELIST=1555;1340778737370;1526545487;&#xd; 
VERSION=1.002&#xd; 
URL=https://192.168.100.46/updserver/download?action=signature_download&amp;token=&#xd; 
INTERVAL=0&#xd; 
&lt;/body&gt;&#xd; 
&lt;/html&gt;&#xd; 
</responseData> 

necesito para extraer las variables "URL" "FILELIST" y e inyectarlos en una nueva dirección URL:

https://192.168.100.46/updserver/download?action=signature_download&amp;token=1555;1340778737370;1526545487;&#xd; 

Sé que hay algunos post-procesador para hacer eso, pero no tengo idea de cómo hacerlo. Por cierto, la segunda solicitud descargará algún archivo del servlet Tomcat, ¿hay alguna manera de dejar que jMeter simplemente descargue la transmisión pero sin escribir en un archivo físico? Para poder hacer una prueba de rendimiento de carga contra mi servlet.

Respuesta

20

autorización así que usted ya sabe cómo extraer url de tu respuesta, describí cómo mi respuesta anterior:

https://stackoverflow.com/a/11188349/169277

Pero aquí sólo voy a profundizar en eso. Entonces tienes tu muestra y ya tienes $ {url}. Ahora necesita FILELIST y ensamblar una nueva url.

Suponiendo que ya tiene una solicitud y un extractor de url en su lugar. Agregue un nuevo Regular expression extractor.

Right click on request sampler -> Post Processors -> Regular Expression Extractor

Reference Name : FILELIST 
Regular Expression : FILELIST=(\S+) 
Template : $1$ 
Match No. (0 for Random): 1 

Así que ahora tiene 1 solicitud de toma de muestras y 2 extractores de expresiones regulares. Necesitará agregar post procesador adicional para poder ensamblar la nueva url.

Right click on request sampler -> Post Processors -> BSF PostProcessor

Elija el beanshell de la lista desplegable bajo la lengua Script language y en el campo grande Script: pega este:

vars.put("NEW_URL", "${__javaScript('${url}'.replace('&#xd;'\,'${FILELIST}'))}"); 

Y ahora usted tiene ${NEW_URL} utilizar más lejos en sus pruebas.

Siempre hay más de una forma de resolver problemas, este delineador se ve muy feo pero sirve para este propósito.

En mi prueba el resultado es como usted pidió (depuración Sampler):

url=https://192.168.100.46/updserver/download?action=signature_download&amp;token=&#xd; 
FILELIST=1555;1340778737370;1526545487;&#xd; 
NEW_URL=https://192.168.100.46/updserver/download?action=signature_download&amp;token=1555;1340778737370;1526545487;&#xd; 

EDIT:

Creo que no entiendo cómo asignar nombres a las variables. Pero el resultado final es el que describiste en tu pregunta. Por favor mira el.prueba jmx unido con el ejemplo de trabajo:

http://www.filefactory.com/file/1q7nfitmh4qd/n/so_11309469_jmx

Es un jmeter .jmx archivo de trabajo con 2.6+ versión de jmeter

+0

@ hormiga, de acuerdo con su ayuda, ya tengo los Sample1 (que tiene 3 postprocesador : url/token extrator/bsf post-processor) y sample2 para enviar nueva solicitud. Pero aún así hay un error que muestra2 no obtiene la URL correcta, por favor ayuda a encontrar mi muestra de depuración: [enlace] http://pastebin.com/rXB00uTL –

+0

@ Gracia, por favor, eche un vistazo a la respuesta actualizada – ant

+0

@ hormiga, yo Lamento haber cometido un error terrible. Trabajó de mi lado ahora, no puedo apreciarte más por tu gran ayuda. –

7

Para capture parte de la respuesta usa Regular Expression Extractor.

Puede probar su expresión regex en los datos de respuesta utilizando el oyente ViewResultsTree. Simplemente seleccione probador Regexp en el cuadro desplegable en la parte inferior del panel de la izquierda en su oyente ViewResultsTree.

Cuestiones relacionadas