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

  1. a-z