Sintaxis de definición de pruebas
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 se mantienen constantes a lo largo de toda la prueba y que, por lo general, no cambian entre una ejecución y otra. | Aquí puedes definir cualquier atributo según tus necesidades. Por ejemplo: - portocol: especifica el protocolo (por ejemplo, https://) utilizado en todas las solicitudes, lo que garantiza una comunicación segura. - domain: especifica la dirección del servidor principal para las solicitudes de la 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 las solicitudes. |
| entradas | Define varios conjuntos de parámetros de entrada que se utilizan en múltiples escenarios de prueba. | Puedes crear varios conjuntos de datos con los atributos que necesites para escenarios de prueba específicos. Por ejemplo, «default» y «second» son dos conjuntos de datos, cada uno con sus propios atributos adaptados a distintos escenarios. Nota: Para ejecutar la prueba, debe haber al menos un conjunto de datos. |
| solicitud | Realice una solicitud http. | - method: Define el método HTTP que se va a utilizar. - url: Define la URL URL a la que se va a enviar la solicitud. - params: Define la correspondencia clave-valor de los parámetros que se van a enviar. - headers: Define la correspondencia clave-valor de los encabezados que se van a enviar. - var: Define el nombre de la variable en la que se va a almacenar la respuesta. - mode: Define qué tipo de datos se esperan y cómo analizarlos (formato admitido: json). Por ejemplo:
|
| verificar si | Especifica que el tipo de la variable de la respuesta es «valor». | - expresión: Define la variable que se va a comprobar. - valor: Define el tipo de respuesta que esperamos. Por ejemplo: |
| asegurar que existe | Verifica que exista una variable concreta especificada en la expresión. | - expresión: Define la variable que se va a comprobar. - stoponfail: Si falla alguna de las pruebas, el atributo stoponfail detiene la ejecución de las pruebas restantes. Para ello, hay que establecer stoponfail en «true». Por ejemplo:
|
| assert-equals | Comprobar que una variable es igual a un valor. | - expresión: Define la variable que se va a comprobar. - valor: Define el valor con el que se va a comparar. Por ejemplo: |
| verificar que es mayor | Verifica que la variable sea mayor que el valor. | - expresión: Define la variable que se va a comprobar. - valor: Define el valor con el que se va a comparar. Por ejemplo: |
| sin afirmaciones | Verifica que la variable sea menor que el valor. | - expresión: Define la variable que se va a comprobar. - valor: Define el valor con el que se va a comparar. Por ejemplo:- |
| asignación | Verificar que el elemento identificado por una expresión dada coincida con al menos un elemento de una lista dada. | - expresión: Define la variable que se va a evaluar. - valor: Define una matriz de valores que se van a comparar. against.For ejemplo:
|
| comparaciones de assert | Verifica que el valor del elemento identificado por una expresión determinada se ajusta a un formato específico. | - expresión: Define la variable que se va a comprobar. - valor: Define el valor de la expresión regular que se va a comparar. Ejemplo de « against.For »: |
| comparaciones de afirmación | Afirmar que dos elementos son equivalentes de alguna manera. | - expression1: Define la ruta del primer elemento que se va a comparar. - expression2: Define la ruta del segundo elemento que se va a comparar. Por ejemplo:
|
| contiene | Verificar que el valor del elemento identificado por una expresión dada contenga una subcadena específica. | - expresión: Define la variable que se va a comprobar. - valor: Define la subcadena con la que se va a comparar. Por ejemplo: |
| cada | Recorre la matriz a la que hace referencia la expresión y ejecuta los pasos parciales para cada elemento encontrado. | - expresión: Define la variable a la que se aplica el ejemp test.For : |
| si | 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 que se va a comprobar - pasos: subpasos que ejecuta ATM si se cumple la condición. Por ejemplo, value: "string"
expression:
"payload.tracking_reference" - type: assert-is steps: expression:
"{{payload_response_statusCode}} == 200"- type: if stoponfail: false |