Sintassi della definizione di test

Informazioni relative al modo in cui il test è definito come file YAML.

Il test è definito come un file YAML con le seguenti sezioni:
  • configs - Visualizza i valori di configurazione delle variabili specificate nel file.
  • steps - Visualizza il flusso per lo scenario di test ed esegue l'elenco di fasi in ordine. Ogni fase ha una serie comune di parametri.
L'attributo type nel file YAML di definizione del test descrive il tipo di 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 tabella seguente riassume l'insieme dei parametri supportati dall'attributo type .

Tabella 1. Riepilogo dei parametri supportati da type attributo
Parametri Descrizione Sottoattributi
globalVariables Le variabili globali sono impostazioni che rimangono coerenti per l'intero test e in genere non cambiano tra un'esecuzione e l'altra. È possibile definire qualsiasi attributo in base alle proprie esigenze. Ad esempio:
  • https:// - Utilizzato in tutte le richieste, per garantire una comunicazione sicura
  • domain: Specifica l'indirizzo del server primario per le richieste API
  • basepath: definisce il percorso di base per tutti gli endpoint API. Ad esempio, '/bank), che viene aggiunto al dominio per costruire gli URL di richiesta
input Definisce vari set di parametri di input che vengono utilizzati in più scenari di test. È possibile creare più set di dati con qualsiasi attributo per scenari di test specifici. Ad esempio, default e second sono due insiemi di dati, ciascuno con i propri attributi adatti a scenari diversi.
Nota: per eseguire il test deve essere presente almeno un set di dati.

request Effettua una richiesta http.
  • method - definisce il metodo HTTP da utilizzare.
  • url - definisce il sito URL a cui fare la richiesta.
  • params - definisce l'associazione del valore chiave dei parametri da inviare.
  • headers - definisce l'associazione del valore chiave delle intestazioni da inviare.
  • var - definisce il nome della variabile in cui memorizzare la risposta.
  • mode - definisce quale tipo di dati aspettarsi e come analizzarli (supported: json).
Ad esempio:
 - type: request
method: get
    url: https://sample-api.us-east-a.apiconnect.automation.ibm.com/bank/branches
    var: branches
    mode: json
assert-is Asserire che il tipo di variabile dalla risposta è value.
  • expression - definisce la variabile da verificare.
  • value - definisce l'indirizzo type che ci si aspetta in risposta.
Ad esempio:
 - type: assert-is
    expression: branches
    value: array
assert-exists Asserire che esiste una particolare variabile specificata in expression .
  • expression - definisce la variabile da verificare.
  • stoponfail - Se uno dei test fallisce, l'attributo stoponfail interrompe l'esecuzione dei test rimanenti. Per questo, stoponfail deve essere impostato su true.
Ad esempio:
 - type: assert-exists 
    expression: branches.[1]
    stoponfail: true
assert-equals Affermare che una variabile è uguale a value.
  • expression - definisce la variabile da verificare.
  • value - definisce il value con cui confrontare.
Ad esempio:
 - type: assert-equals 
    expression: payload_response_header_Content-Type
    value: application/json
assert-greater Asserire che la variabile è maggiore di value.
  • expression - definisce la variabile da verificare.
  • value - definisce il value con cui confrontare.
Ad esempio:
 - type: assert-greater 
    expression: payload_temperature
    value: application/json
assert-less Asserire che la variabile è minore di value.
  • expression - definisce la variabile da verificare.
  • value - definisce il value con cui confrontare.
Ad esempio:
 - type: assert-less 
    expression: payload_temperature
    value: application/json
assert-in Asserire che l'elemento identificato da una data espressione corrisponde ad almeno un elemento di un dato elenco.
  • expression - definisce la variabile da verificare.
  • value - definisce un array di valori con cui confrontare.
Ad esempio:
 - type: assert-in 
    expression: payload_response_status
    value: application/json
assert-matches Asserisce che il valore dell'elemento identificato da una determinata espressione corrisponde a un formato specificato.
  • expression - definisce la variabile da verificare.
  • value - definisce il valore regex con cui confrontare.
Ad esempio:
 - type: assert-matches 
    expression: payload_response_header_Content-Type
    value: ^[a-z]+/json
assert-compares Asserire che i due elementi sono in qualche modo equivalenti.
  • expression1 - definisce il percorso del primo elemento per il confronto.
  • expression2 - definisce il percorso del secondo elemento per il confronto.
Ad esempio:
 - type: assert-compares 
    expression1: branches.[0].type
    expression2: branches.[7].type  
assert-contains Asserire che il valore dell'elemento identificato da una determinata espressione contiene una specifica sottostringa.
  • expression - definisce la variabile da verificare.
  • value - definisce la sottostringa con cui confrontare.
Ad esempio:
 - type: assert-contains 
    expression: payload_response_header_Content-Type
    value: app  
each Esegue un loop sull'array a cui fa riferimento l'espressione, eseguendo i passaggi successivi per ogni elemento trovato.

expression - definisce la variabile da verificare.

Ad esempio:
 - type: each
expression: "analytics.events"

Per ulteriori informazioni sull'assegnazione di variabili in un file di configurazione YAML, vedere Assegnazione di variabili nella configurazione YAML.