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

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 10 min. de leitura
  • Gerencia a geração de trabalho de teste a ser executada em um executor na nuvem para 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 API REST 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 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 Cloud Runner TestGenerationApi – Com escopo, global.

    Geração de teste do Cloud Runner - GET /now/sn_atf_tg/test_generation_progress

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

    Formato da URL

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

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    Nenhum(a)
    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.

    Tipo de dados: cadeia de caracteres

    Tabela: BOQ [sn_atf_tg_sn_boq]

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

    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(a)

    Códigos de status

    Os seguintes códigos de status 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 de REST API.

    Tabela 6. Códigos de status
    Código do status Descrição
    200 Progresso do trabalho 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 do 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 por que a solicitação falhou.

    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 de mensagem não é retornado em uma resposta bem-sucedida.

    Tipo de dados: cadeia de caracteres

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

    Tipo de dados: número

    resultado.testesFalha 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

    resultado.testesEmProgresso Número de casos de uso para os quais os testes são criados.

    Tipo de dados: número

    resultado.testesIgnorado 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 é passado.

    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 do Cloud Runner - POST /now/sn_atf_tg/cancel_test_generation

    Define o trabalho de geração de teste e o registro do conjunto de atualizações associado com o status concluído. Cancela os rastreadores raiz de todos os testes gerados que estão em execução. Se houver trabalhos de teste 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 da URL

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

    Parâmetros de solicitação compatíveis

    Tabela 7. Parâmetros de caminho
    Nome Descrição
    Nenhum(a)
    Tabela 8. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 9. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    snboqId Obrigatório. Sys_id do registro da Fila de Orquestração do Navegador (BOQ) a ser cancelado.

    Tipo de dados: cadeia de caracteres

    Tabela: BOQ [sn_atf_tg_sn_boq]

    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(a)

    Códigos de status

    Os seguintes códigos de status 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 de REST API.

    Tabela 12. Códigos de status
    Código do 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 do 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 é passado.

    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 do Cloud Runner - POST /now/sn_atf_tg/test_generation

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

    Formato da URL

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

    Parâmetros de solicitação compatíveis

    Tabela 13. Parâmetros de caminho
    Nome Descrição
    Nenhum(a)
    Tabela 14. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 15. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    catalogEncodedQuery Consulta codificada que especifica em quais itens do catálogo os testes serão gerados. Uma 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

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

    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

    maxTestContPerItem 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

    maxTestContPerTable 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

    tableEncodedQuery Consulta codificada que especifica as tabelas nas quais os testes serão gerados. Uma cadeia de caracteres vazia é padronizada para todas as tabelas. Para obter mais informações sobre como formar consultas codificadas, consulte Encoded query strings.

    Tipo de dados: cadeia de caracteres

    SeparateUpdateSetPerScope Sinalizador que indica se os testes gerados devem ser separados nos respectivos pacotes, conjuntos de atualizações e escopos ou colocar os testes em um pacote, conjunto de atualizações e escopo.
    Valores válidos:
    • verdadeiro: os testes são colocados em seu respectivo pacote e conjunto de atualizações de acordo com o escopo de cada tabela ou item do catálogo.
    • falso: todos os testes gerados são colocados no mesmo pacote, conjunto de atualizações e escopo. Se for falso, scopeForGeneratingTests será necessário na solicitação.

    Tipo de dados: booliano

    Padrão: verdadeiro

    scopeForGeneratingTests Obrigatório quando separateUpdateSetPerScope está definido como falso. Sys_id do escopo no qual todos os testes gerados serão colocados.

    Tipo de dados: cadeia de caracteres

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

    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(a)

    Códigos de status

    Os seguintes códigos de status 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 de REST API.

    Tabela 18. Códigos de status
    Código do 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 do BOQ durante o processamento. O padrão de Todas as entradas é 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

    resultado.snboqId Sys_id do registro inserido na tabela sn_atf_tg_sn_boq 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 nenhum parâmetro 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 testes 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> 
      } 
    }