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
| 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:
|
| 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: |
| 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:
|
| 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: |
| 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: |
| 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:- |
| 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 :
|
| 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 : |
| 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:
|
| 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: |
| 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 : |
| 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 |