REST API de geração de teste do Cloud Runner

  • Versão de lançamento: Washingtondc
  • Atualizado 6 de fev. de 2024
  • 10 min. de leitura
  • Gerencia a geração de trabalhos de teste a serem executados em um executor na nuvem para o Automated Test Framework (ATF).

    A API de geração de teste do Cloud Runner requer o plug-in ATF Test Generator and Cloud Runner (sn_atf_tg). Os métodos disponíveis com esta API são executados no namespace now e podem ser chamados usando o Nome da API, Teste de regressão de um clique para ATF, no Explorador de REST API. A função de administrador é necessária para acessar esta API.

    Você pode usar esta API para as seguintes tarefas:
    • Inicie o trabalho de geração de teste.
    • Verifique o andamento do trabalho de geração de teste.
    • Cancele o trabalho de geração de teste.

    A API de geração de teste do Cloud Runner pode ser usada em conjunto com REST API do executor de teste do Cloud Runner e REST API do usuário de teste do executor na nuvem. Por exemplo, você pode chamar a API de geração de teste para executar um teste e, em seguida, obter o andamento do teste na fila de orquestração do navegador (API de geração de teste do Cloud Runner) e verificar o número de testes aprovados ou reprovados.

    Para exibir a documentação de referência da API do servidor desta API, consulte TestGenerationApi do Cloud Runner – com escopo, global.

    Geração de teste - GET /now/sn_atf_tg/test_activity_progress

    Fornece o status de cada teste gerado para um registro de Fila de Orquestração do Navegador (BOQ) fornecido.

    Formato de URL

    URL padrão: GET /api/now/sn_atf_tg/test_operation_progress

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    Nenhum
    Tabela 2. Parâmetros de consulta
    Nome Descrição
    snboqId Obrigatório. O sys_id do registro de BOQ do trabalho de geração de teste para obter o andamento. Localizado na tabela BOQ [sn_atf_tg_sn_boq].

    Tipo de dados: cadeia de caracteres

    Tabela 3. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    Nenhum

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis.

    Tabela 4. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Tabela 5. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum

    Códigos de status

    Os códigos de status a seguir se aplicam a esta ação HTTP. Para obter uma lista de códigos de status possíveis usados na REST API, consulte Códigos de resposta HTTP da REST API.

    Tabela 6. Códigos de status
    Código de status Descrição
    200 Andamento do trabalho de BOQ recuperado com sucesso.
    400 Erro ao obter o status do registro de BOQ. Retorna uma das seguintes mensagens:
    • Nenhum ID de BOQ passado – nenhum ID de BOQ foi fornecido. Adicione o ID de BOQ ao corpo da solicitação.
    • Não é possível encontrar o registro de BOQ – SYS ID inválido. Verifique se o sys_id do registro de BOQ é válido e se o registro existe.
    403 Erro ao conceder acesso do usuário ao endpoint. Certifique-se de que o usuário tenha a função de administrador.

    Parâmetros do corpo da resposta (JSON ou XML)

    Nome Descrição
    resultado Objeto que contém os resultados de andamento do trabalho de teste gerado ou uma mensagem explicando o motivo da falha da solicitação.

    Tipo de dados: objeto

    "result": { 
        "testsSucceeded": Number, 
        "testsFailed": Number, 
        "testsPending": Number, 
        "testsInProgress": Number, 
        "testsSkipped": Number 
      } 
    }

    Ou:

    {
      "result": { 
        "message": "String" 
      } 
    }
    resultado.mensagem Mensagem de erro detalhando por que o andamento da geração de teste não pode ser recuperado. O parâmetro da mensagem não é retornado em uma resposta bem-sucedida.

    Tipo de dados: cadeia de caracteres

    resultado.testesBem-sucedido Número de testes gerados que foram aprovados.

    Tipo de dados: número

    result.testsFailed Número de testes gerados que falharam.

    Tipo de dados: número

    resultado.testesPendentes Número de casos de uso que estão aguardando os testes gerados.

    Tipo de dados: número

    result.testsInProgress Número de casos de uso para os quais os testes são criados.

    Tipo de dados: número

    result.testsIgnorado Número de testes ignorados devido ao cancelamento do trabalho.

    Tipo de dados: número

    Solicitação de cURL

    A chamada GET a seguir retorna informações de andamento sobre os testes gerados associados ao snboqId 1234.

    curl "https://instance.service-now.com/api/now/sn_atf_tg/test_generation_progress?snboqId=1234" \ 
    --request GET \ 
    --header "Accept:application/json" \ 
    --user "username":"password"

    Saída:

    { 
      "result": { 
        "testsSucceeded": 0, 
        "testsFailed": 0, 
        "testsPending": 0, 
        "testsInProgress": 0, 
        "testsSkipped": 161 
      } 
    }

    O exemplo a seguir retorna uma mensagem de erro 400 quando nenhum ID de BOQ é passado.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation_progress" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"

    Resposta:

    {
      "result": {
        "message": "No SNBOQ ID passed in, add snboqId to request body"
      }
    }

    O exemplo a seguir retorna uma mensagem de erro 400 quando um ID de BOQ inválido é aprovado.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation_progress?snboqId=invalid_sys_id" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"

    Resposta:

    {
      "result": {
        "message": "Invalid SNBOQ sys_id passed in"
      }
    }

    Geração de teste - POST /now/sn_atf_tg/cancel_test_activity

    Define o trabalho de geração de teste e seu registro de conjunto de atualizações associado para o status concluído. Cancela os rastreadores raiz de todos os testes gerados que estão em execução. Se algum trabalho de teste estiver em andamento no cancelamento, este método definirá qualquer um dos registros de teste em andamento gerados como ignorados.

    Os testes podem falhar ou ser cancelados automaticamente devido a regras de negócio ou problemas de regra de controle de acesso (ACL). Exiba a tabela de teste gerada para obter mais detalhes sobre testes com falha ou cancelados.

    Formato de URL

    URL padrão: POST /api/now/sn_atf_tg/cancel_test_activity

    Parâmetros de solicitação compatíveis

    Tabela 7. Parâmetros de caminho
    Nome Descrição
    Nenhum
    Tabela 8. Parâmetros de consulta
    Nome Descrição
    Nenhum
    Tabela 9. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    snboqId Obrigatório. sys_id do registro de fila de orquestração do navegador (BOQ) a ser cancelado. Localizado na tabela BOQ [sn_atf_tg_sn_boq].

    Tipo de dados: cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis.

    Tabela 10. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Tipo de conteúdo Formato de dados do corpo da solicitação. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Tabela 11. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum

    Códigos de status

    Os códigos de status a seguir se aplicam a esta ação HTTP. Para obter uma lista de códigos de status possíveis usados na REST API, consulte Códigos de resposta HTTP da REST API.

    Tabela 12. Códigos de status
    Código de status Descrição
    200 Trabalho de BOQ cancelado com sucesso.
    400 Erro ao cancelar o trabalho. Retorna uma das seguintes mensagens:
    • Nenhum ID de BOQ passado – nenhum ID de BOQ foi fornecido. Adicione o ID de BOQ ao corpo da solicitação.
    • Não é possível encontrar o registro de BOQ – SYS ID inválido. Verifique se o sys_id do registro de BOQ é válido e se o registro existe.
    403 Erro ao conceder acesso do usuário ao endpoint. Certifique-se de que o usuário tenha a função de administrador.

    Parâmetros do corpo da resposta (JSON ou XML)

    Nome Descrição
    resultado Objeto que contém os resultados da solicitação de cancelamento.

    Tipo de dados: objeto

    "result": { 
        "message": String
    }
    resultado.mensagem Mensagem detalhando se o cancelamento do teste foi bem-sucedido.

    Tipo de dados: cadeia de caracteres

    Solicitação de cURL

    A solicitação a seguir cancela o trabalho de geração de teste de um registro de BOQ especificado.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/cancel_test_generation" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{\"snboqId\":\"<sys_id of BOQ record>\"}" \ 
    --user "username":"password"

    O corpo da resposta retorna uma mensagem de sucesso do cancelamento.

    { 
      "result": { 
        "message": "success" 
      } 
    }

    O exemplo a seguir retorna uma mensagem de erro 400 quando nenhum ID de BOQ é passado.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/cancel_test_generation" \
    --request POST \
    --header "Accept:application/json" \
    --user "username":"password"

    Resposta:

    {
      "result": {
        "message": "No SNBOQ ID passed in, add snboqId to request body"
      }
    }

    O exemplo a seguir retorna uma mensagem de erro 400 quando um ID de BOQ inválido é aprovado.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/cancel_test_generation" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{\"snboqId\":\"invalid_sys_id\"}" \
    --user "username":"password"

    Resposta:

    {
      "result": {
        "message": "No SNBOQ ID passed in, add snboqId to request body"
      }
    }

    Geração de teste - POST /now/sn_atf_tg/test_activity

    Insere um registro na tabela Fila de orquestração do navegador (BOQ) [sn_atf_tg_sn_boq] para iniciar um trabalho de teste.

    Formato de URL

    URL padrão: POST /api/now/sn_atf_tg/test_activity

    Parâmetros de solicitação compatíveis

    Tabela 13. Parâmetros de caminho
    Nome Descrição
    Nenhum
    Tabela 14. Parâmetros de consulta
    Nome Descrição
    Nenhum
    Tabela 15. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    tableEncodedQuery A consulta codificada que especifica as tabelas nas quais os testes serão gerados. Uma entrada de cadeia de caracteres vazia é padrão para todas as tabelas. Para obter mais informações sobre como formar consultas codificadas, consulte Encoded query strings.

    Tipo de dados: cadeia de caracteres

    userEncodedQuery A consulta codificada que especifica os usuários para gerar testes. Uma entrada de cadeia de caracteres vazia é padrão para todas as tabelas. Para obter mais informações sobre como formar consultas codificadas, consulte Encoded query strings.

    Tipo de dados: cadeia de caracteres

    catalogEncodedQuery A consulta codificada que especifica os itens do catálogo para gerar testes. Uma entrada de cadeia de caracteres vazia é padronizada para todos os itens do catálogo. Para obter mais informações sobre como formar consultas codificadas, consulte Encoded query strings.

    Tipo de dados: cadeia de caracteres

    maxTestCount Número de testes gerais a serem gerados.

    Valores aceitos: qualquer número entre 1 e 9999.

    Tipo de dados: número

    Padrão: 9999

    maxTestCountPerTable Número de testes a serem gerados por tabela.

    Valores aceitos: qualquer número entre 1 e 10.

    Tipo de dados: número

    Padrão: 10

    maxTestCountPerItem Número de testes a serem gerados por item do catálogo.

    Valores aceitos: qualquer número entre 1 e 10.

    Tipo de dados: número

    Padrão: 10

    e-mail Endereço de e-mail para alertar quando a geração de teste estiver concluída.

    Tipo de dados: cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis.

    Tabela 16. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Tipo de conteúdo Formato de dados do corpo da solicitação. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Tabela 17. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum

    Códigos de status

    Os códigos de status a seguir se aplicam a esta ação HTTP. Para obter uma lista de códigos de status possíveis usados na REST API, consulte Códigos de resposta HTTP da REST API.

    Tabela 18. Códigos de status
    Código de status Descrição
    200 Um trabalho de BOQ de geração de teste foi inserido com sucesso. Todos os erros são mostrados nos logs de registro de BOQ durante o processamento. Todas as entradas são opcionais e padrão para gerar o número máximo de testes para todas as tabelas e itens do catálogo de serviços.
    403 Erro ao conceder acesso do usuário ao endpoint. Certifique-se de que o usuário tenha a função de administrador.

    Parâmetros do corpo da resposta (JSON ou XML)

    Nome Descrição
    resultado Objeto que contém os resultados da solicitação.
    
      "result": { 
        "snboqId": String
      }

    Tipo de dados: objeto

    result.snboqId sys_id do registro de BOQ [sn_atf_tg_sn_boq] que é inserido quando a geração de teste é iniciada.

    Tipo de dados: cadeia de caracteres

    Solicitação de cURL

    O exemplo de solicitação a seguir inicia um novo trabalho de teste na instância sem parâmetros de solicitação e insere o trabalho na tabela BOQ.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --user "username":"password"

    Corpo da resposta:

    { 
      "result": { 
        "snboqId": <sys_id of newly inserted BOQ record> 
      } 
    }

    O exemplo de solicitação a seguir inicia um novo trabalho de teste com uma contagem máxima de teste de 2 e filtra os testes para a tabela Incidente e, em seguida, insere o trabalho na tabela BOQ.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{\"maxTestCount\":\"2\",\"tableEncodedQuery\":\"name=incident\"}" \ 
    --user "username":"password"

    Corpo da resposta:

    { 
      "result": { 
        "snboqId": <sys_id of newly inserted BOQ record> 
      } 
    }