Pregunta

Aquí está mi situación:

Quiero hacer esto:

Tengo una lista de URL en una base de datos MySQL que quiero presionar usando una solicitud HTTP para ver si la respuesta es un código de estado HTTP de 404 o no.

He hecho esto:

  1. agregado y configurado un elemento de configuración JDBC.
  2. agregado y configurado un muestreador de solicitud JDBC. Básicamente, una declaración selecta que devuelve una tabla con 8 columnas. He proporcionado 8 variables separadas por comas para el campo 'Nombres de variables', de modo que los resultados de la solicitud de JDBC puedan identificarse con estos nombres de variables.
  3. creó un muestreador de solicitud HTTP que utiliza una de esas variables $ {URL} en el campo 'Nombre del servidor o IP'.
  4. Aunque la solicitud de JDBC funciona perfectamente y devuelve una tabla con un montón de filas, el problema con esto es que la muestra de solicitud HTTP nunca recoge la variable del resultado de la solicitud JDBC. La solicitud HTTP se ve así en el 'Árbol de resultados de la vista':

    GET http://${url}/
    

    He probado estas soluciones:

    1. Agregar 'Guardar respuestas a un archivo' oyente a la solicitud JDBC. Esto crea un archivo de tipo '.Plain' y no un CSV. Si hubiera sido un CSV, podría haber utilizado ese archivo CSV creando una configuración de conjunto de datos CSV. Así que este intento falló.
    2. He intentado forzar el nombre del archivo en el intento anterior de usar siempre 'C: \ JMetertest \ Data.CSV'. Pero termina creando un nuevo archivo llamado 'c: \ jetertestest \ data.csv1.plain'. Este intento también falló.
    3. Intenté hacer referencia a hacer referencia a la columna URL como $ {url_1} en el campo Nombre del servidor de la solicitud HTTP. Funcionó. Pero el problema ahora es que en el árbol de resultados, todas las solicitudes van a la URL de solo la primera fila del conjunto de resultados. Veo que esto se debe al número de fila '_1' especificado en el $ {url_1} arriba. Puedo usar esto si alguien puede sugerir una forma de parametrizar el '_1' en una variable que puedo hacer un bucle (probablemente usando un elemento 'contador'). Creé un elemento de contador de configuración por el nombre de referencia 'Loopcounter'. Y usé esto en el campo Nombre del servidor de la solicitud HTTP:

      $ {url _ ("$ {buceounter}")}

    4. Pero ahora mis solicitudes de HTTP sean Lamer:

      GET http://${url_("${loopCounter}")}/
      

      Esto también funcionó.

      La solución 3 se ve más factible para ser solo si pude resolver la parametrización del número de fila. Estoy abierto a las sugerencias de plugin de JMETER también. Voy a actualizar cualquier otra cosa que intente a medida que continuemos.

      P.s. Por favor, hágamelo saber si mi pregunta no está clara de todos modos.

¿Fue útil?

Solución

¿Ha intentado envolver el muestreador HTTP en un controlador de foreach (padre) donde la variable para el controlador es la variable de URL obtenida del Sampler JDBC?

Además, la variable de salida en el foreach será la variable que ahora use en el Sampler HTTP.

De esa manera, se itará a través de cada variable desde el principio del índice hasta el final y ejecute el muestreador una vez cada vez.

Otros consejos

En 'Guardar respuestas a un archivo' oyente, seleccione las casillas de verificación "No agregue sufijo y prefijo".Comprobación de estas dos opciones se asegurará, obtendrá el nombre del archivo de registro exacto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top