¿Cómo realizar una solicitud HTTP PUT leyendo valores de CSV en JMeter?
Tengo una pregunta, ¿cómo puedo configurar HTTP Request Sampler para el método HTTP PUT en JMeter para que pueda leer datos del archivo CSV usando CSV Data Set Config? En mi escenario, estoy usando ** Grupo de subprocesos de simultaneidad ** con los siguientes parámetros: * ** Concurrencia objetivo **: 50 * RampUp ** Tiempo ** (** segundos **): 10 * Pasos de aceleración ** recuento **: 5 * Mantener objetivo ... (** segundos **): 10
Esta es mi configuración de configuración de conjunto de datos CSV :

(Java) Los tipos de nombres de variables son: bookId: Long , title: String , price: double , amount: int , autores: Set , categorías: Set , isDeleted: boolean
Esta es mi configuración de muestra de solicitud HTTP :

... y este es el contenido de mi archivo bookCollection10Items.csv donde los valores entre comillas son cadenas, y los que están entre corchetes angulares [] son matrices de valores (ya que estoy actualizando el libro que tiene una relación de muchos a muchos con categorías / autores ):
1, "Harry Potter y la piedra mágica", 39,99, 2500, [4], 7,11, falso
2, "Asesinato en el Orient Express", [19,98,500500], 1,9, falso
3, "El asesinato de Roger Ackroyd ", 19.99,1500,1, [7,9], falso
4," Harry Potter y la cámara secreta ", 24.99,0,4, [7,9], verdadero
5," Harry Potter y el prisionero of Azkaban ", 17.99,1200,4,7, falso
6," El Código Da Vinci ", 29.99,700,8,10, falso
7," Inferno ", 22.50,950,8,10, falso
11," Guerra y Paz ", 31.99,300,5,8, falso
14," El Juicio ", 27.99,450,6,9, falso
15," IT ", 16.50,0,2,5, verdadero
Lo que quiero lograr es que cada subproceso (es decir, usuario) seleccione un elemento del archivo "bookCollection10Items.csv" de forma rotatoria y lo actualice para un bookId determinado utilizando "Todos los subprocesos" como opción de modo de uso compartido .
Cualquier consejo / sugerencia es muy apreciado.
Respuestas
La configuración de conjunto de datos CSV incorporada de JMeter lee líneas del archivo CSV de forma secuencial para que cada usuario obtenga la siguiente línea en cada iteración.
Si necesita leer una línea aleatoria (sin embargo, no creo que sea una buena idea, ya que creo que las pruebas deben ser repetibles ), deberá optar por algunos complementos como:
- Configuración de conjunto de datos CSV aleatorio
- o servidor de tabla simple HTTP
Ambos se pueden instalar usando JMeter Plugins Manager
Me las arreglé para encontrar una solución a mi problema -> Cometí un error al:
1) Crear un archivo CSV en gEdit (equivalente de Linux al Bloc de notas de Windows) en lugar de usar LibreOffice Calc donde el trabajo se realiza en celdas . Por lo tanto, de esta manera (tanto en gEdit como en LibreOffice Calc ):
3, "The Murder of Roger Ackroyd", 19.99,1500,1, [7,9], falso
... es un no-no.
2) Eliminar los corchetes angulares [] de la lista para que las matrices NO contengan matrices. Por ejemplo, cuando hay corchetes angulares, obtengo esto:
{
// some other fields
"authors" : [[7,9]]
}
3) Tuve que formatear correctamente los números con decimales para contener puntos , NO comas ( problemas de configuración regional ). Por ejemplo, el formato adecuado es 19,99, el formato incorrecto 19,99