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»

Tabella 1. Parametri, descrizione e sottoattributi
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:
- type: request
- method: get
- url: https://sample-api.us-east-a.apiconnect.automation.ibm.com/bank/branches
- var: branches
- mode: json
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:
- type: assert-is
expression: branches
value: array
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:
- type: assert-exists
expression: branches.[1]
stoponfail: true
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:
- type: assert-equals
expression: payload_response_header_Content-Type
value: application/json
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:
- type: assert-greater
expression: payload_temperature
value: application/json
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:
- type: assert-less
expression: payload_temperature
value: application/json
-
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 :
- type: assert-in
expression: payload_response_status
value: application/json
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 :
- type: assert-matches
expression: payload_response_header_Content-Type
value: [a-z]+/json
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:
- type: assert-compares
expression1: branches.[0].type
expression2: branches.[7].type
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:
- type: assert-contains
expression: payload_response_header_Content-Type
value: app
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:
- type: each
expression: "analytics.events"
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