CIパイプラインでのPostmanコレクションの実行
導入
アプリケーション開発やテストに携わっている場合は、APIのエンドポイントをテストするためにPostmanを使っていたでしょう.この投稿では、サンプルエンドポイントを作成し、エンドポイント用のPostmanテストを作成し、その変更をプッシュするたびに、これらのPostmanテストを実行するためのGithubワークフローを作成します.我々が歩くコードはmy repoにも見受けられる.
それで始めましょう.
アプリ
この記事のポイントは、郵便配達人のテストを作成し、それらをパイプラインで実行することを通じて歩くので、私はサンプルアプリで多くの時間を過ごすつもりはない.エンドポイントをすぐに立ち上げるには、JSON serverというオープンソースツールを使っています.
私は、あなたにJSONサーバーがあなたのためにすることができるすべてのものすごいものを言う誘惑を避けます.今のところ、私はちょうどDockerとJSONファイルで完全に機能的なエンドポイントを回転させることができると言います.
このエンドポイントはかなり基本的になり、albumsのリストに基本的なCRUDオペレーションを提供します.
JSONファイルは次のようになります.
{
"albums": [
{
"id": 1,
"artist": "The Beatles",
"title": "Please Please Me",
"year": "1963"
},
{
"id": 2,
"artist": "The Beatles",
"title": "With the Beatles",
"year": "1963"
},
{
"id": 3,
"artist": "The Beatles",
"title": "A Hard Day's Night",
"year": "1964"
},
{
"id": 4,
"artist": "The Beatles",
"title": "Beatles for Sale",
"year": "1964"
},
{
"id": 5,
"artist": "The Beatles",
"title": "Help!",
"year": "1965"
},
{
"id": 6,
"artist": "The Beatles",
"title": "Rubber Soul",
"year": "1965"
},
{
"id": 7,
"artist": "The Beatles",
"title": "Revolver",
"year": "1966"
},
{
"id": 8,
"artist": "The Beatles",
"title": "Sgt. Pepper's Lonely Hearts Club Band",
"year": "1967"
},
{
"id": 9,
"artist": "The Beatles",
"title": "The Beatles (White Album)",
"year": "1968"
},
{
"id": 10,
"artist": "The Beatles",
"title": "Yellow Submarine",
"year": "1969"
},
{
"id": 11,
"artist": "The Beatles",
"title": "Abbey Road",
"year": "1969"
},
{
"id": 12,
"artist": "The Beatles",
"title": "Let It Be",
"year": "1970"
}
]
}
このファイル( Docker )で、このようにエンドポイントを起動できます.
docker run -d -p 3005:80 -v /Users/denniswhalen/postman-workflow/db.json:/data/db.json clue/json-server
あなたは、現在、http://localhost:3005/albumsで終点についてでなければなりません
いくつかのデータを取得すると、Postmanテストを作成できます.
郵便配達人のテスト
郵便配達人に精通していると思います.あなたが始めるためにチェックアウトすることができないならば、そして、もちろん、あなたを始めるために利用できる多くの他のすばらしい資源は、もちろんあります.
私の最初のテストは、http://localhost:3005/albumsにGETリクエストを行い、ステータスコード200の応答を取得し、応答のスキーマを検証することを確認します.
Postmanリクエストのテストは次のようになります.
私はスキーマを検証しているこのクールな小さいPostmanテストについてはとても良いですが、スキーマ検証のためにPostmanを使用したことがないなら、それは間違いなくいくつかの研究の価値があります.参考までに、私は期待されたスキーマを生成するためにhttps://www.liquid-technologies.com/online-json-to-schema-converterを使いました.
一旦私が郵便マンテストを完了して、それがそうしなければならないとき、テストパスを確かめて、失敗するならば、私はそれを私のコードRPOに加えます.どのようなrepoあなたは言う?よく、私は私がまだ言及していないと思います、しかし、我々は我々の郵便配達人収集を保存するつもりですgithubレポ.そのためには、JSONファイルとしてコレクションをエクスポートするためにPostmanを使用する必要があります.
この変更をGithub , Boomにプッシュすると、ワークフローは実行されません.
もちろん.まだワークフローを作成していないからです.コードが押されるたびに、我々はPostmanテストを実行するワークフローを望みます.Postmanテストが失敗した場合、ビルドは失敗します.ワークフローを作りましょう.
ワークフロー
Githubがワークフローファイルを見つけるのを許容するために、ファイルは./.github/workflows
フォルダにある必要があります.私は私のファイルworkflow.yml
に名前を付けます、しかし、名前は重要でありません.ファイル拡張子( .yml
または.yaml
)とファイル位置の問題だけです.
を見てみましょう.このワークフローのためのYMLファイル
name: run Postman API tests
on:
push:
branches:
- 'main'
- 'feature/**'
paths-ignore:
- 'Postman Collections/**'
pull_request:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: start the app
run: |
docker run -d -p 3005:80 -v ${{ github.workspace }}/db.json:/data/db.json clue/json-server
- name: run postman tests
uses: matt-ball/newman-action@master
with:
collection: "Postman Collections/albums.json"
このワークフローはかなり基本的であり、うまくいけば「ビルド」ジョブのステップは意味をなす.
この記事のポイントは、郵便配達人のテストを作成し、それらをパイプラインで実行することを通じて歩くので、私はサンプルアプリで多くの時間を過ごすつもりはない.エンドポイントをすぐに立ち上げるには、JSON serverというオープンソースツールを使っています.
私は、あなたにJSONサーバーがあなたのためにすることができるすべてのものすごいものを言う誘惑を避けます.今のところ、私はちょうどDockerとJSONファイルで完全に機能的なエンドポイントを回転させることができると言います.
このエンドポイントはかなり基本的になり、albumsのリストに基本的なCRUDオペレーションを提供します.
JSONファイルは次のようになります.
{
"albums": [
{
"id": 1,
"artist": "The Beatles",
"title": "Please Please Me",
"year": "1963"
},
{
"id": 2,
"artist": "The Beatles",
"title": "With the Beatles",
"year": "1963"
},
{
"id": 3,
"artist": "The Beatles",
"title": "A Hard Day's Night",
"year": "1964"
},
{
"id": 4,
"artist": "The Beatles",
"title": "Beatles for Sale",
"year": "1964"
},
{
"id": 5,
"artist": "The Beatles",
"title": "Help!",
"year": "1965"
},
{
"id": 6,
"artist": "The Beatles",
"title": "Rubber Soul",
"year": "1965"
},
{
"id": 7,
"artist": "The Beatles",
"title": "Revolver",
"year": "1966"
},
{
"id": 8,
"artist": "The Beatles",
"title": "Sgt. Pepper's Lonely Hearts Club Band",
"year": "1967"
},
{
"id": 9,
"artist": "The Beatles",
"title": "The Beatles (White Album)",
"year": "1968"
},
{
"id": 10,
"artist": "The Beatles",
"title": "Yellow Submarine",
"year": "1969"
},
{
"id": 11,
"artist": "The Beatles",
"title": "Abbey Road",
"year": "1969"
},
{
"id": 12,
"artist": "The Beatles",
"title": "Let It Be",
"year": "1970"
}
]
}
このファイル( Docker )で、このようにエンドポイントを起動できます.docker run -d -p 3005:80 -v /Users/denniswhalen/postman-workflow/db.json:/data/db.json clue/json-server
あなたは、現在、http://localhost:3005/albumsで終点についてでなければなりませんいくつかのデータを取得すると、Postmanテストを作成できます.
郵便配達人のテスト
郵便配達人に精通していると思います.あなたが始めるためにチェックアウトすることができないならば、そして、もちろん、あなたを始めるために利用できる多くの他のすばらしい資源は、もちろんあります.
私の最初のテストは、http://localhost:3005/albumsにGETリクエストを行い、ステータスコード200の応答を取得し、応答のスキーマを検証することを確認します.
Postmanリクエストのテストは次のようになります.
私はスキーマを検証しているこのクールな小さいPostmanテストについてはとても良いですが、スキーマ検証のためにPostmanを使用したことがないなら、それは間違いなくいくつかの研究の価値があります.参考までに、私は期待されたスキーマを生成するためにhttps://www.liquid-technologies.com/online-json-to-schema-converterを使いました.
一旦私が郵便マンテストを完了して、それがそうしなければならないとき、テストパスを確かめて、失敗するならば、私はそれを私のコードRPOに加えます.どのようなrepoあなたは言う?よく、私は私がまだ言及していないと思います、しかし、我々は我々の郵便配達人収集を保存するつもりですgithubレポ.そのためには、JSONファイルとしてコレクションをエクスポートするためにPostmanを使用する必要があります.
この変更をGithub , Boomにプッシュすると、ワークフローは実行されません.
もちろん.まだワークフローを作成していないからです.コードが押されるたびに、我々はPostmanテストを実行するワークフローを望みます.Postmanテストが失敗した場合、ビルドは失敗します.ワークフローを作りましょう.
ワークフロー
Githubがワークフローファイルを見つけるのを許容するために、ファイルは./.github/workflows
フォルダにある必要があります.私は私のファイルworkflow.yml
に名前を付けます、しかし、名前は重要でありません.ファイル拡張子( .yml
または.yaml
)とファイル位置の問題だけです.
を見てみましょう.このワークフローのためのYMLファイル
name: run Postman API tests
on:
push:
branches:
- 'main'
- 'feature/**'
paths-ignore:
- 'Postman Collections/**'
pull_request:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: start the app
run: |
docker run -d -p 3005:80 -v ${{ github.workspace }}/db.json:/data/db.json clue/json-server
- name: run postman tests
uses: matt-ball/newman-action@master
with:
collection: "Postman Collections/albums.json"
このワークフローはかなり基本的であり、うまくいけば「ビルド」ジョブのステップは意味をなす.
Githubがワークフローファイルを見つけるのを許容するために、ファイルは
./.github/workflows
フォルダにある必要があります.私は私のファイルworkflow.yml
に名前を付けます、しかし、名前は重要でありません.ファイル拡張子( .yml
または.yaml
)とファイル位置の問題だけです.を見てみましょう.このワークフローのためのYMLファイル
name: run Postman API tests
on:
push:
branches:
- 'main'
- 'feature/**'
paths-ignore:
- 'Postman Collections/**'
pull_request:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: start the app
run: |
docker run -d -p 3005:80 -v ${{ github.workspace }}/db.json:/data/db.json clue/json-server
- name: run postman tests
uses: matt-ball/newman-action@master
with:
collection: "Postman Collections/albums.json"
このワークフローはかなり基本的であり、うまくいけば「ビルド」ジョブのステップは意味をなす.24579142ファイルをRPOに追加してプッシュした後、Githubのアクションタブを実行しているワークフローが表示されます.
うまくいけば、テストビルドが成功したことを示します.
「ランニング・ポストマン・ステップ」ステップを開くと、PostMenのテスト結果についてもっと詳細を見ることができます.
包む
そこで、私たちが行くので、エンドポイントを作成し、クールなPostmanテストを書いて、テストを実行するには、ワークフローを持つrepoを作成しました.それはあまりにも苦痛ではなかった?
私たちの例では、Postson CollectionをJSONにエクスポートして、他のファイルと同じようにrepoに追加しました.ポストマンコレクションに対処するための他のオプションがいくつかあります.
私がここで話したコードはmy repoにあります.
そして、最終的に、私の将来のポストのために通知を得るために、subscribe to my blog siteに自由に感じてください.ありがとう
Reference
この問題について(CIパイプラインでのPostmanコレクションの実行), 我々は、より多くの情報をここで見つけました https://dev.to/leading-edje/running-a-postman-collection-in-a-github-workflow-47keテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol