LoginSignup
2
1

Postman Advent Calendar 2023 シリーズ2 1日目の記事として投稿

APIプラットフォーム Postmanのオンラインワークショップ テスト自動化 #3

普段はSalesforceでしか遊んでいないので、Postmanの操作にもたつきます。忘れないうちに復習を兼ねて操作を記録しておきます。

私の場合はWeb版にログインしました。

個人用のワークスペースは存在していたので、新規作成せずにそのまま使います。

ラーニング教材をワークスペースにフォーク

ここから、素早く操作できませんね。クリックするところを探しながら... 不得意な英語の画面です(長時間は無理です。拒絶反応が出ます)。

  • まずは、今回使うフォーク対象コレクションを探します。Postman Japan Workshop をクリックします。

image.png

  • ... をクリックします。

image.png

  • Create a fork をクリックします。

image.png

  • Fork Collection をクリックします。

image.png

  • 以下のような画面が表示されればforkは成功です。

image.png

  • シナリオテスト、パフォーマンステストをクリックすると以下になります。

image.png

スクリプトを試す

  • Variablesを確認してみましょう。2つの変数が定義されていることが分かります。

image.png

  • Sendボタンをクリックすると実行されます。

image.png

  • テストタブをクリックして、シナリオテスト POST registerのTestsにスプリクトを追加します。Test Resultsをクリックすると結果が表示されます。
pm.test("An access token is returned", () => {
   pm.expect(pm.response.json()).to.have.property('token')
   pm.expect(pm.response.json().token).to.be.a('string')
})

image.png

  • コレクションに変数を追加するためのコードを追加します
pm.test("An access token is returned", () => {
pm.expect(pm.response.json()).to.have.property('token')
pm.expect(pm.response.json().token).to.be.a('string')
pm.collectionVariables.set('token', pm.response.json().token)
})

image.png

  • 実行(Sendをクリック)してから、変数を確認してみます。Tokenの現在値がセットされています。

image.png

  • シナリオテスト GET Get NameのTestsにスクリプトを追加します。
pm.test("A name is returned", () => {
  pm.expect(pm.response.json()).to.have.property('name');
  pm.expect(pm.response.json().name).to.be.a('string');
})

image.png

  • シナリオテスト GET Get NameのPre-requestにスクリプトを追加します。
console.log(pm.collectionVariables.get("token"));

image.png

  • Consoleをクリックするとコンソールログが表示できます。

image.png

image.png

  • Tokenの現在値を削除してエラーになるかを確かめます。シナリオテスト GET Get NameのPre-requestにスクリプトを上書きします。
if (!pm.collectionVariables.get("token")) {
   console.log("No token is set, so send a request to Register to get one");
   
   pm.sendRequest({
     url: 'https://postman-integration-testing.glitch.me/register',
     method: 'POST'
   }, function (err, response) {
   if (err) {
      console.error(err);
      return;
   }
   pm.collectionVariables.set('token', response.json().token);
});
}

image.png

  • 変数tokenの偏在値を削除します。削除アイコンをクリックすると、変数が削除されるので気お付けてください。値のところにマウスを持っていき消します。(私は消してしまいました...)

image.png

image.png

  • 結果はエラーになっています。正しく処理されていることが分かります。

image.png

  • もう一度 シナリオテスト POST registerのTestsにスプリクトを実行して、成功するかを確かめます。

image.png

コレクションランナーでテスト

  • シナリオテストの... を選択してRun folderをクリックします。

image.png

  • Run ワークショップ - テスト自動化をクリックします。(あっ、日本語になっている。)

Iterationでテストを繰り返す回数を指定できます。
Delay でテストを繰り返す場合の間隔を指定できます。

image.png

  • 2回実行した例

image.png

  • 実行方法も指定できます。今回は手動(Run manually)を指定しています。

image.png

  • CLIを選択すると、コマンドが表示されるので、コピーして使えます。

image.png

実行例
image.png

  • パフォーマンステストはWEB版ではできないようです。デスクトップ版を使ってください

WEB版の画面
image.png

デスクトップ版の画面
image.png

  • ファイルを使ってデータも使えるみたい

image.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1