automação de Teste não é apenas automatizar a aplicação. Eu diria que mesmo compartilhar os resultados dos testes programaticamente com a equipe faz parte da automação de testes. Portanto, a equipe não depende de nenhum indivíduo para obter os resultados. A equipe também pode tomar medidas adicionais com base nos resultados do teste sem demora.
neste artigo, veremos como podemos compartilhar os resultados dos testes no Slack. Além disso, como você pode acionar uma execução automatizada de conjunto de testes em sua ferramenta Jenkins/CI.
Slack
usamos o Slack em nossa organização. Você também pode estar usando o Slack para comunicar informações entre os membros da equipe em sua organização. O Slack é uma ótima ferramenta e mantém todos atualizados e reduz e-mails desnecessários.
o Slack é um hub de colaboração para o trabalho, não importa o trabalho que você faça. É um lugar onde as conversas acontecem, as decisões são tomadas e as informações estão sempre ao seu alcance. Com o Slack, sua equipe está melhor conectada.
você pode usar este aplicativo on-off.site
Slack — Jenkins CI App — Integração
eu suponho que a maioria de nós usa o Jenkins para Contínua, automação de testes. Portanto, neste artigo, forneci as etapas para integrar Jenkins e Slack. Se você usar Outras ferramentas como TeamCity, Bamboo, etc, o processo ainda será quase o mesmo.
Slack:
- Vá para https://slack.com
- Procurar ‘Jenkins app
- Instalar o Jenkins CI App em sua folga
- Clique em “Adicionar Configuração’
- Faça uma nota da equipe domínio e Token
- Selecionar o canal onde queremos representar os resultados
Jenkins
- Ir para Gerir Jenkins -> Administrar Plugins -> Guia Disponível
- Instalar o Slack Notificação Plugin
- Atualização de Folga de domínio e token => Gerenciar Jenkins -> Configurar o Sistema> Global Folga Configurações do Notificador de
- Clique em “Teste de Conexão” — Você deve ver o “sucesso” mensagem de Jenkins e a mensagem abaixo na margem de atraso do canal.
Jenkins — Trabalho de Teste
- Criar um Jenkins trabalho para o Teste
- Atualização de pós-construir ações como mostrado aqui — com a mensagem personalizada que você deseja
Jenkins PipeLine
Você precisa adicionar uma chamada para o plugin
slackSend color: 'good', message: 'Message from Jenkins Pipeline'
Seguinte, temos que determinar a cor correta e informações de texto da mensagem:
def notifySlack(String buildStatus = 'STARTED') {
// Build status of null means success.
buildStatus = buildStatus ?: 'SUCCESS'
def color
if (buildStatus == 'STARTED') {
color = '#D4DADF'
} else if (buildStatus == 'SUCCESS') {
color = '#BDFFC3'
} else if (buildStatus == 'UNSTABLE') {
color = '#FFFE89'
} else {
color = '#FF9FA1'
}
def msg = "${buildStatus}: `${env.JOB_NAME}` #${env.BUILD_NUMBER}:\n${env.BUILD_URL}"
slackSend(color: color, message: msg)
}
node {
try {
notifySlack()
sh 'runbuild'
} catch (e) {
currentBuild.result = 'FAILURE'
throw e
} finally {
notifySlack(currentBuild.result)
}
}
resumo
como parte do processo de teste contínuo, executamos os scripts automatizados usando Jenkins periodicamente. Somente você, como engenheiro de teste, conhece principalmente os resultados. Outros membros da equipe podem não estar cientes dos resultados do teste. Usando ferramentas automatizadas, podemos criar scripts automatizados e, usando a API do Slack, podemos compartilhar os resultados programaticamente.
Criando um novo usuário
vamos começar criando um novo usuário no Jenkins para o slack usar. Anote o token da API.
a suposição é que esse usuário do slack tem acesso suficiente para acionar o trabalho.
Execute o comando CURL abaixo para verificar se o Usuário é capaz de invocar o trabalho.
este é o formato do URL. Substitua o conteúdo por informações apropriadas.
curl -X POST http://@/job//build
no meu caso, tentei como mostrado aqui.
curl -X POST http://slack:[email protected]:8080/job/TEST_SMOCK_SLACK_JOB_DEMO/build
Slack — Slash Command
para invocar o trabalho Jenkins acima, estaríamos usando os comandos slash do Slack. Portanto, sempre que você digitar algo após uma barra-para ex: ‘/ smoketests ‘ – o Slack o tratará como um comando e poderá responder ao comando. Assim, por exemplo, o Slack pode ser configurado para fornecer um relatório meteorológico para sua cidade.
para invocar o trabalho Jenkins acima, estaríamos usando os comandos slash do Slack. Portanto, sempre que você digitar algo após uma barra-para ex: ‘/ smoketests ‘ – o Slack o tratará como um comando e poderá responder ao comando. Assim, por exemplo, o Slack pode ser configurado para fornecer um relatório meteorológico para sua cidade.
- Vá para a sua Folga de configuração para adicionar a Barra de configuração.
- vou criar um comando de teste de fumaça – para que minha equipe possa acionar um teste de fumaça do slack para verificar a integridade do aplicativo.
- Adicionar a definição de integração, como mostrado aqui. Forneça o URL que precisamos chamar para acionar o trabalho Jenkins.
- Selecione a auto-ajuda completo
- uma Vez que a configuração é feito, Você pode verificar imediatamente em sua Folga. Basta digitar ‘/s’ — você poderia ver o ‘smoketest’ comando
- Invocar o comando — Verifique se Jenkins é capaz de desencadear o trabalho.
- Se o Trabalho requer um parâmetro, Use o formato de URL abaixo para invocar o trabalho com os parâmetros Padrão.
curl -X POST http://@/job//buildWithParameters
- se você precisar passar qualquer parâmetro específico, basta anexar a variável e o valor no parâmetro.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
- para obter o status / resultado do trabalho, o trabalho deve ser configurado para postar os resultados de volta ao Slack. Você pode verificar um artigo sobre isso aqui.
Nota
- para fazer a abordagem acima funcionar, seu servidor Jenkins deve estar acessível pelo Slack. Certifique-se de que não está bloqueado pelo firewall.
resumo
os comandos do Slack são muito úteis e úteis para obter informações ou acionar algo que você possa fazer com frequência. Ao fazer isso, qualquer usuário não técnico da equipe pode fazer você usar seus scripts de teste automatizados chamando diretamente o comando slash.