Sintassi della definizione del test
Il test è definito come un file YAML contenente le seguenti sezioni:
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
Tabella 1. Riepilogo dei parametri supportati dall'attributo «type»
| Parametri | Descrizione | Sottoattributi |
|---|---|---|
| globalVariables | Le variabili globali sono impostazioni che rimangono invariate per tutta la durata del test e che, in genere, non cambiano da un'esecuzione all'altra. | Qui puoi definire qualsiasi attributo in base alle tue esigenze. Ad esempio: - portocol: specifica il protocollo (ad esempio, https://) utilizzato in tutte le richieste, garantendo una comunicazione sicura. - domain: specifica l'indirizzo del server principale per le richieste API. - basepath: definisce il percorso di base per tutti gli endpoint API (ad esempio, /bank), che viene aggiunto al dominio per la creazione degli URL delle richieste. |
| input | Definisce diverse serie di parametri di input utilizzati in diversi scenari di test. | È possibile creare più set di dati con tutti gli attributi necessari per specifici scenari di test. Ad esempio, «default» e «second» sono due insiemi di dati, ciascuno con i propri attributi specificamente pensati per scenari diversi. Nota: per eseguire il test è necessario che sia presente almeno un set di dati. |
| richiesta | Effettua una richiesta http. | - method: definisce il metodo HTTP da utilizzare. - url: definisce l'URL URL a cui inviare la richiesta. - params: definisce la mappatura chiave-valore dei parametri da inviare. - headers: definisce la mappatura chiave-valore delle intestazioni da inviare. - var: definisce il nome della variabile in cui memorizzare la risposta. - mode: definisce il tipo di dati attesi e come analizzarli (supportato: json). Ad esempio:
|
| verifica se è | Assicurarsi che il tipo della variabile nella risposta sia «value». | - espressione: definisce la variabile da verificare. - valore: definisce il tipo di risposta che ci aspettiamo. Ad esempio: |
| assert-exists | Verifica che esista una determinata variabile specificata nell'espressione. | - expression: definisce la variabile da testare. - stoponfail: se uno dei test fallisce, l'attributo stoponfail interrompe l'esecuzione dei test rimanenti. A tal fine, è necessario impostare stoponfail su true. Ad esempio:
|
| assert-equals | Verifica che una variabile sia uguale a un valore. | - espressione: definisce la variabile da verificare. - valore: definisce il valore con cui effettuare il confronto. Ad esempio: |
| assert-greater | Verifica che la variabile sia maggiore del valore. | - espressione: definisce la variabile da verificare. - valore: definisce il valore con cui effettuare il confronto. Ad esempio: |
| senza asserzioni | Verifica che la variabile sia inferiore al valore. | - espressione: definisce la variabile da verificare. - valore: definisce il valore con cui effettuare il confronto. Ad esempio:- |
| assert-in | Verifica che l'elemento identificato da una data espressione corrisponda ad almeno un elemento di una data lista. | - espressione: definisce la variabile da verificare. - valore: definisce un array di valori da confrontare. Esempio d against.For :
|
| corrispondenze | Verifica che il valore dell'elemento identificato da una determinata espressione corrisponda a un formato specificato. | - espressione: definisce la variabile da verificare. - valore: definisce il valore dell'espressione regolare da confrontare. Esempio d against.For : |
| confronto con assert | Affermare che due elementi sono equivalenti in qualche modo. | - expression1: Definisce il percorso del primo elemento da confrontare. - expression2: Definisce il percorso del secondo elemento da confrontare. Ad esempio:
|
| contiene | Verifica che il valore dell'elemento identificato da una data espressione contenga una determinata sottostringa. | - espressione: definisce la variabile da verificare. - valore: definisce la sottostringa con cui effettuare il confronto. Ad esempio: |
| ciascuno | Esegui un ciclo sull'array a cui fa riferimento l'espressione, eseguendo i passaggi secondari per ogni elemento trovato. | - espressione: definisce la variabile da test.For esempio: |
| se | Se la condizione specificata (definita nell'espressione) è soddisfatta, le asserzioni contenute nei passaggi della condizione if verranno eseguite; in caso contrario, verranno saltate. | - espressione: condizione da verificare - passaggi: sottopassaggi che ATM esegue se la condizione è soddisfatta. Ad esempio, value: "string"
expression:
"payload.tracking_reference" - type: assert-is steps: expression:
"{{payload_response_statusCode}} == 200"- type: if stoponfail: false |