Sintaxis de definición de la prueba
La prueba se define como un archivo YAML con las siguientes secciones:
requirements: {}
info:
title: "New Configuration YAML File"
version: 2
configs:
globalVariables:
protocol: https://
domain: sample-api.us-east-a.apiconnect.automation.ibm.com
basePath: /bank
inputs:
- default:
value: string
type: array
- second:
value: number
type: string
steps:
- type: request
method: get
url: "{{ configs.globalVariables.protocol }}{{ domain }}{{ globalVariables.basePath }}/branches"
var: branches
mode: json
- type: assert-is
expression: branches
value: "{{ type }}"
- type: assert-exists
expression: branches.[1]
stoponfail: true
- type: assert-is
expression: branches.[0].type
value: string
stoponfail: true
- type: assert-is
expression: branches.[0].address.city
value: string
stoponfail: true
- type: assert-compares
expression1: branches.[0].type
expression2: branches.[7].type
- type: request
method: get
url: https://sample-api.us-east-a.apiconnect.automation.ibm.com/orders/order/AB1234
var: payload
mode: json
- type: assert-equals
expression: payload_response_statusCode
value: 200
ifexists: false
stoponfail: false
- type: assert-equals
expression: payload_response_header_Content-Type
value: application/json
- type: assert-in
expression: payload_response_header_Content-Type
values:
- application/json
- application/swagger+yaml
- type: assert-contains
expression: payload_response_header_Content-Type
value: app
- type: assert-matches
expression: payload_response_header_Content-Type
value: ^[a-z]+/json
- type: assert-exists
expression: "payload"
stoponfail: false
- type: assert-is
expression: "payload.tracking_reference"
value: "string"
ifexists: "false"
stoponfail: false
- type: assert-exists
expression: payload.shipped_at
stoponfail: false
- type: assert-exists
expression: payload.status
stoponfail: false
- type: assert-exists
expression: payload.created_at
stoponfail: false
Tabla 1. Resumen de los parámetros admitidos por el atributo type
| Parámetros | Descripción | Subatributos |
|---|---|---|
| globalVariables | Las variables globales son ajustes que permanecen constantes a lo largo de toda la prueba y normalmente no cambian entre ejecuciones. | Puede definir aquí cualquier atributo en función de sus necesidades. Por ejemplo: - portocolo: Especifica el protocolo (por ejemplo, https://) utilizado en todas las solicitudes, lo que garantiza una comunicación segura.- dominio: Especifica la dirección del servidor principal para las solicitudes de API. - ruta base: Define la ruta base para todos los puntos finales de la API (por ejemplo, /bank), que se añade al dominio para construir las URL de las solicitudes. |
| entradas | Define varios conjuntos de parámetros de entrada utilizados en múltiples escenarios de prueba. | Puede crear varios conjuntos de datos con los atributos necesarios para escenarios de prueba específicos. Por ejemplo, por defecto y en segundo lugar son dos conjuntos de datos, cada uno con sus propios atributos adaptados a diferentes escenarios. Nota: Para realizar la prueba debe haber al menos un conjunto de datos. |
| solicitud | Realice una solicitud http. | - método: Define el método HTTP a utilizar. - url: Define el URL al que hacer la petición. - params: Define el mapeo clave-valor de los parámetros a enviar. - headers: Define el valor clave de las cabeceras a enviar. - var: Define el nombre de la variable en la que se almacenará la respuesta. - mode: Define qué tipo de datos esperar y cómo parsearlos (soportado: json). Por ejemplo: - tipo: request - método: get - url: https://sample-api.us-east-a.apiconnect.automation.ibm.com/bank/branches - var: branches - mode: json |
| asert-is | Afirmar que el tipo de variable de la respuesta es valor. | - expresión: Define la variable a probar. - valor: Define el tipo que esperamos como respuesta. Por ejemplo: - type: assert-is expression: branches value: array |
| afirmar-existir | Afirmar que una determinada variable especificada en la expresión existe. | - expresión: Define la variable a probar. - stoponfail: Si una de las pruebas falla, el atributo stoponfail detiene la ejecución de las pruebas restantes. Para ello, stoponfail debe tener el valor true. Por ejemplo: - type: assert-exists expression: branches.[1] stoponfail: true |
| asert-equals | Afirmar que una variable es igual a un valor. | - expresión: Define la variable a probar. - valor: Define el valor con el que comparar. Por ejemplo: - type: assert-equals expression: payload_response_header_Content-Type value: application/json |
| mayor asertividad | Afirmar que la variable es mayor que el valor. | - expresión: Define la variable a probar. - valor: Define el valor con el que comparar. Por ejemplo: - tipo: assert-greater expresión: payload_temperature valor: application/json |
| sin aserciones | Afirmar que la variable es menor que el valor. | - expresión: Define la variable a probar. - valor: Define el valor con el que comparar. Por ejemplo: - type: assert-less expression: payload_temperature value: application/json |
| afirmar-en | Afirmar que el elemento identificado por una expresión dada coincide al menos con un elemento de una lista dada. | - expresión: Define la variable a probar. - valor: Define una matriz de valores con los que comparar. Por ejemplo: - type: assert-in expression: payload_response_status value: application/json |
| assert-matches | Afirmar que el valor del elemento identificado por una expresión dada coincide con un formato especificado. | - expresión: Define la variable a probar. - valor: Define el valor regex con el que comparar. Por ejemplo: - type: assert-matches expression: payload_response_header_Content-Type value: [1] +/json |
| assert-compares | Afirmar que dos elementos son equivalentes de alguna manera. | - expression1: Define la ruta al primer elemento de comparación. - expression2: Define la ruta al segundo elemento de comparación. Por ejemplo: - type: assert-compares expression1: branches.[0].type expression2: branches.[7].type |
| assert-contiene | Afirmar que el valor del elemento identificado por una expresión dada contiene una subcadena específica. | - expresión: Define la variable a probar. - valor: Define la subcadena con la que comparar. Por ejemplo: - type: assert-contains expression: payload_response_header_Content-Type value: app |
| cada | Recorre la matriz referenciada en la expresión realizando los subpasos para cada elemento encontrado. | - expresión: Define la variable a probar. Por ejemplo: - tipo: cada expresión: " analytics.events " |
| if | Si se cumple la condición especificada (definida en la expresión), se ejecutarán las afirmaciones de los pasos de la condición if; de lo contrario, se omitirán. | - expresión: condición a probar - pasos: subpasos que ejecuta ATM si la condición tiene éxito Por ejemplo, - type: if expression: "{{payload_response_statusCode}} == 200" steps: - type: assert-is expression: "payload.tracking_reference" value: "string"stoponfail: false |
a-z ︎