Sintaxe de definição de teste

O teste é definido como um arquivo YAML com as seguintes seções:

 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

Tabela 1. Resumo dos parâmetros suportados pelo atributo type

Tabela 1. Parâmetros, descrição e subatributos
Parâmetros Descrição Subatributos
globalVariables Variáveis globais são configurações que permanecem consistentes ao longo de todo o teste e, normalmente, não mudam entre execuções. Você pode definir aqui quaisquer atributos de acordo com suas necessidades. Por exemplo: - portocol: Especifica o protocolo (por exemplo, https://) usado em todas as solicitações, garantindo uma comunicação segura. - domain: Especifica o endereço do servidor principal para solicitações de API. - basepath: Define o caminho base para todos os pontos de extremidade da API (por exemplo, /bank), que é anexado ao domínio para a construção de URLs de solicitação.
entradas Define vários conjuntos de parâmetros de entrada utilizados em diversos cenários de teste. Você pode criar vários conjuntos de dados com os atributos necessários para cenários de teste específicos. Por exemplo, “default” e “second” são dois conjuntos de dados, cada um com seus próprios atributos adaptados a diferentes cenários. Observação: É necessário que haja pelo menos um conjunto de dados para executar o teste.
solicitação Faça uma solicitação http. - method: Define o método HTTP a ser utilizado. - url: Define a URL URL para a qual a solicitação será enviada. - params: Define o mapeamento chave-valor dos parâmetros a serem enviados. - headers: Define o mapeamento chave-valor dos cabeçalhos a serem enviados. - var: Define o nome da variável na qual a resposta será armazenada. - mode: Define o tipo de dados esperado e como analisá-los (compatível com: json). Por exemplo:
- type: request
- method: get
- url: https://sample-api.us-east-a.apiconnect.automation.ibm.com/bank/branches
- var: branches
- mode: json
verificar se Afirme que o tipo da variável da resposta é valor. - expressão: Define a variável a ser testada. - valor: Define o tipo de resposta esperado. Por exemplo:
- type: assert-is
expression: branches
value: array
assert-exists Verificar se uma determinada variável especificada na expressão existe. - expressão: Define a variável a ser testada. - stoponfail: Se um dos testes falhar, o atributo stoponfail interrompe a execução dos testes restantes. Para isso, o parâmetro `stoponfail` deve ser definido como `true`. Por exemplo:
- type: assert-exists
expression: branches.[1]
stoponfail: true
assert-equals Verificar se uma variável é igual a um valor. - expressão: Define a variável a ser testada. - valor: Define o valor com o qual será feita a comparação. Por exemplo:
- type: assert-equals
expression: payload_response_header_Content-Type
value: application/json
assert-greater Verifique se a variável é maior que o valor. - expressão: Define a variável a ser testada. - valor: Define o valor com o qual será feita a comparação. Por exemplo:
- type: assert-greater
expression: payload_temperature
value: application/json
sem assert Verifique se a variável é menor que o valor. - expressão: Define a variável a ser testada. - valor: Define o valor com o qual será feita a comparação. Por exemplo:
- type: assert-less
expression: payload_temperature
value: application/json
-
assert-in Verificar se o elemento identificado por uma determinada expressão corresponde a pelo menos um item de uma determinada lista. - expressão: Define a variável a ser testada. - valor: Define uma matriz de valores a serem comparados. Exemplo d against.For :
- type: assert-in
expression: payload_response_status
value: application/json
assert-matches Verificar se o valor do elemento identificado por uma determinada expressão corresponde a um formato especificado. - expressão: Define a variável a ser testada. - valor: Define o valor da expressão regular a ser comparado. Exemplo d against.For :
- type: assert-matches
expression: payload_response_header_Content-Type
value: [a-z]+/json
assert-compares Afirmar que dois elementos são equivalentes de alguma forma. - expression1: Define o caminho para o primeiro elemento a ser comparado. - expression2: Define o caminho para o segundo elemento a ser comparado. Por exemplo:
- type: assert-compares
expression1: branches.[0].type
expression2: branches.[7].type
assert-contains Verificar se o valor do elemento identificado por uma determinada expressão contém uma subcadeia específica. - expressão: Define a variável a ser testada. - valor: Define a subcadeia a ser comparada. Por exemplo:
- type: assert-contains
expression: payload_response_header_Content-Type
value: app
unidade Percorra a matriz referenciada na expressão, executando as subetapas para cada item encontrado. - expressão: Define a variável como um exemplo d test.For :
- type: each
expression: "analytics.events"
se Se a condição especificada (definida na expressão) for satisfeita, as asserções nas etapas da condição "if" serão executadas; caso contrário, elas serão ignoradas. - expressão: condição a ser testada - etapas: subetapas que o ATM executa se a condição for satisfeita. Por exemplo, value: "string" expression: "payload.tracking_reference" - type: assert-is steps: expression: "{{payload_response_statusCode}} == 200"- type: if stoponfail: false