Validar dados de resposta

Neste documento, descrevemos como configurar uma verificação de tempo de atividade para validar o O código de resposta HTTP e os dados de resposta enviados por um recurso verificado. De padrão, as verificações de tempo de atividade do HTTP verificam se o código de resposta é 2xx. Além disso, por padrão, os dados de resposta não são validados. No entanto, é possível modificar configurações. Por exemplo, é possível configurar uma verificação de tempo de atividade HTTP para aceitar Códigos de resposta 2xx e 3xx. Para todas as verificações de tempo de atividade, especifique um valor que os dados de resposta precisa conter ou não para que a verificação de tempo de atividade seja bem-sucedida.

Como validar os dados de resposta

É possível configurar o Cloud Monitoring para validar os dados de resposta um recurso verificado ao criar ou editar uma verificação de tempo de atividade.

Console do Google Cloud

Para criar uma verificação de tempo de atividade que valide a dados de resposta, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Verificações de tempo de atividade:

    Acesse Verificações de tempo de atividade

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Clique em Criar verificação de tempo de atividade.
  3. Digite um Título e clique em Próxima.
  4. Insira o Destino e clique em Próximo.
  5. Configure a Validação de resposta:

    • Para validar os dados de resposta, verifique se a Correspondência de conteúdo está ativada. e preencha os campos relacionados à validação da resposta. Para mais informações sobre essas opções, consulte a seção a seguir documento.
    • Para as verificações de tempo de atividade HTTP, configure os códigos de resposta aceitáveis. Por padrão, as verificações de tempo de atividade HTTP 2xx como uma resposta bem-sucedida.
  6. Clique em Próxima e conclua a configuração da verificação de tempo de atividade.

API Cloud Monitoring

Para configurar uma verificação de tempo de atividade para validar os dados de resposta, preencher a matriz contentMatchers do objeto UptimeCheckConfig.

Objetos ContentMatcher conter os seguintes campos:

  • matcher: descreve como a comparação é realizada. Para uma lista de valores, consulte ContentMatcherOption.

    Não use o valor CONTENT_MATCHER_OPTION_UNSPECIFIED.

  • content: armazena o valor a ser pesquisado nos dados de resposta. O value é um literal de string ou uma expressão regular.

  • jsonPathMatcher: armazena um objeto JsonPathMatcher que descreve qual caminho JSON a ser pesquisado e como realizar a comparação.

    Omita este campo, a menos que a verificação de tempo de atividade esteja validando um JSONpath específico.

O restante deste documento descreve como usar a correspondência de conteúdo .

Opções para validar os dados de resposta

Esta seção descreve as estratégias de correspondência de strings que você pode use para validar a resposta enviada por um recurso verificado. Para cada estratégia, você especifica um valor e se ele é encontrado nos dados de resposta resulta na aprovação ou falha da verificação de tempo de atividade.

A resposta inteira de um recurso marcado pode não ser pesquisada:

  • Verificações de tempo de atividade de HTTP e HTTPS: a primeira 4 MB é pesquisado.
  • Verificações de tempo de atividade TCP: o primeiro 1 MB é pesquisado.

Pesquisar uma substring literal

Console do Google Cloud

Configure a verificação de tempo de atividade para que seja aprovada quando os dados de resposta contiverem uma uma substring literal, use as seguintes configurações:

  1. Selecione Contém no menu Tipo de correspondência do conteúdo da resposta.
  2. Insira a substring literal no campo Conteúdo da resposta.
  3. Para verificar a configuração, clique em Testar.

Configurar a verificação de tempo de atividade para que falhe quando os dados de resposta contiverem uma substring literal, use as seguintes configurações:

  1. Selecione Não contém no menu Tipo de correspondência do conteúdo da resposta.
  2. Insira a substring literal no campo Conteúdo da resposta.
  3. Para verificar a configuração, clique em Testar.

API Cloud Monitoring

Configure a verificação de tempo de atividade para que seja aprovada quando os dados de resposta contiverem uma uma substring literal, use os seguintes valores:

...
"contentMatchers": [
    {
      "content": "Set to the string to be matched.",
      "matcher": "CONTAINS_STRING"
    }
],
...

Configurar a verificação de tempo de atividade para que falhe quando os dados de resposta contiverem uma uma substring literal, use os seguintes valores:

...
"contentMatchers": [
    {
      "content": "Set to the string to be matched.",
      "matcher": "NOT_CONTAINS_STRING"
    }
],
...

A tabela a seguir exibe o status da verificação de tempo de atividade para diferentes dados de resposta, strings e tipos de teste:

Status da verificação de tempo de atividade       
Dados de resposta String de teste Contém Não contém
abcd abcd pass errada
abc abcd errada pass
abc a pass errada
Uptime Checks Uptime pass errada
Uptime Checks uptime errada pass

Na tabela anterior, a coluna Dados da resposta descreve os dados retornados pelo recurso marcado, enquanto a coluna Test string lista os literal de string. As próximas duas colunas especificam o tipo de teste e o da verificação de tempo de atividade.

