Relatório Cronológico
wdio-timeline-reporter é um pacote de terceiros, para mais informações consulte GitHub | npm
Uma solução completa de relatório para WebdriverIO para uma visualização agregada dos seus resultados de teste porque "Ver para crer"
Por quê
Porque gastamos muito tempo depurando testes com falha, alternando entre a saída do terminal e visualizando capturas de tela de erro, etc. Este relator agrega todas as informações típicas que você precisará em um relatório. Execute testes e tenha uma boa linha do tempo de eventos que você pode consultar para verificar se tudo parece OK.
Os recursos incluem:
- Funciona muito bem com frameworks Mocha e Jasmine. Também funciona com Cucumber, mas cada etapa será relatada como um teste
- Resumo claro dos resultados de teste.
- Detalhes de cada execução de teste, incluindo todas as capturas de tela capturadas durante a execução do teste.
- Filtragem de resultados de teste. Ótimo para focar em testes que falharam
- Rastreamento de pilha de erros anexado ao teste.
- Capacidade de adicionar informações adicionais ao teste em tempo de execução.
- Não é necessário pós-processamento. Ao concluir o processo de teste wdio, um arquivo de relatório html estático será gerado.
- Serviço de linha do tempo para gerenciar a captura de screenshots, incluindo o redimensionamento das imagens.
Um exemplo de relatório html pode ser encontrado aqui
Instruções sobre como instalar o WebdriverIO
podem ser encontradas aqui.
Instalação
PARA VERSÃO COMPATÍVEL COM WEBDRIVERIO V4 VEJA AQUI
npm install --save wdio-timeline-reporter
Uma dependência será adicionada ao seu package.json
{
"dependencies": {
"wdio-timeline-reporter": "^5.1.0"
}
}
Uso
Adicione timeline
ao array de relatores em seu arquivo de configuração wdio.
Também importe e adicione TimelineService
de wdio-timeline-reporter.
O serviço é obrigatório para combinar relatórios e criar html, pois os relatores agora são inicializados por instância de executor no webdriverio 5. Veja a discussão aberta no webdriverio
O TimelineService também pode gerenciar a captura de screenshots durante a execução dos testes. Você tem a opção de reduzir o tamanho e a qualidade das imagens e incorporar as imagens no relatório como base64. Estes são configuráveis usando as opções do repórter.
// wdio.conf.js
const { TimelineService } = require('wdio-timeline-reporter/timeline-service');
exports.config = {
// ...
reporters: [['timeline', { outputDir: './desired_location' }]],
// ...
services: [[TimelineService]]
};
Opções do Repórter
Se você deseja substituir a configuração padrão do repórter, adicione um objeto literal reporterOptions ao array timeline em reporters, conforme mostrado abaixo.
índice | descrição |
---|---|
1. | Diretório onde o arquivo html e as capturas de tela serão criados. Opção obrigatória |
2. | Nome do arquivo de relatório html. O valor padrão é timeline-report.html |
3. | Incorporar imagens como base64 no arquivo html. O valor padrão é false |
4. | Opções de objeto para manipulação de imagem |
5. | Definir qualidade JPEG. Relevante apenas se a opção resize for true . Quanto menor o valor, menor será o tamanho e a qualidade da imagem. O valor padrão é 70 . O valor máximo permitido é 100 |
6. | Redimensionar imagem. O valor padrão é false |
7. | valor para diminuir o número total de pixels. Relevante apenas se a opção resize for verdadeira. O padrão é 1 Valores válidos 1 - 5 |
8. | com que frequência tirar capturas de tela. Os valores suportados são on:error , before:click , none . O padrão é none . before:click é uma ótima opção para criar uma linha do tempo de capturas de tela do aplicativo em teste. |
Adicionar informações adicionais ao contexto de teste
É possível adicionar informações adicionais a um teste usando o método estático addContext
. Isso pode ser útil para adicionar informações importantes que podem ajudar na depuração de testes com falha, por exemplo, um usuário criado durante a execução do teste com um nome de usuário dinâmico
Uso básico
O método estático TimelineReporter.addContext
aceita um parâmetro de string ou um objeto literal com duas propriedades title
e value
, por exemplo
{ title: 'sessionId', value: 'b59bb9ec-ab15-475e-9ce6-de8a14ca0cd3' }
o valor também pode ser um link
Exemplo Mocha
const TimelineReporter = require('wdio-timeline-reporter').default;
describe('Suite', function() {
it('Test', function() {
// objeto literal como parâmetro
TimelineReporter.addContext({
title: 'Test User',
value: 'user id created during the test'
});
// valor como tag âncora
TimelineReporter.addContext({
title: 'Dynamic link',
value: '<a href="">Some important link related to test</a>'
});
// parâmetro string
TimelineReporter.addContext('This test might be flaky');
});
});
Agradecimento
Gostaria de dar um agradecimento especial aos autores e mantenedores do wdio-json-reporter. Passar por sua solução v5 ajudou a acelerar meu trabalho