Sintaxis de definición de prueba

Información sobre cómo se define la prueba como un archivo YAML.

La prueba se define como un archivo YAML con las secciones siguientes:
  • configs - Muestra los valores de configuración de las variables especificadas en el fichero.
  • steps -Muestra el flujo para el caso de prueba y ejecuta la lista de pasos en orden. Cada paso tiene un conjunto común de parámetros.
El atributo type del archivo YAML de definición de prueba describe el tipo de steps.
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
 

La siguiente tabla resume el conjunto de parámetros que admite el atributo type .

Tabla 1. Resumen de los parámetros soportados 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:
  • https://: se utiliza en todas las solicitudes para garantizar la seguridad de la comunicación
  • domain: Especifica la dirección del servidor principal para las solicitudes API
  • basepath: 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 petición
entradas Define varios conjuntos de parámetros de entrada que se utilizan en múltiples escenarios de prueba. Puede crear varios conjuntos de datos con cualquier atributo para escenarios de prueba específicos. Por ejemplo, default y second 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.

request Realice una solicitud http.
  • method - define el método HTTP a utilizar.
  • url - define la dirección URL a la que se hará la petición.
  • params : define la correlación de valores clave de los parámetros que se van a enviar.
  • headers : define la correlación de valores clave de las cabeceras que se van 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 analizarlos (supported: json).
Por ejemplo:
 - type: request
method: get
    url: https://sample-api.us-east-a.apiconnect.automation.ibm.com/bank/branches
    var: branches
    mode: json
assert-is Afirmar que el tipo de variable de la respuesta es value.
  • expression : define la variable que se va a probar.
  • value - define el type que se espera como respuesta.
Por ejemplo:
 - type: assert-is
    expression: branches
    value: array
assert-exists Certificar que existe una variable determinada especificada en expression .
  • expression : define la variable que se va a probar.
  • stoponfail - Si una de las pruebas falla, el atributo stoponfail detiene la ejecución de las pruebas restantes. Para ello, stoponfail debe establecerse en true.
Por ejemplo:
 - type: assert-exists 
    expression: branches.[1]
    stoponfail: true
assert-equals Afirmar que una variable es igual a value.
  • expression : define la variable que se va a probar.
  • value : define el value con el que comparar.
Por ejemplo:
 - type: assert-equals 
    expression: payload_response_header_Content-Type
    value: application/json
assert-greater Afirmar que la variable es mayor que value.
  • expression : define la variable que se va a probar.
  • value : define el value con el que comparar.
Por ejemplo:
 - type: assert-greater 
    expression: payload_temperature
    value: application/json
assert-less Afirma que la variable es menor que value.
  • expression : define la variable que se va a probar.
  • value : define el value con el que comparar.
Por ejemplo:
 - type: assert-less 
    expression: payload_temperature
    value: application/json
assert-in Afirmar que el elemento identificado por una expresión dada coincide al menos con un elemento de una lista dada.
  • expression : define la variable que se va a probar.
  • value : 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.
  • expression : define la variable que se va a probar.
  • value : define el valor de expresión regular con el que comparar.
Por ejemplo:
 - type: assert-matches 
    expression: payload_response_header_Content-Type
    value: ^[a-z]+/json
assert-compares Afirmar que los dos elementos son equivalentes de alguna manera.
  • expression1 : define la vía de acceso al primer elemento para la comparación.
  • expression2 : define la vía de acceso al segundo elemento para la comparación.
Por ejemplo:
 - type: assert-compares 
    expression1: branches.[0].type
    expression2: branches.[7].type  
assert-contains Afirmar que el valor del elemento identificado por una expresión dada contiene una subcadena específica.
  • expression : define la variable que se va a probar.
  • value : define la subserie con la que comparar.
Por ejemplo:
 - type: assert-contains 
    expression: payload_response_header_Content-Type
    value: app  
each Recorre el array referenciado en la expresión realizando los subpasos para cada elemento encontrado.

expression : define la variable que se va a probar.

Por ejemplo:
 - type: each
expression: "analytics.events"

Para obtener más información sobre la asignación de variables en un archivo de configuración YAML, consulte Asignación de variables en la configuración YAML.