Pesquisar usando uma expressão regular

Console do Google Cloud

Configurar a verificação de tempo de atividade para ser aprovada quando os dados de resposta corresponderem uma expressão regular, use as seguintes configurações:

  1. Selecione Corresponde ao regex no menu Tipo de correspondência do conteúdo da resposta.
  2. Digite uma expressão regular no campo Conteúdo da resposta.
  3. Para verificar a configuração, clique em Testar.

configurar a verificação de tempo de atividade para que falhe quando os dados de resposta corresponderem. uma expressão regular, use as seguintes configurações:

  1. Selecione Não corresponde ao regex no menu Tipo de correspondência do conteúdo da resposta.
  2. Digite uma expressão regular no campo Conteúdo da resposta.
  3. Para verificar a configuração, clique em Testar.

API Cloud Monitoring

Configurar a verificação de tempo de atividade para ser aprovada quando os dados de resposta corresponderem uma expressão regular, use os seguintes valores:

...
"contentMatchers": [
    {
      "content": "Set to the regular expression to be matched.",
      "matcher": "MATCHES_REGEX"
    }
],
...

configurar a verificação de tempo de atividade para que falhe quando os dados de resposta corresponderem. uma expressão regular, use os seguintes valores:

...
"contentMatchers": [
    {
      "content": "Set to the regular expression to be matched.",
      "matcher": "NOT_MATCHES_REGEX"
    }
],
...

A tabela a seguir exibe o status da verificação de tempo de atividade para diferentes dados de resposta, expressões regulares e tipos de teste:

Status da verificação de tempo de atividade       
Dados de resposta Regex Corresponde ao regex Não corresponde à RegEx
abcd abcd pass errada
Uptime Checks [uU]ptime pass errada
Uptime Checks [a-z]{6} errada pass
Uptime Checks [a-zA-Z]{6} pass errada

Na tabela anterior, a coluna Dados da resposta descreve os dados retornado pelo recurso marcado, enquanto a coluna Regex lista as expressão regular. As próximas duas colunas especificam o tipo de teste e o da verificação de tempo de atividade.

Pesquisar um campo específico em uma resposta JSON

É possível configurar uma verificação de tempo de atividade para validar um JSONpath. Quando você seleciona um teste JSONpath, o teste compara um valor de caminho a um número, um literal de string, ou a uma expressão regular:

Ao especificar um JSONpath, especifique o objeto raiz com $. e em seguida, com um identificador de campo específico. Quando a resposta JSON contém uma matriz de elementos, use colchetes, [], para identificar os um elemento específico da matriz a ser correspondido. Os exemplos a seguir ilustram Sintaxe do caminho:

  • $.type corresponde ao campo type de um objeto raiz.
  • $.[0].address.city corresponde ao campo city no objeto address armazenado no primeiro elemento da matriz da resposta JSON.
  • $.content[0].phone corresponde ao campo phone do primeiro elemento da matriz. do campo content. O campo content é um filho do objeto raiz.

É possível configurar um teste de tempo de atividade para corresponder a vários campos. Considere o seguinte JSON:

