how publish pact contract pact broker
Este tutorial explica duas opções para configurar o Pact Broker. Você pode publicar o Contrato do Pacto para o Corretor do Pacto usando a estrutura do pact-js e com o Postman:
script de shell para comparar dois arquivos
O que é Pact Broker?
O Pact Broker é uma ferramenta fornecida pelos criadores da estrutura do Pacto. Facilita o armazenamento de contratos, visualização de consumidores e verificação do status do contrato.
A razão para ter um corretor separado para armazenar os contratos é porque cada conjunto de testes é frequentemente escrito em repositórios diferentes e até mesmo em idiomas diferentes.
=> Explore a série de treinamento de teste de contrato simples aqui
O que você aprenderá:
Publicar contrato de pacto para corretor de pacto
Antes de começarmos a publicar um contrato, você precisa decidir se deseja hospedar o Pact Broker por conta própria ou usar um serviço hospedado, como Pactflow .
Pessoalmente, optamos pelo Pactflow porque oferece os benefícios adicionais conforme mostrado na tabela abaixo:
Recurso | Pactflow | Auto-hospedado |
---|---|---|
SSO (Github) | sim | Não |
Manutenção do servidor | Não | sim |
Tokens / segredos seguros | sim | Não |
Webhooks | IU configurável | Configuração manual |
Infraestrutura como código | Terraform | Dockerfile |
Configurando o Pact Broker com o Pactflow
Pactflow oferece uma opção gratuita que só será cobrada após a avaliação de 180 meses (a partir de maio de 2020), que é de 10 anos e meio.
- Registre seu endereço de e-mail no Pactflow (observe que você sempre pode adicionar outros usuários posteriormente).
- Configure as informações da empresa e subdomínio do seu Corretor do Pacto.
- Agora você deve receber um e-mail com seu nome de usuário e senha temporários.
- Navegue até o seu subdomínio, (aqui está o meu subdomínio ) e faça login. Se isso for bem-sucedido, você deverá ver o aplicativo de exemplo com um contrato já configurado.
Veremos como verificar os contratos no Pactflow mais adiante no tutorial.
Configurando o Pact Broker com Docker (docker-compose)
O Pact oferece imagens do docker para ativar facilmente o seu próprio Pact Broker em segundos com o docker-compose. O repositório github explica como isso pode ser feito, vamos entrar em detalhes sobre isso mais tarde.
Algumas etapas adicionais que são adicionadas para garantir que o serviço seja estável são fornecidas abaixo:
- Adicione “reiniciar: sempre” ao docker-compose Serviços.
- Inicie docker-compose no servidor usando o argumento separado `-d` para permitir que ele seja executado em segundo plano.
Contrato de publicação com pact-js
Cada implementação de linguagem do Pact tem seus próprios métodos de como publicar os contratos para o corretor. Publicando no Pact Broker em JavaScript, a configuração deve ser semelhante a esta.
O Pact Broker Token mostrado acima é armazenado no Pactflow nas configurações. As capturas de tela são mostradas abaixo. Certifique-se de que está usando o token CI que tem permissões de leitura e gravação.
Vamos para Configurações e, em seguida, Tokens de API no Pactflow.
Provavelmente, segredos e senhas não devem ser armazenados no git, portanto, um arquivo `.env` deve ser usado e referenciado dentro do código com algo como mostrado abaixo.
Juntamente com o “PublishVerificationResult” valor, você não quer verificar os contratos em seu ambiente local. Portanto, outra variável de ambiente deve ser definida, conforme mostrado abaixo.
Agora o contrato pode ser publicado diretamente no código.
Contrato de publicação com carteiro
Normalmente, para verificar o primeiro contrato, usamos Postman para garantir que o corretor está configurado corretamente. Carteiro também foi usado quando os consumidores estavam demorando a adotar o Pacto dentro de sua equipe, então publicamos o contrato para o Corretor do Pacto e pedimos à equipe do consumidor para verificar se eles estão satisfeitos com o contrato.
Isso nos permitiu, como equipe fornecedora, verificar o contrato e ter mais confiança em nossas implantações. Também quando a equipe de consumidores estava pronta para adotar o Pacto, eles já tinham um exemplo de trabalho para usar.
As etapas para publicar o Postman são fornecidas abaixo:
# 1) PUT: Construir a solicitação
- Navegue até o subdomínio
- Nome do provedor
- Nome do consumidor
- Versão
# 2) Autorização: Adicione o token do portador (que é equivalente ao token API conforme mencionado acima)
# 3) Inclua o Pact JSON como o corpo (o JSON pode ser copiado diretamente no campo do corpo, certificando-se de definir o cabeçalho Content: Type como “application / json”).
Compartilhando pactos com provedores de API
Após a publicação de seus contratos, o provedor pode recuperar o contrato do Pact solicitando a URL do corretor do Pact com:
Normalmente, você desejará verificar com uma versão específica da API. Por exemplo, em uma arquitetura de microsserviços, a equipe do consumidor está constantemente fazendo alterações nas informações que eles exigem da API.
Além disso, o provedor de API está fazendo alterações ao mesmo tempo e eles precisam verificar a versão que está atualmente implantada para produção, pois isso garantirá uma implantação perfeita.
Conclusão
Finalmente, você tem um Pact Broker com um contrato publicado. No próximo tutorial, veremos como escrever o teste do seu provedor envolvendo uma API .Net Core, puxando o último contrato e verificando a API local.
A estrutura do Pact não é apenas valiosa no início do seu projeto, de forma orientada para o consumidor, mas o benefício de visualizar seus consumidores com o Pact Broker é definitivamente um contribuidor chave para usar esta ferramenta.
Além disso, a capacidade de entender melhor as interações do consumidor e como a API está realmente sendo usada pode muitas vezes ser perdida na tradução e pode resultar em um problema de produção que pode acontecer. Isso leva a horas de depuração e análise dos logs do aplicativo.
Neste tutorial, aprendemos duas opções diferentes para configurar o seu Pact Broker. Você publicou seu contrato usando a estrutura do pact-js e também com o Postman.
Neste ponto, você precisa pensar em alinhar suas versões entre os microsserviços e também nomear seus provedores de forma consistente para criar uma rede Pact Broker fácil de ler e compreensível.
=> Visite aqui para aprender os testes de contrato do zero
Leitura recomendada
- Como escrever um teste de pacto do consumidor em JavaScript
- Introdução ao teste de contrato com exemplos
- Verificar contrato de pacto e implantação contínua com Pact CLI
- Tutorial do Docker: instalação e introdução ao Docker
- Script avançado para fluxos de trabalho de teste complexos no Postman
- Como criar documentação de API no Postman?
- Como usar o Postman para testar diferentes formatos de API?
- As 10 perguntas mais populares da entrevista do carteiro com respostas