2011-09-06 17 views
14

estoy usando un elemento de conjunto de datos de configuración CSV, que es la lectura de un archivo de la siguiente manera:JMeter CSV Dataset Config: cómo mover las variables en el mismo subproceso?

abd 
sds 
ase 
sdd 
ssd 
cvv 

cual, básicamente, tiene un número de serie aleatoria de 3 letras.

Los estoy asignando a una variable llamada ${random_3}.

Ahora, quiero usar los valores de esta lista varias veces dentro del mismo hilo, pero cada vez que quiero pasar al siguiente. Por ejemplo, quiero que la primera muestra utilice abd, la segunda para usar sds, luego ase, etc. Pero si solo uso ${random_3}, entonces solo se usa la primera (abd) donde sea que se haga referencia. ¿Hay alguna manera en que pueda especificar recorrer los valores del conjunto de datos CSV dentro de un hilo?

Respuesta

32

CSV conjunto de datos de configuración funciona bien para esto. Todos los valores deben estar en una columna del archivo y asignarlos a la variable como se describe.

Cree un Subproceso Grupo que tiene tantos subprocesos para tantos usuarios como desee iterar sobre el archivo (es decir, que actúa en la solicitud HTTP). Suponiendo 1 de usuario, establecer el número de hilos a 1, bucle contador en 1.

Dentro del grupo de hilos que tendrá que añadir un controlador de bucle o una Mientras controlador. Usted indicó que desea recorrer todo el conjunto de datos. Si agrega un controlador de bucle, querrá establecer el recuento de bucles en 6, ya que tiene 6 valores, uno para cada valor. Alternativamente (y más fácil para procesar todo el archivo) agregue un Controlador While en lugar de un Controlador de Bucle y configure $ {random_3} como la condición while.

Es importante establecer el conjunto de datos CSV de reciclaje en EOF y tope de la rosca en EOF valores correctamente. Si planea iterar sobre el archivo más de una vez, debe configurar "Reciclar en EOF" en True (es decir, indicar a jMeter que regrese a la parte superior del archivo CSV). Establezca "Detener subproceso en EOF" en False si está utilizando un controlador de bucle, true si está utilizando un controlador while y desea detenerse después de leer todo el conjunto de datos csv.

Agregue la configuración del conjunto de datos CSV como elemento secundario del controlador junto con la solicitud HTTP. Vea los resultados usando cualquier oyente que quiera usar.

2

El conjunto de datos CSV se mueve a través del archivo solo cuando comienza cada iteración de hilo.

Puede usar Raw Data Source PreProcessor para moverse por el archivo con cada solicitud, esa es su solución.

+0

Gracias he tenido un aspecto, pero no parece estar directamente relacionado con mi caso de uso y un poco complicado en general. –

+0

En realidad es una solución. Puede preguntar en la lista de correo del proyecto qué tan exacto debe usarlo para obtener lo que desea. –

+0

Gracias Andrey, voy a comprobarlo de nuevo. Mi requisito para esta parte fue bastante simple y fue abordado por un simple generador de cadenas aleatorias en beanshell. –

1

Tenga en cuenta que debe tener los valores para un nombre de variable determinado en la misma columna.

haciendo: abd sds ase sdd ssd cvv es muy diferente de

abd 
sds 
ase 
sdd 
ssd 
cvv 

El primero tiene 6 variables con un valor de cada uno; el segundo tiene una variable con 6 valores.

+0

Sí, gracias, soy consciente de eso, quería que se asignaran a la misma variable (pero un nuevo valor cada vez que se hace una referencia) –

1

Actualización:

CSV conjunto de datos no parece ser una adecuada también para este propósito.

Terminé creando algunos scripts de beans simples que crean una palabra aleatoria de 1, 2 o 3 letras según sea necesario, y también otra que lee palabras aleatorias de un conjunto grande. De esta forma, cada vez que son llamados, dan un valor aleatorio. Se llaman así:

${__BeanShell(getRandomStr(3))} 

o

${__BeanShell(getRandomWord()) 
Cuestiones relacionadas