DevOps integração da ferramenta de teste
A integração da ferramenta de teste permite exibir os resultados do teste no DevOps para Jenkins, Azure DevOps, GitHub, GitHub Enterprise, e. GitLab testes de unidade, funcional e de desempenho.
Para GitLab E Jenkins, somente a integração do tipo de teste JUnit é compatível.
- Os testes de selênio executados e publicados usando TestNG são relatados pelo Jenkins plug-in para ServiceNow DevOps.
- A categorização de tipo de teste é compatível.
- Resultados de testes adicionais relatados por ferramentas, como Apache JMeter, podem ser processados em DevOps personalizado Workflow Studio subfluxos (nenhuma mudança de pipeline necessária).
| Categoria | Tipo de teste |
|---|---|
| Unidade | JUnit (padrão) NUnit XUnit Teste de unidade Nota:
Você pode mudar o tipo de teste padrão modificando o. [sn_devops.default_test_type] DevOps propriedade. |
| Funcional |
|
| Desempenho | Carregar |
Mapeamento de tipo de teste
O mapeamento de tipo de teste conecta o tipo de teste e a entidade que está sendo testada com DevOps ferramenta ( .)
Um mapeamento de tipo de teste preciso garante que o tipo de teste sempre apareça conforme pretendido nos resultados de resumo do teste.
| Campo | Descrição | |
|---|---|---|
| Tipo de teste |
|
|
| ID da entidade do DevOps | Nome da tabela | DevOps nome da tabela que contém a entidade vinculada aos resultados do teste (na carga útil do relatório de teste).
Nota: Apenas DevOps Tabelas de Etapa e Pipeline são compatíveis. |
| Documento | Nome da entidade especificada na tabela selecionada. Por exemplo, o nome da etapa, pipeline, artefato ou pacote. |
|
Testar caminhos de arquivo ( Jenkins(somente testes) |
Caminho para o arquivo de resultado de teste gerado no Jenkins servidor. Isso é útil para que relatórios de teste com atributos que não estão em conformidade com a implementação JUnit ou TestNG, como JMeter, por exemplo, ainda possam ser aproveitados por DevOps. Separe vários arquivos por uma vírgula. Nota: Você deve usar um Workflow Studio subfluxo para transformar uma carga de teste bruta. |
|
| Integração da ferramenta | Ferramenta que está executando o teste. |
|
| Tabela do DevOps | DevOps tabela que corresponde ao nome da tabela no ID da entidade DevOps configuração. |
|
Transformar uma carga de teste bruta
Se houver mais de um tipo de teste em uma fase de desempenho, você poderá usar Política de tipo de teste do DevOps tabela de decisão para configurar o tipo de teste para cada teste para que as cargas úteis do resultado do teste sejam transformadas corretamente.
| Tabela de decisão | Finalidade | Configuração |
|---|---|---|
| Política de subfluxo de teste de DevOps | Chamar automaticamente um subfluxo personalizado que transforma a carga bruta recebida pela ferramenta. Entradas de decisão:
|
Crie uma decisão que especifique o subfluxo personalizado a ser chamado quando a carga bruta for recebida. Defina as condições para conter campos que seriam incluídos na carga bruta. Por exemplo, para chamar Jenkins Subfluxo personalizado de Teste de desempenho do BZ: Condições:
Fluxo: Jenkins Teste de desempenho do BZ |
| Política de tipo de teste do DevOps | Para definir automaticamente tipos de teste quando mais de um tipo de teste estiver configurado em uma fase de teste de desempenho. Isso é necessário para que os resultados do segundo tipo de teste sejam transformados corretamente. Por exemplo, quando um teste de desempenho Load e um teste de desempenho JUnit são mapeados no mesmo DevOps Etapa, os resultados do teste JUnit não serão formatados corretamente, a menos que uma decisão seja criada. Entradas de decisão:
|
Crie uma decisão para cada tipo de teste na fase de teste de desempenho para definir o tipo de teste. Teste de carga:
Teste JUnit:
|
Resultados do resumo do teste
- Módulo (Resumos de testes e Resumos de testes de desempenho).
- Solicitação de mudança do DevOps - Lista relacionada de resultados de teste.
- DevOps IU do pipeline - Bloco de qualidade.
Carga de capacidade de notificação JSON padrão esperada - Ferramenta de teste
{
"name": "CorpSite-selenium#55",
"duration": 78.802,
"passedTests": 4,
"failedTests": 0,
"skippedTests": 0,
"blockedTests": 0,
"totalTests": 4,
"startTime": "2020-06-30T18:12:31Z",
"finishTime": "2020-06-30T18:12:31Z",
"passingPercent": 100,
// Use Artifact OR Package OR Build + Stage + PipelineName Attributes
Send only one Attribute combination. For example, send Attributes of either Artifact or Package, or the combination of Build + Stage + PipelineName.
If you send more than one Attribute, priority is given in the following order and the low priory one is ignored. For example, if you send attribute for both packages and artifacts, then attribute of package is considered and the attribute of artifacts is ignored.
1.packages
2.artifcats
3.buildNumber + stageName + pipelineName
"packages": [{"name": "CorpSite-pkg1"}],
"artifacts": [{"name": "CorpSite-artifact", "version": "1.0.0"}],
"buildNumber": "55",
"stageName": "test",
"pipelineName": "CorpSite-selenium",
}
Notes:
- The pipelineName attribute value must be same as the value in the Orchestration pipeline field of the Pipeline [sn_devops_pipeline] table.
- The stageName attribute value must be same as the value in the Orchestration stage field of the Step [sn_devops_step] table.{
"name": "Performance Tests",
"url": "http://abc.com",
"startTime": "2020-06-30T18:12:31Z",
"finishTime": "2020-06-30T18:12:31Z",
"duration": 78.802,
"maximumVirtualUsers": "",
"throughput": "",
"maximumTime": "",
"minimumTime": "",
"averageTime": "",
"ninetyPercent": "",
"standardDeviation": "",
// Use Artifact OR Package OR Build + Stage + PipelineName Attributes
Send only one Attribute combination. For example, send Attributes of either Artifact or Package, or the combination of Build + Stage + PipelineName.
If you send more than one Attribute, priority is given in the following order and the low priory one is ignored. For example, if you send attribute for both packages and artifacts, then attribute of package is considered and the attribute of artifacts is ignored.
1.packages
2.artifcats
3.buildNumber + stageName + pipelineName
"packages": [{"name": "CorpSite-pkg1"}],
"artifacts": [{"name": "CorpSite-artifact", "version": "1.0.0"}],
"buildNumber": "55",
"stageName": "test",
"pipelineName": "CorpSite-Performance",
}
Notes:
- The pipelineName attribute value must be same as the value in the Orchestration pipeline field of the Pipeline [sn_devops_pipeline] table.
- The stageName attribute value must be same as the value in the Orchestration stage field of the Step [sn_devops_step] table.