how publish pact contract pact broker
이 튜토리얼에서는 Pact 브로커를 설정하는 두 가지 옵션을 설명합니다. pact-js 프레임 워크와 Postman을 사용하여 Pact 계약을 Pact 브로커에 게시 할 수 있습니다.
최고의 텍스트 음성 변환 소프트웨어
Pact Broker는 무엇입니까?
Pact Broker는 Pact 프레임 워크의 작성자가 제공하는 도구입니다. 계약 저장, 소비자 시각화 및 계약 상태 확인을 용이하게합니다.
계약을 저장하기 위해 별도의 브로커가있는 이유는 각 테스트 세트가 종종 다른 저장소와 심지어 다른 언어로 작성되기 때문입니다.
=> 여기에서 간단한 계약 테스트 교육 시리즈 살펴보기
학습 내용 :
Pact 중개인에게 Pact 계약 게시
계약을 게시하는 방법으로 이동하기 전에 Pact Broker를 직접 호스팅할지 아니면 다음과 같은 호스팅 서비스를 사용할지 결정해야합니다. Pactflow .
개인적으로 우리는 아래 표에 표시된 추가 혜택을 제공하기 때문에 Pactflow를 선택했습니다.
특색 | Pactflow | 자체 호스팅 |
---|---|---|
SSO (Github) | 예 | 하지 마라 |
서버 유지 보수 | 하지 마라 | 예 |
보안 토큰 / 비밀 | 예 | 하지 마라 |
웹훅 | UI 구성 가능 | 수동 구성 |
코드로서의 인프라 | Terraform | Dockerfile |
Pactflow로 Pact 브로커 설정
Pactflow 180 개월 평가판 (2020 년 5 월 기준)이 지난 10 년 반 후에 만 요금이 부과되는 무료 옵션을 제공합니다.
- Pactflow에 이메일 주소를 등록하세요 (나중에 언제든지 사용자를 추가 할 수 있음).
- Pact 브로커에 대한 회사 정보 및 하위 도메인을 설정하십시오.
- 이제 임시 사용자 이름과 암호가 포함 된 이메일을 받게됩니다.
- 하위 도메인으로 이동합니다 (여기에 내 하위 도메인 ) 및 로그인합니다. 성공하면 계약이 이미 설정된 예제 앱이 표시됩니다.
자습서 뒷부분에서 Pactflow 내에서 계약을 확인하는 방법을 살펴 보겠습니다.
Docker로 Pact Broker 설정 (docker-compose)
Pact는 docker-compose를 사용하여 몇 초 만에 자체 Pact Broker를 쉽게 스핀 업할 수있는 도커 이미지를 제공합니다. 그만큼 github 저장소 이 작업을 수행하는 방법을 설명합니다. 나중에 자세히 설명하겠습니다.
서비스가 안정적인지 확인하기 위해 추가 된 몇 가지 추가 단계는 다음과 같습니다.
- '다시 시작 : 항상'을 도커 작성 서비스.
- 백그라운드에서 실행할 수 있도록`-d` 분리 된 인수를 사용하여 서버에서 docker-compose를 시작합니다.
pact-js와 계약 게시
각 Pact 언어 구현에는 계약을 브로커에 게시하는 방법에 대한 고유 한 방법이 있습니다. JavaScript로 Pact Broker에 게시하면 구성이 다음과 유사해야합니다.
위에 표시된 Pact 브로커 토큰은 설정의 Pactflow에 저장됩니다. 스크린 샷은 아래와 같습니다. 읽기 및 쓰기 권한이있는 CI 토큰을 사용하고 있는지 확인하십시오.
이동 Pactflow의 설정 및 API 토큰.
아마도 비밀과 암호는 git에 저장되어서는 안됩니다. 따라서`.env` 파일을 사용하고 코드 내에서 아래와 같이 참조해야합니다.
와 함께 “publishVerificationResult” 가치, 로컬 환경에서 계약을 확인하고 싶지 않습니다. 따라서 아래와 같이 다른 환경 변수를 설정해야합니다.
이제 계약을 코드에 직접 게시 할 수 있습니다.
Postman과의 출판 계약
일반적으로 첫 번째 계약을 확인하기 위해 Postman을 사용하여 브로커가 올바르게 설정되었는지 확인합니다. 우편 집배원 소비자가 팀 내에서 Pact를 채택하는 것이 느릴 때도 사용 되었기 때문에 Pact Broker에 계약서를 게시하고 소비자 팀에 계약에 만족하는지 확인하도록 요청했습니다.
이를 통해 공급자 팀은 계약에 대해 확인하고 배포에 대해 더 많은 확신을 가질 수있었습니다. 또한 소비자 팀이 Pact를 채택 할 준비가되었을 때 이미 사용할 작업 예제가있었습니다.
Postman을 게시하는 단계는 다음과 같습니다.
# 1) PUT : 요청 구성
- 다음으로 이동 하위 도메인
- 제공자 이름
- 소비자 이름
- 버전
# 2) 인증 : 베어러 토큰 추가 (위에서 언급 한 API 토큰과 동일)
# 3) Pact JSON을 본문으로 포함합니다 (JSON은 본문 필드에 직접 복사 할 수 있으므로 Content : Type 헤더를 'application / json'으로 설정해야합니다).
API 제공 업체와 협정 공유
계약이 게시되면 공급자는 다음을 사용하여 Pact 브로커 URL을 요청하여 Pact 계약을 검색 할 수 있습니다.
일반적으로 특정 버전의 API로 확인하는 것이 좋습니다. 예를 들면 마이크로 서비스 아키텍처에서 소비자 팀은 API에서 필요한 정보를 지속적으로 변경합니다.
이와 함께 API 공급자는 동시에 변경을 수행하며 원활한 배포를 보장하기 때문에 현재 프로덕션에 배포 된 버전에 대해 확인해야합니다.
결론
마지막으로 계약이 게시 된 Pact Broker가 있습니다. 다음 자습서에서는 .Net Core API를 래핑하고 최신 계약을 가져오고 로컬 API에 대해 확인하여 공급자 테스트를 작성하는 방법을 살펴 봅니다.
Pact 프레임 워크는 프로젝트를 시작할 때 소비자 중심의 방식으로 가치가있을뿐만 아니라 Pact 브로커를 통해 소비자를 시각화하는 이점은 확실히이 도구를 사용하는 데 중요한 기여자입니다.
또한 소비자 상호 작용과 API가 실제로 사용되는 방식을 더 잘 이해할 수있는 능력은 종종 번역 과정에서 손실되어 생산 문제가 발생할 수 있습니다. 이로 인해 응용 프로그램 로그를 통해 몇 시간 동안 디버깅 및 트롤링됩니다.
이 튜토리얼에서는 Pact 브로커를 설정하는 두 가지 옵션을 배웠습니다. pact-js 프레임 워크와 Postman을 사용하여 계약을 게시했습니다.
이 시점에서 마이크로 서비스 전반에 걸쳐 버전을 정렬하고 제공 업체의 이름을 일관되게 지정하여 읽기 쉽고 이해하기 쉬운 Pact Broker 네트워크를 만드는 것에 대해 생각해야합니다.
=> 처음부터 계약 테스트를 배우려면 여기를 방문하십시오
추천 도서
- JavaScript에서 Consumer Pact 테스트를 작성하는 방법
- 예제를 사용한 계약 테스트 소개
- Pact CLI로 Pact 계약 및 지속적 배포 확인
- Docker 자습서 : Docker 설치 및 소개
- Postman의 복잡한 테스트 워크 플로를위한 고급 스크립팅
- Postman에서 API 문서를 만드는 방법은 무엇입니까?
- 다른 API 형식을 테스트하기 위해 Postman을 사용하는 방법?
- 답변이있는 가장 인기있는 10 가지 우편 배달부 인터뷰 질문