En escenarios reales de pruebas de estrés, puede extraer parámetros de salida de la respuesta de una solicitud y utilizar esa información como entrada para la siguiente. Es posible definir varios parámetros de salida en una sola API. Este tema describe cómo extraer dichos parámetros.
Configurar parámetros de salida
La siguiente tabla describe los elementos que componen un parámetro de salida.
Elemento | Descripción |
|
Output Parameter Name |
Nombre del parámetro de salida. Puede contener letras, dígitos, guiones bajos (_) y guiones (-), pero debe comenzar con una letra. |
|
Source |
Método de análisis de la respuesta. Seleccione uno de los siguientes métodos:
|
|
Parsing Expression |
Expresión de análisis utilizada para extraer de la respuesta el contenido que se usará como parámetro de salida. |
|
Nth match |
Este parámetro solo aplica cuando Source está configurado como Body : TEXT. Si la expresión de análisis encuentra varias coincidencias, utilice este parámetro para seleccionar una. La indexación comienza en 0. Un número negativo, como -n, selecciona la n-ésima coincidencia desde el final. El valor debe estar en el rango [-99, 99]. Para seleccionar una coincidencia aleatoria, introduzca random. |
Método de análisis Body : JSON
El tipo de origen Body : JSON admite respuestas con encabezados Content-Type de tipo application/json y text/json.
PTS es compatible con las versiones nueva y antigua de la sintaxis JSONPath. Para resaltar las diferencias entre ambas versiones, las siguientes secciones presentan una estructura JSONPath de ejemplo, así como la sintaxis y descripción de las expresiones para cada caso.
Se recomienda utilizar la versión más reciente de la sintaxis JSONPath.
Expresiones JSONPath (versión nueva)
El siguiente código muestra un ejemplo de la estructura JSONPath en su versión nueva. La tabla posterior detalla la sintaxis y descripción de estas expresiones.
|
Sintaxis JSONPath |
Descripción |
|
$ |
Objeto raíz. Por ejemplo, si especifica la expresión |
|
[num] |
Recuperación de un elemento en un arreglo. La variable num indica un número. Por ejemplo, al usar la expresión |
|
[num0,num1,num2...] |
Recuperación de múltiples elementos en un arreglo. La variable num indica un número y se devuelven varios elementos. Por ejemplo, con la expresión |
|
[start:end] |
Recuperación de un rango de elementos definido por un inicio y un fin dentro de un arreglo. Por ejemplo, la expresión |
|
[?(@.key)] |
Recuperación de atributos de objeto no vacíos. Por ejemplo, la expresión |
|
[?(@.key > 123)] |
Recuperación de atributos numéricos mediante comparación. Los operadores admitidos son igual a (=), distinto de (!=), mayor que (>), mayor o igual que (>=), menor que (<) y menor o igual que (<=). Por ejemplo, la expresión |
|
[?(@.key = '123')] |
Recuperación de atributos de tipo cadena mediante comparación. Se admiten los mismos operadores que en comparaciones numéricas. Por ejemplo, la expresión |
|
[?(@.key like 'aa%')] |
Recuperación de atributos de cadena mediante cláusula like. Solo se permite el signo de porcentaje (%) como comodín y también se admite not like. Por ejemplo, la expresión |
|
[?(@.key rlike 'regexpr')] |
Recuperación de atributos de cadena mediante expresión regular. Usa la sintaxis de Java Development Kit (JDK) y admite not rlike. Por ejemplo, |
|
[?(@.key in ('v0', 'v1'))] |
Recuperación de atributos mediante cláusula in. Admite objetos de tipo cadena y numérico, además de not in. Por ejemplo, |
|
[?(@.key between 234 and 456)] |
Recuperación de atributos mediante cláusula between para valores numéricos. También se admite not between. Por ejemplo, la expresión |
|
length() o size() |
Obtiene la cantidad de elementos en un arreglo. Por ejemplo, tanto |
|
.. |
Recupera un atributo específico en cualquier nivel. Por ejemplo, |
|
* |
Recupera todos los atributos de un objeto. Por ejemplo, |
|
randomIndex() |
Obtiene un elemento aleatorio del arreglo. Por ejemplo, |
|
['key'] |
Recupera un atributo específico. Por ejemplo, |
|
['key0','key1'] |
Recupera múltiples atributos. Por ejemplo, |
Las expresiones $.store.book[0].title y $['store']['book'][0]['title'] tienen la misma semántica.
Expresiones JSONPath (versión antigua)
El siguiente fragmento muestra un ejemplo de la estructura JSONPath en su versión antigua. La tabla subsiguiente compara la sintaxis y descripción respecto a la versión nueva.
{
"info": "success",
"message": "Succeeded.",
"data": {
"id":13509, "code":0,
"items": [
{"name": "name1", "value": "1234"},
{"name": "name2", "value": "8448"},
{"name": "name3", "value": "1298"},
{"name": "name4", "value": "3049"},
{"name": "name5", "value": "7648"}
]
}
}
|
Valor del parámetro de salida |
Expresión de análisis (versión antigua) |
Expresión de análisis (versión nueva, para comparación) |
|
Valor del objeto info. |
|
|
|
Valor de ID en el arreglo data. |
|
|
|
Valor del primer elemento en el arreglo items. Admite posición relativa. |
|
|
|
Valor del penúltimo elemento en el arreglo items. Admite posición relativa. |
|
No compatible |
|
Todo el arreglo items. |
|
|
|
Un elemento aleatorio del arreglo items. |
|
|
Método de análisis Body : TEXT
El tipo de origen Body : TEXT admite cualquier formato de texto y utiliza expresiones regulares para extraer datos. Si la expresión regular encuentra varias coincidencias, puede especificar cuál usar mediante su índice. El índice predeterminado es 0, que selecciona la primera coincidencia.
El siguiente código muestra un ejemplo de respuesta de API:
<input name="id" value="34729XXXX">
<input name="token" value="acdfo4dfopasdf44dXXXX">
...
<script>
var planId=4587;
var planId=5689;
var planId=8906;
</script>
|
Valor deseado |
Parsing Expression |
Nth match |
|
Valor cuyo nombre es id. |
|
0 |
|
Valor cuyo nombre es token. |
|
0 |
|
Valor del tercer elemento PlanID. |
|
2 |
|
Valor de un elemento PlanID aleatorio. |
|
random |
Convenciones de formato:
El análisis comienza al inicio del cuerpo de la respuesta. Se utiliza el primer valor que coincide con la expresión y luego se detiene la búsqueda. Por lo tanto, asegúrese de que su expresión sea lo suficientemente específica para coincidir únicamente con el valor deseado, a menos que cualquiera de las coincidencias sea válida.
El texto coincidente no puede contener caracteres especiales como llaves ({}) ni paréntesis (()).
Al usar una expresión regular para extraer información de una respuesta JSON, no es necesario agregar un espacio después de los dos puntos entre la clave y el valor. Sin embargo, puede añadirlo para mejorar la legibilidad visual de los datos JSON.
Métodos de análisis Cookie : K/V y Header : K/V
Los métodos Cookie : K/V y Header : K/V sirven para extraer los campos Cookie y Header, respectivamente. En la expresión de análisis, especifique las claves que desea obtener. Por ejemplo, si el campo Cookie contiene token=1234;path=/ y quiere extraer el valor del token, escriba token en la expresión de análisis.
Método de análisis Status Code
El método Status Code permite extraer los códigos de estado de las respuestas. Generalmente se usa para puntos de verificación o saltos condicionales, ya que diferentes códigos de estado devuelven distinta información de página.
Parámetros de salida en nodos JDBC
Para extraer un parámetro de salida de resultados de consultas SQL, seleccione el origen Body : JSON. Los resultados se estructuran como el siguiente objeto JSON:
{
"data": [
{
"Column 1": "value",
"Column 2": "value"
},
{
"Column 1": "value",
"Column 2": "value"
}
...
]
}
Por ejemplo, considere los resultados de consulta SQL mostrados en la siguiente tabla. Suponga que desea analizar el valor (name1) de la columna name en la primera fila para usarlo como parámetro de salida.
|
id |
name |
|
1 |
name1 |
|
2 |
name2 |
Utilice la siguiente expresión de análisis:
$.data[0].name
Depurar parámetros de salida
Si no está seguro de si una expresión de análisis es correcta, puede depurarla junto con su parámetro de salida asociado durante la depuración del escenario. Siga estos pasos:
En la página PTS Scenario, haga clic en Debug en la parte inferior. En el cuadro de diálogo Debug Scenario que aparece, haga clic en el nombre del escenario. En el panel de detalles a la derecha, seleccione una API y haga clic en Click to test the regular expression for the output parameter.
En el cuadro de diálogo emergente, seleccione el tipo de origen, introduzca la expresión de análisis, especifique la coincidencia n-ésima y asigne un nombre al parámetro de salida. Haga clic en Test Expression. Compare el resultado obtenido con los detalles de la respuesta para comprobar que el contenido extraído sea correcto.
-
Para guardar la configuración, haga clic en Sync Output Parameter y agregar esta expresión a la lista de parámetros de salida de la API.
NotaUna vez concluida la depuración del escenario, si sincronizó algún parámetro de salida, regrese a la pestaña Scenario settings de la prueba de estrés. En la pestaña Output Parameter Definition correspondiente a esa API, deberá asignar un nombre al parámetro sincronizado.
Ejemplo: configurar parámetros de salida
En un contexto de gestión financiera, podría necesitar recomendar servicios adecuados según la capacidad de consumo de los clientes. Para ello, extraiga el nivel de capacidad de consumo de cada cliente como parámetro de salida y utilícelo para generar recomendaciones.
Siga estos pasos:
Inicie sesión en la consola de PTS, vaya a y haga clic en PTS.
En la página PTS Scenario, agregue APIs para obtener el poder adquisitivo y recomendar productos. Por ejemplo, nómbrelas Spending Power (with output parameter) y Product Recommendation, e introduzca sus respectivas URL.
Para la API Spending Power (with output parameter), configure un parámetro de salida que extraiga la información de poder adquisitivo de la respuesta. Introduzca un nombre para el parámetro (por ejemplo,
output) y la expresión de análisis (por ejemplo,data.items[0].value).En la esquina inferior izquierda de la página PTS Scenario, haga clic en Parameter list. En la pestaña Custom parameters, podrá ver el parámetro de salida creado. Haga clic en el nombre del parámetro (por ejemplo,
output) o en el icono de copia
para copiar la referencia del parámetro al portapapeles.-
En la configuración de la API Product Recommendation, vaya a la pestaña Body Definition. Pegue la referencia copiada en el cuerpo.

También puede editar el contenido del cuerpo, por ejemplo, combinando cadenas, parámetros o funciones.