---
sourceDocument: Yokohama Gestão de serviços de TI
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/yokohama/it-service-management

 Release :

    - yokohama

ft:locale :

    - pt-BR

ft:publication_title :

    - Yokohama Gestão de serviços de TI

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# Adicione resultados de teste às solicitações de mudança usando a API de teste

# Adicione resultados de teste às solicitações de mudança usando a API de teste {#ariaid-title1}

* Versão de lançamento: Yokohama
* 
* Atualizado 30 de jan. de 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 5 min. de leitura

Adicione resultados de testes a. DevOpsSolicitações de mudança usando a capacidade de teste da API DevOps - POST /devops/tool/ A API está disponível para todos os tipos de teste para várias ferramentas conectadas a. Velocidade de mudança para DevOps.
Para obter mais informações sobre a API, consulte [DevOps - POST /devops/tool/{capability}](https://www.servicenow.com/docs/access?context=devops-api&version=yokohama&pubname=yokohama-api-reference&section=devops-POST-tool&ft:locale=en-US). Para usar a API em Azure DevOps, GitHub e Jenkins, você deve usar o formato mencionado nas respectivas seções abaixo.
Pré-requisitos

Função necessária: sn_devops.admin

Certifique-se de que o tipo de teste que você deseja usar na API esteja disponível como um tipo de teste em Velocidade de mudança para DevOpse que ele seja mapeado com a respectiva ferramenta de orquestração.  
1. Navegar até Espaço de mudança de DevOpsAdministraçãoIntegraçõesTipos de teste.

   Você também pode usar a navegação de IU clássica DevOpsIntegraçõesTipos de Teste.
2. Verifique se o tipo de teste está disponível na tabela Tipos de teste.

3. Para tipos de teste personalizados, selecione Novo e adicione o tipo de teste à lista.  
   1. Em Tipo de teste insira um nome para o seu tipo de teste.
   2. Em Categoria de teste , selecione a categoria do seu tipo de teste.
   3. Selecione Salvar.
   {#test-api-tools__ol_cv3_m5v_kbc}
4. Navegar até Espaço de mudança de DevOpsAdministraçãoIntegraçõesMapeamentos de tipo de teste.

   Você também pode usar a navegação de IU clássica DevOpsIntegraçõesMapeamentos de tipo de teste.
5. Verifique se o tipo de teste está mapeado para sua ferramenta de orquestração.

6. Se o mapeamento não estiver disponível, selecione Novo e criar o mapeamento.  
   1. Em Tipo de teste , selecione o tipo de teste que você deseja mapear.
   2. Em Integração da ferramenta selecione sua ferramenta de orquestração.
   3. Selecione Salvar.
   {#test-api-tools__ol_vty_hvv_kbc}
{#test-api-tools__ol_drl_ksv_kbc}

## Azure DevOps {#test-api-tools__section_q33_xyk_kbc}

Para Azure DevOpspipelines, use o formato fornecido aqui para adicionar resultados de testes a solicitações de mudança para vários tipos de teste.  
Formato do sufixo e parâmetros do URL:

    /api/sn_devops/v1/devops/tool/test?toolId=<devops_ToolID>&testType=<test_type>

* O parâmetro toolIdDeve ser um ID de ferramenta válido de uma ferramenta conectada e configurada em Velocidade de mudança para DevOps.
* O parâmetro testTypedeve ter um mapeamento de tipo de teste em Velocidade de mudança para DevOps.
{#test-api-tools__ul_yps_xxm_lbc}

Em Body, você deve passar nos parâmetros com base no tipo de teste.  
Nota:  
Para a conexão genérica, use o seguinte:

* nome de usuário: devops.integration.user
* senha: \<devops.integration.user password\>
{#test-api-tools__ul_izs_yfg_mbc}

Configuração de pipeline para testes de desempenho  
Parâmetros de amostra para o corpo:

    {
      "name": "Perf. tests DEMO5",
      "duration": 0,
      "maximumVirtualUsers": 10,
      "throughput": "5/min",
      "maximumTime": 10000,
      "minimumTime": 5000,
      "averageTime": 7000,
      "ninetyPercent": 8000,
      "standardDeviation": 2,
    "startTime": "2023-12-14T23:31:31z",
      "finishTime": "2023-12-14T23:40:32z",
      "buildNumber": $(Build.BuildNumber),
      "stageName": "Test API Job",
      "pipelineName": "TEST-CI-PIPELINE"
    }

Resumo do teste de desempenho na sua instância do Now :

Resumo do teste anexado à sua solicitação de mudança de DevOps :

Configuração de pipeline para outros testes funcionais e unitários  
Parâmetros de amostra para o corpo:

    {
      "name":" Smoke Test summary",
       "duration":0.0,
       "passedTests":1,
       "failed Tests":1,
       "skipped Tests":1,
       "blockedTests":1,
       "total Tests":4,
      "startTime": "2023-12-14T23:31:31z",
      "finishTime": "2023-12-15T23:31:31z",
      "buildNumber": $(Build. BuildNumber),
     "stageName": "Test API Job",
      "pipelineName": "TEST-CI-PIPELINE"
    }

Resumo do teste anexado à sua solicitação de mudança de DevOps :

## Azure DevOps Pipeline de YAML {#test-api-tools__section_qxh_x2l_kbc}

Pipeline de amostra:  

    stages:
      - stage: BashScript
        jobs:
          - job: 'bash'
            steps:
            - script: echo Hello, world!
              displayName: 'BashScript'

            
      - stage: TestAPI
        dependsOn: BashScript
        jobs:
          - job: 'RESTTestAPI'
            # dependsOn: BashScript
            pool: server
            steps:
            - task: InvokeRESTAPI@1
              displayName: 'Invoke REST API: POST'
              inputs:
                connectionType: 'connectedServiceName'
                serviceConnection: 'v01 - generic connection'
                method: 'POST'
                body: |
                  {
                                "name": "Performance test summary kl2",
                                "duration": 0,
                                "maximumVirtualUsers": 10,
                                "throughput": "5/min",
                                "maximumTime": 10000,
                                "minimumTime": 5000,
                                "averageTime": 7000,
                                "ninetyPercent": 8000,
                                "standardDeviation": 2,
                                "startTime": "2023-12-14T23:31:31z",
                                "finishTime": "2023-12-14T23:40:32z",
                                "buildNumber": $(Build.BuildId),
                                "stageName": "TestAPI/RestTestAPI",
                                "pipelineName": "TESTYMLPipeline"
                              }
                urlSuffix: '/api/sn_devops/v1/devops/tool/test?toolId=<devops_ToolID>&testType=<test_type>'
                waitForCompletion: 'false'

              
Pipeline de versão

## GitHub {#test-api-tools__section_agm_wyk_kbc}

Para GitHubpipelines, use o formato fornecido aqui para adicionar resultados de testes a solicitações de mudança para vários tipos de teste.

Configuração de pipeline para testes de desempenho

Pipeline de amostra:  

    name: Test API Call Perf

    on: 
      workflow_dispatch:

    jobs:
      post_api_call_perf:
        runs-on: ubuntu-latest
        
        steps:
        - name: Checkout Repository
          uses: actions/checkout@v2

        - name: post_api_call_perf
          run: |
            apiUrl="https://<your_instance>.service-now.com/api/sn_devops/v1/devops/tool/test?toolId=<devops_ToolId>&testType=<performance_test_type>"
            requestBody='{"toolId": "<devops_ToolId>", "buildNumber": '${{ github.run_number }}' , "workflow": "Test API Call Perf", "repository": "<your_GitHub_repository>", "stageName":"post_api_call_perf","pipelineName":"Test API Call Perf", "testType": "Load", "buildNumber": '${{ github.run_number }}', "buildId": '${{ github.run_id }}' , "attemptNumber" : '${{ github.run_attempt }}', "name": "GitHub Test Summary - Performance 1.0","duration": 0.0,"maximumVirtualUsers": 10,"throughput": "5/min","maximumTime": 1000,"minimumTime": 5000,"averageTime": 7000,"startTime": "2023-12-14T23:31:31z","finishTime": "2023-12-14T23:31:31z","ninetyPercent": 8000, "standardDeviation": 2.0 }'
            auth="devops.integration.user:<password> in base64 encoded"
            authHeader="Basic $auth"
            response=$(curl -X POST -H "Content-Type: application/json" -H "Authorization: $authHeader" -d "$requestBody" $apiUrl)
            exitCode=$?
            
            if [ $exitCode -eq 0 ]; then
              echo "API call successful!"
              echo "Response: $response"
            else
              echo "API call failed!"
              echo "Response: $response"
              exit 1
            fi

Configuração de pipeline para outros testes funcionais e unitários  
Pipeline de amostra:

    name: Test API Call

    on: 
      workflow_dispatch:

    jobs:
      post_api_call:
        runs-on: ubuntu-latest
        
        steps:
        - name: Checkout Repository
          uses: actions/checkout@v2

        - name: post_api_call
          run: |
            apiUrl="https://<your_instance>.service-now.com/api/sn_devops/v1/devops/tool/test?toolId=<devops_ToolID>&testType=<test_type>"
            requestBody='{"toolId": "<devops_ToolID>", "buildNumber": '${{ github.run_number }}' , "workflow": "Test API Call", "repository": "<your_GitHub_repository>", "stageName":"post_api_call","pipelineName":"TestAPICall", "testType": "Smoke", "buildNumber": '${{ github.run_number }}', "buildId": '${{ github.run_id }}' , "attemptNumber" : '${{ github.run_attempt }}', "testSummaries": [{"name": "GitHub Test Summary - smoke","passedTests": 1,"failedTests": 1,"skippedTests": 1,"ignoredTests": 0,"blockedTests": 1,"totalTests": 4,"startTime": "2023-12-14T23:31:31z","endTime": "2023-12-14T23:31:31z","duration": 0.0,"testType": "Smoke", "suites": []}] }'
            auth="devops.integration.user:<password> in base64 encoded"
            
            authHeader="Basic $auth"
            response=$(curl -X POST -H "Content-Type: application/json" -H "Authorization: $authHeader" -d "$requestBody" $apiUrl)
            exitCode=$?
            
            if [ $exitCode -eq 0 ]; then
              echo "API call successful!"
              echo "Response: $response"
            else
              echo "API call failed!"
              echo "Response: $response"
              exit 1
            fi

## Jenkins {#test-api-tools__section_pfd_5yk_kbc}

Para Jenkinspipelines, use o formato fornecido aqui para adicionar resultados de testes a solicitações de mudança para vários tipos de teste.

Configuração de pipeline para testes de desempenho  
Pipeline de amostra:

    pipeline {
        agent any
        stages {
            stage('POST API Call') {
                steps {
                    script {
                        def apiUrl = 'https://<your_instance>.service-now.com/api/sn_devops/v1/devops/tool/test?toolId=<devops_ToolID>&testType=<performance_test_type>'
                        def requestBody = [
                            name: "Performance Load tests jenkins",
                            duration: 0.0,
                            maximumVirtualUsers: 10,
                            throughput: "6/min",
                            maximumTime: 1000,
                            minimumTime: 300,
                            averageTime: 700,
                            ninetyPercent: 600,
                            standardDeviation: 2.0,
                            startTime: "2023-12-14T23:31:31z",
                            finishTime: "2023-12-14T23:40:32z",
                            buildNumber: env.BUILD_NUMBER,
                            stageName: "POST API Call",
                            pipelineName: "KLPerformanceTestPipeline"
                        ]
                        def auth = "<password>" // devops.integration.user:<password> in base64 encoded.
                        def authHeader = "Basic " + auth
                        def response = httpRequest(
                            contentType: 'APPLICATION_JSON',
                            httpMode: 'POST',
                            requestBody: groovy.json.JsonOutput.toJson(requestBody),
                            url: apiUrl,
                            customHeaders: [[name: 'Authorization', value: authHeader]]
                        )

                        if (response.status == 200 || response.status == 201) {
                            echo "API call successful!"
                            echo "Response: ${response.content}"
                        } else {
                            error "API call failed with status ${response.status}"
                        }
                    }
                }
            }
        }
    }

Configuração de pipeline para outros testes funcionais e unitários  
Pipeline de amostra:

    pipeline {
        agent any
        
        stages {
            stage('POST API Call') {
                steps {
                    script {
                        def apiUrl = 'https://<your_instance>.service-now.com/api/sn_devops/v1/devops/tool/test?toolId=<devops_ToolID>&testType=<test_type>'
                        def requestBody = [
                            name: "Smoke tests",
                            duration: 0.0,
                            passedTests: 1,
                            failedTests: 1,
                            skippedTests: 1,
                            blockedTests: 1,
                            totalTests: 4,
                            startTime: "2023-12-14T23:31:31z",
    	                    finishTime: "2023-12-15T23:31:31z",
                            buildNumber: env.BUILD_NUMBER,
                            stageName: "POST API Call",
                            pipelineName: "TestPipelineKL"
                        ]
                        
                        def auth = "<password>" // devops.integration.user:<password> in base64 encoded.
                        def authHeader = "Basic " + auth
                        
                        def response = httpRequest(
                            contentType: 'APPLICATION_JSON',
                            httpMode: 'POST',
                            requestBody: groovy.json.JsonOutput.toJson(requestBody),
                            url: apiUrl,
                            customHeaders: [[name: 'Authorization', value: authHeader]]
                        )
                        
                        if (response.status == 200 || response.status == 201) {
                            echo "API call successful!"
                            echo "Response: ${response.content}"
                        } else {
                            error "API call failed with status ${response.status}"
                        }
                    }
                }
            }
        }
    }

## Limitações da API de teste {#test-api-tools__section_nym_dz4_kbc}

* A lógica de espera não será resolvida.
* Cenários de nova execução não podem ser manipulados.
{#test-api-tools__ul_g1r_2z4_kbc}

