how publish pact contract pact broker
このチュートリアルでは、PactBrokerを設定するための2つのオプションについて説明します。 pact-jsフレームワークとPostmanを使用して、PactコントラクトをPactBrokerに公開できます。
私のwifiセキュリティキーは何ですか
Pact Brokerとは何ですか?
Pact Brokerは、Pactフレームワークの作成者によって提供されるツールです。契約の保存、消費者の視覚化、および契約ステータスの検証を容易にします。
コントラクトを格納するために個別のブローカーを使用する理由は、テストの各セットが異なるリポジトリー、さらには異なる言語で作成されることが多いためです。
=> ここで簡単な契約テストトレーニングシリーズをご覧ください
学習内容:
協定ブローカーに協定契約を公開する
契約を公開する方法に入る前に、Pact Brokerを自分でホストするか、次のようなホストされたサービスを使用するかを決定する必要があります。 Pactflow 。
個人的には、以下の表に示すように、追加の利点を提供するPactflowを選択しました。
特徴 | Pactflow | セルフホスト |
---|---|---|
SSO(Github) | はい | しない |
サーバのメンテナンス | しない | はい |
安全なトークン/シークレット | はい | しない |
Webhook | 構成可能なUI | 手動設定 |
コードとしてのインフラストラクチャ | Terraform | Dockerfile |
Pactflowを使用したPactBrokerの設定
Pactflow は、180か月の試用期間(2020年5月現在)の10年半後にのみ請求される無料のオプションを提供します。
- メールアドレスをPactflowに登録します(後でいつでもユーザーを追加できることに注意してください)。
- PactBrokerの会社情報とサブドメインを設定します。
- これで、一時的なユーザー名とパスワードが記載された電子メールが届きます。
- サブドメインに移動します(これが私の サブドメイン )そしてログインします。これが成功した場合は、コントラクトがすでに設定されているサンプルアプリが表示されます。
チュートリアルの後半で、Pactflow内の契約に対して検証する方法を見ていきます。
Dockerを使用したPactBrokerのセットアップ(docker-compose)
Pactは、docker-composeを使用して、独自のPactBrokerを数秒で簡単に起動できるDockerイメージを提供します。ザ・ githubリポジトリ これを行う方法を説明します。これについては後で詳しく説明します。
サービスが安定していることを確認するために追加されるいくつかの追加手順を以下に示します。
- 「restart:always」をに追加します docker-compose サービス。
- `-d`デタッチ引数を使用してサーバー上でdocker-composeを起動し、バックグラウンドで実行できるようにします。
pact-jsとの公開契約
各Pact言語の実装には、ブローカーに契約を公開する方法に関する独自のメソッドがあります。 JavaScriptでPactBrokerに公開すると、構成は次のようになります。
上記のPactBroker Tokenは、設定の下のPactflowに保存されます。スクリーンショットを以下に示します。読み取りと書き込みのアクセス許可を持つCIトークンを使用していることを確認してください。
に移動 Pactflowの設定とAPIトークン。
おそらくシークレットとパスワードはgitに保存しないでください。したがって、コード内で `.env`ファイルを使用し、以下に示すようなもので参照する必要があります。
一緒に 「publishVerificationResult」 価値、あなたはあなたのローカル環境で契約を検証したくありません。したがって、以下に示すように、別の環境変数を設定する必要があります。
これで、コントラクトをコードで直接公開できます。
郵便配達員との出版契約
通常、最初の契約を確認するために、Postmanを使用してブローカーが正しく設定されていることを確認します。 郵便配達員 消費者がチーム内でPactを採用するのが遅かったときにも使用されたため、契約をPact Brokerに公開し、消費者チームに契約に満足しているかどうかを確認するよう依頼しました。
これにより、プロバイダーチームとして、契約に照らして検証し、展開に自信を持てるようになりました。また、消費者チームがPactを採用する準備ができたとき、彼らはすでに使用するための実用的な例を持っていました。
Postmanを公開する手順は次のとおりです。
#1)PUT:リクエストを作成します
- に移動します サブドメイン
- プロバイダー名
- 消費者名
- バージョン
#2)承認:ベアラートークンを追加します(上記のAPIトークンと同等です)
#3)Pact JSONを本文として含めます(JSONは本文フィールドに直接コピーできるため、Content:Typeヘッダーを「application / json」に設定してください)。
APIプロバイダーとの協定の共有
契約が公開されると、プロバイダーは次のコマンドを使用してPact BrokerURLを要求することでPact契約を取得できます。
通常、特定のバージョンのAPIで確認する必要があります。 例えば、 マイクロサービスアーキテクチャでは、コンシューマーチームはAPIから必要な情報に絶えず変更を加えています。
これに加えて、APIプロバイダーは同時に変更を加えており、シームレスなデプロイを保証するため、現在本番環境にデプロイされているバージョンと照合する必要があります。
結論
最後に、公開されたコントラクトを持つPact Brokerがあります。次のチュートリアルでは、.Net Core APIをラップし、最新のコントラクトをプルし、ローカルAPIに対して検証することにより、プロバイダーテストを作成する方法を見ていきます。
Pactフレームワークは、プロジェクトの開始時に消費者主導の方法で価値があるだけでなく、Pact Brokerを使用して消費者を視覚化することの利点は、このツールを使用するための重要な貢献者です。
また、消費者とのやり取りやAPIが実際にどのように使用されているかをよりよく理解する機能は、翻訳中に失われることが多く、本番環境で問題が発生する可能性があります。これにより、アプリケーションログのデバッグとトロールに何時間もかかります。
このチュートリアルでは、PactBrokerを設定するための2つの異なるオプションを学習しました。 pact-jsフレームワークとPostmanを使用して契約を公開しました。
この時点で、マイクロサービス全体でバージョンを調整し、プロバイダーに一貫して名前を付けて、読みやすく理解しやすいPactBrokerネットワークを作成することを検討する必要があります。
=> 契約テストを最初から学ぶには、こちらにアクセスしてください
推奨読書
- JavaScriptで消費者協定テストを書く方法
- 例を使用した契約テストの概要
- PactCLIを使用してPact契約と継続的デプロイを確認する
- Dockerチュートリアル:Dockerのインストールと紹介
- Postmanの複雑なテストワークフローのための高度なスクリプト
- PostmanでAPIドキュメントを作成する方法は?
- さまざまなAPI形式をテストするためにPostmanを使用する方法は?
- トップ10の最も人気のある郵便配達員の面接の質問と回答