[
  {
    ...
    "address": {
      ...
      "city": "Gwenborough",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
  },
  ...
]

Para corresponder todo o caminho do campo geo no primeiro elemento da matriz, defina o JSONpath como $.[0].address.geo e insira o valor completo No campo de conteúdo:

{
  "lat": "-37.3159",
  "lng": "81.1496"
}

Se você tiver interesse em testar essas opções, encontre um site site que retorna uma resposta JSON. Por exemplo: consulte Teste JSON.

Comparar JSONpath com um número ou literal de string

Console do Google Cloud

Para configurar a verificação de tempo de atividade para ser aprovada quando um JSONpath específico na dados de resposta corresponderem a um literal de string, use as seguintes configurações:

  1. Selecione Correspondências em JSONPath no menu Tipo de correspondência do conteúdo da resposta.
  2. Digite o caminho no campo JSONPath.
  3. Insira o número ou o literal de string no campo Conteúdo da resposta.
  4. Para verificar a configuração, clique em Testar.

Para configurar a verificação de tempo de atividade para que falhe quando um JSONpath específico na dados de resposta corresponderem a um literal de string, use as seguintes configurações:

  1. Selecione Não corresponde no JSONPath no menu Tipo de correspondência do conteúdo da resposta.
  2. Digite o caminho no campo JSONPath.
  3. Insira o número ou o literal de string no campo Conteúdo da resposta.
  4. Para verificar a configuração, clique em Testar.

API Cloud Monitoring

Configure a verificação de tempo de atividade para ser aprovada quando um campo específico da A resposta formatada em JSON corresponde a um número ou a um literal de string use os seguintes valores para o objeto ContentMatcher:

...
"contentMatchers": [
    {
       "content" : "Set to a number, a boolean, or the string to be matched.",
       "matcher" : "MATCHES_JSON_PATH",
       "jsonPathMatcher" : {
           "jsonPath" : "Set to the JSONpath.",
           "jsonMatcher" : "EXACT_MATCH"
    }
],
...

configurar a verificação de tempo de atividade para que falhe quando um campo específico da A resposta formatada em JSON corresponde a um número ou a um literal de string use os seguintes valores para o objeto ContentMatcher:

...
"contentMatchers": [
    {
       "content" : "Set to a number, a boolean, or the string to be matched.",
       "matcher" : "NOT_MATCHES_JSON_PATH",
       "jsonPathMatcher" : {
           "jsonPath" : "Set to the JSONpath.",
           "jsonMatcher" : "EXACT_MATCH"
    }
],
...

Para ilustrar como funcionam os testes de correspondência de string JSONpath, considere os seguintes dados de resposta JSON:

{
    "name": "Sample Uptime Check",
    "type": "JSONpath",
    "content": [
        {
            "id": 1,
            "phone": "1234567890",
            "alias": "Exact",
            "enabled": true,
        },
        {
            "id": 2,
            "phone": "1234512345",
            "alias": "Regex",
            "enabled": false,
        }
    ]
}

A tabela a seguir exibe o status da verificação de tempo de atividade da resposta anterior. mas para caminhos, valores e tipos de teste diferentes:

Status da verificação de tempo de atividade       
JSONpath Valor de teste Correspondências de caminho JSON O caminho JSON não corresponde
$.type "JSONpath" pass errada
$.name "Sample" errada pass
$.name "Sample Uptime Check" pass errada
$.content[0].id 1 pass errada
$.content[0].alias "Exact" pass errada
$.content[0].enabled true pass errada

Na tabela anterior, a coluna JSONpath identifica o elemento a teste e a coluna Valor de teste lista o valor. As próximas duas colunas especificar o tipo de teste e o resultado da verificação de tempo de atividade.

Comparar o JSONpath a uma expressão regular

A expressão regular permite a correspondência de uma string, um número, um booleano e valores JSON nulos.

Console do Google Cloud

Para configurar a verificação de tempo de atividade para ser aprovada quando um JSONpath específico na os dados de resposta corresponderem a uma expressão regular, use as seguintes configurações:

  1. Selecione Correspondências em JSONPath no menu Tipo de correspondência do conteúdo da resposta.
  2. Digite o caminho no campo JSONPath.
  3. Digite a expressão regular no campo Conteúdo da resposta.
  4. Para verificar a configuração, clique em Testar.

Para configurar a verificação de tempo de atividade para que falhe quando um JSONpath específico na os dados de resposta corresponderem a uma expressão regular, use as seguintes configurações:

  1. Selecione Não corresponde no JSONPath no menu Tipo de correspondência do conteúdo da resposta.
  2. Digite o caminho no campo JSONPath.
  3. Digite a expressão regular no campo Conteúdo da resposta.
  4. Para verificar a configuração, clique em Testar.

API Cloud Monitoring

Configure a verificação de tempo de atividade para ser aprovada quando um campo específico da A resposta formatada em JSON corresponde a uma expressão regular, use o seguinte valores para o objeto ContentMatcher:

...
"contentMatchers": [
    {
       "content" : "Set to the regular expression to be matched."
       "matcher" : "MATCHES_JSON_PATH",
       "jsonPathMatcher" : {
           "jsonPath" : "Set to the JSONpath.",
           "jsonMatcher" : "REGEX_MATCH"
    }
],
...

configurar a verificação de tempo de atividade para que falhe quando um campo específico da A resposta formatada em JSON corresponde a uma expressão regular, use o seguinte valores para o objeto ContentMatcher:

...
"contentMatchers": [
    {
       "content" : "Set to the regular expression to be matched.",
       "matcher" : "NOT_MATCHES_JSON_PATH",
       "jsonPathMatcher" : {
           "jsonPath" : "Set to the JSONpath.",
           "jsonMatcher" : "REGEX_MATCH"
    }
],
...

Para ilustrar como funcionam os testes de expressão regular JSONpath, considere os seguintes dados de resposta JSON:

{
    "name": "Sample Uptime Check",
    "type": "JSONpath",
    "content": [
        {
            "id": 1,
            "phone": "1234567890",
            "alias": "Exact",
            "enabled": true,
        },
        {
            "id": 2,
            "phone": "1234512345",
            "alias": "Regex",
            "enabled": false,
        }
    ]
}

A tabela a seguir exibe o status da verificação de tempo de atividade da resposta anterior. mas para caminhos, expressões regulares e tipos de teste diferentes:

Status da verificação de tempo de atividade       
JSONpath Regex JSONpath corresponde ao regex O caminho JSON não corresponde ao regex
$.type [A-Z]{4}Path pass errada
$.name Sample errada pass
$.name .*Sample.* pass errada
$.content[1].id 2 pass errada
$.content[1].phone "[12345]{2}" pass errada
$.content[1].enabled f.* pass errada

Na tabela anterior, a coluna JSONpath identifica o elemento a teste e a coluna Regex listará a expressão regular. As próximas duas colunas especificar o tipo de teste e o resultado da verificação de tempo de atividade.

A seguir