2011-09-20 20 views
8

Estoy trabajando con JMeter para escribir algunas pruebas de rendimiento. Una de las cosas que tengo que hacer es construir dinámicamente una enorme solicitud json y enviarla como petición de pago de POST. Con el preprocesador BSF, puedo modificar la carga útil de forma dinámica, sin embargo, mi cadena javascript está siendo codificada, mientras que quiero enviarla sin codificar.Envío de una solicitud JSON POST con el preprocesador BSF

No estoy seguro de cómo el preprocesador BSF puede evitar que se codifique. El comando Actualmente utilizo para cambiar mi puesto solicitud de carga útil es la siguiente:

var jsonData = '[{"item":"value","something":"everything"}]'; 
sampler.addArgument("",jsonData); 

Realmente agradecería si me pueden señalar algunos ejemplos que explican claramente cómo se espera que los preprocesadores bsf para ser utilizado.

Cualquier puntero para omitir la codificación también será apreciado.

Respuesta

1

Desde JMeter 2.6 se puede utilizar el panel de solicitud de RAW usando Mensaje Cuerpo pestaña.

Así que su solución es hacer lo siguiente:

  1. En BSF Sampler, poner JSON en una variable:

    var jsonData = '[{"item":"value","something":"everything"}]'; 
    vars.putObject("jsonData",jsonData); 
    
  2. Publicar palabra, pondrá:

    ${jsonData} 
    

Otra opción que usa yo ur método es poner en BSFPreProcessor utilizando un lenguaje Beanshell (no javascript):

import org.apache.jmeter.protocol.http.util.HTTPArgument; 
String jsonData = "[{\"item\":\"value\",\"something\":\"everything\"}]"; 
HTTPArgument arg =new HTTPArgument("", jsonData, null, true); 
arg.setAlwaysEncoded(false); 
sampler.getArguments().addArgument(arg); 

Saludos

Philippe M.

-1

propiedad en su conjunto muestreador "HTTPArgument.always_encode" false esto debe desactivar argumento de codificación

+1

solución es incompleta, ver más abajo para una completa –

Cuestiones relacionadas