libreria - mysql jar
Cómo utilizar las respuestas de una solicitud JDBC de Jmeter en una solicitud HTTP (2)
Aquí está mi situación:
Quiero hacer esto:
Tengo una lista de URL en una base de datos MySQL a la que quiero acceder utilizando una solicitud HTTP para ver si la respuesta es un código de estado HTTP de 404 o no.
He hecho esto:
- Agregado y configurado un elemento de configuración JDBC.
- Agregó y configuró un Muestreador de Solicitud JDBC. Básicamente, una instrucción select que devuelve una tabla con 8 columnas. He proporcionado 8 variables separadas por comas para el campo ''Nombres de variable'', de modo que los resultados de la solicitud JDBC puedan identificarse con estos nombres de variable.
- Creó un Muestreador de solicitudes HTTP que usa una de esas variables $ {url} en el campo ''Nombre del servidor o IP''.
Aunque la solicitud JDBC funciona sin problemas y devuelve una tabla con varias filas, el problema es que HTTP Request Sampler nunca recoge la variable del resultado de la Solicitud JDBC. La solicitud HTTP se ve así en ''Ver árbol de resultados'':
GET http://${url}/
He intentado estas soluciones:
- Agregue el oyente ''Guardar respuestas a un archivo'' 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 al crear una configuración de conjunto de datos CSV. Entonces este intento falló.
- Intenté forzar el nombre del archivo en el intento anterior de usar siempre ''C: / JMETERTest / data.csv''. Pero termina creando un nuevo archivo llamado ''C: / JMETERTest / data.csv1.plain''. Este intento falló también.
Intenté 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 para la URL solo desde la primera fila del conjunto de resultados. Veo que esto se debe al número de fila ''_1'' especificado en el $ {url_1} anterior. Puedo usar esto si alguien puede sugerir una forma de parametrizar el ''_1'' en una variable que pueda recorrer (probablemente usando un elemento ''Counter''). Creé un elemento de configuración de contador por el nombre de referencia ''loopCounter''. Y lo usé en el campo Nombre del servidor de la solicitud HTTP:
$ {url _ ("$ {loopCounter}")}
Pero ahora mis solicitudes HTTP parecen lamer:
GET http://${url_("${loopCounter}")}/
Esto tampoco funcionó.
La solución 3 parece ser más factible solo si pudiera resolver la parametrización del número de fila. Estoy abierto a las sugerencias de JMeter Plugin también. Actualizaré cualquier otra cosa que intente a medida que avanzamos.
PD Por favor, hágame saber si mi pregunta no está clara de todos modos.
¿Ha intentado envolver la muestra de HTTP en un controlador ForEach (principal) donde la variable para el controlador es la variable URL obtenida de la muestra JDBC?
Además, la variable de salida en ForEach será la variable que ahora usa en la muestra de HTTP.
De esta forma, repetirá cada variable desde el inicio del índice hasta el final y ejecutará la muestra una vez cada vez.
En el Oyente ''Guardar respuestas a un archivo'', seleccione Casillas de verificación ''No agregar sufijo y prefijo''. Verificando estas dos opciones se asegurará de que obtenga el nombre exacto del archivo de registro.