Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ChatGPT x Postmanを活用してAPI定義〜テストワークフロー化までを5分で紹介してみる

kazuhiro-togo
December 12, 2023

ChatGPT x Postmanを活用してAPI定義〜テストワークフロー化までを5分で紹介してみる

2023/12/13 Postmanイベント時に使う資料
https://findy.connpass.com/event/302256/

kazuhiro-togo

December 12, 2023
Tweet

More Decks by kazuhiro-togo

Other Decks in Technology

Transcript

  1. © ASOVIEW Inc. 3 宣伝
 アドベントカレンダー盛り上がってます! 
 asoview! tech blog


    https://tech.asoview.co.jp/
 週末のお出かけ探しなら 
 asoview.com
 https://www.asoview.com/

  2. © ASOVIEW Inc. 4 今日のテーマ(Postman x ChatGPTでAPI定義〜ワークフローテスト)の背景 
 1. 開発中のプロダクトでコアな部分を改修したあとに、

    関連する API をひと通り動作確認したい(ワー クフローテスト)と思っていました。 普段、開発環境の API を叩く際に Postman を使っており、これ を使って自動化できないか試してみました。 
 2. 自動化がうまくいったのでこれをテックブログに書こうと思いました。ブログ用に PostmanのAPIリク エストを新規作成するの手間だなと思って Postmanの機能調べていたらOpenAPIを読み込んで APIリクエストを作成できることを知りました。
 3. OpenAPI書こうとなったけどやっぱ面倒だなと思って、 ChatGPTに依頼したらうまくいったのでこれ らを今日の登壇内容のテーマにしようと思いました。 
 4. せっかくなので使ってみたかった Mockサーバー機能も入れ込んでみた。

  3. © ASOVIEW Inc. 5 今日の流れ
 1. API定義作成(ChatGPT)         1 min
 2.

    API定義を読み込む(Postman)      0.5 min
 3. ワークフローテストを作る(Postman)  2.5 min
 a. リクエストの並び替え
 b. Mock用のレスポンスを作る
 c. テストを書く
 4. Mockサーバーを用意する(Postman) 0.5 min 
 5. テスト実行(Postman) 0.5 min
 めちゃめちゃ早足なので詳細は追わず   
 雰囲気感じてください!

  4. © ASOVIEW Inc. 6 今日の流れ
 1. API定義作成(ChatGPT)         1 min
 2.

    API定義を読み込む(Postman)      0.5 min
 3. ワークフローテストを作る(Postman)  2.5 min
 a. リクエストの並び替え
 b. Mock用のレスポンスを作る
 c. テストを書く
 4. Mockサーバーを用意する(Postman) 0.5 min 
 5. テスト実行(Postman) 0.5 min

  5. © ASOVIEW Inc. 7 API定義作成(ChatGPT)
 openapi: 3.0.0 info: title: 商品管理システムAPI

    version: 1.0.0 paths: /products: get: summary: 商品一覧取得 responses: '200': description: 成功。商品一覧を取得します。 content: application/json: example: - id: 1 name: "商品A" price: 1000 - id: 2 name: "商品B" price: 1200 post: summary: 商品登録 requestBody: description: 商品情報 required: true content: application/json: example: name: "新しい商品" price: 1500 description: "新しい商品の説明" responses: '201': description: 成功。新しい商品が登録されました。 content: application/json: example: id: 3 name: "新しい商品" price: 1500 /products/{productId}: get: summary: 商品取得 parameters: - in: path name: productId required: true description: 取得する商品のID schema: type: integer responses: '200': description: 成功。指定された商品を取得します。 content: application/json: example: id: 1 name: "商品A" price: 1000 put: summary: 商品更新 parameters: - in: path name: productId required: true description: 更新する商品のID schema: type: integer requestBody: description: 更新する商品情報 required: true content: application/json: example: name: "更新後商品A" price: 1200 description: "更新後商品Aの説明" responses: '200': description: 成功。指定された商品が更新されました。 content: application/json: example: id: 1 name: "更新後商品A" price: 1200 delete: summary: 商品削除 parameters: - in: path name: productId required: true description: 削除する商品のID schema: type: integer responses: '204': description: 成功。指定された商品が削除されました。 productmanagement.yamlとして保存
  6. © ASOVIEW Inc. 8 今日の流れ
 1. API定義作成(ChatGPT)         1 min
 2.

    API定義を読み込む(Postman)      0.5 min
 3. ワークフローテストを作る(Postman)  2.5 min
 a. リクエストの並び替え
 b. Mock用のレスポンスを作る
 c. テストを書く
 4. Mockサーバーを用意する(Postman) 0.5 min 
 5. テスト実行(Postman) 0.5 min

  7. © ASOVIEW Inc. 11 今日の流れ
 1. API定義作成(ChatGPT)         1 min
 2.

    API定義を読み込む(Postman)      0.5 min
 3. ワークフローテストを作る(Postman)  2.5 min
 a. リクエストの並び替え
 b. Mock用のレスポンスを作る
 c. テストを書く
 4. Mockサーバーを用意する(Postman) 0.5 min 
 5. テスト実行(Postman) 0.5 min

  8. © ASOVIEW Inc. 12 ワークフローテストを作る(テスト内容)
 今回の例では以下の順で機能を呼び出して商品管理の一連の機能をテストしてみます。 
 No.
 機能
 テスト内容


    1
 商品登録
 ステータスコードが201であることを確認する
 2
 商品取得
 ステータスコードが200であることを確認する
 登録した商品名であることを確認する
 3
 商品更新
 ステータスコードが200であることを確認する
 4
 商品取得
 ステータスコードが200であることを確認する
 更新した商品名であることを確認する
 5
 商品削除
 ステータスコードが204であることを確認する 
 6
 商品取得
 ステータスコードが404であることを確認する

  9. © ASOVIEW Inc. 13 今日の流れ
 1. API定義作成(ChatGPT)         1 min
 2.

    API定義を読み込む(Postman)      0.5 min
 3. ワークフローテストを作る(Postman)  2.5 min
 a. リクエストの並び替え
 b. Mock用のレスポンスを作る
 c. テストを書く
 4. Mockサーバーを用意する(Postman) 0.5 min 
 5. テスト実行(Postman) 0.5 min

  10. © ASOVIEW Inc. 15 今日の流れ
 1. API定義作成(ChatGPT)         1 min
 2.

    API定義を読み込む(Postman)      0.5 min
 3. ワークフローテストを作る(Postman)  2.5 min
 a. リクエストの並び替え
 b. Mock用のレスポンスを作る
 c. テストを書く
 4. Mockサーバーを用意する(Postman) 0.5 min 
 5. テスト実行(Postman) 0.5 min

  11. © ASOVIEW Inc. 16 ワークフローテスト(Mock用のレスポンスを作る)
 • レスポンス例はMockのレスポンスとして使われる
 • Mockはかなり奥が深いので多くは触れない 


    ◦ https://learning.postman.com/docs/desig ning-and-developing-your-api/mocking-d ata/matching-algorithm/
 
 • 今回の例では意図したレスポンスが返却されるようにレ スポンス名を一意になるように作っておく 

  12. © ASOVIEW Inc. 19 今日の流れ
 1. API定義作成(ChatGPT)         1 min
 2.

    API定義を読み込む(Postman)      0.5 min
 3. ワークフローテストを作る(Postman)  2.5 min
 a. リクエストの並び替え
 b. Mock用のレスポンスを作る
 c. テストを書く
 4. Mockサーバーを用意する(Postman) 0.5 min 
 5. テスト実行(Postman) 0.5 min

  13. © ASOVIEW Inc. 27 今日の流れ
 1. API定義作成(ChatGPT)         1 min
 2.

    API定義を読み込む(Postman)      0.5 min
 3. ワークフローテストを作る(Postman)  2.5 min
 a. リクエストの並び替え
 b. Mock用のレスポンスを作る
 c. テストを書く
 4. Mockサーバーを用意する(Postman) 0.5 min 
 5. テスト実行(Postman) 0.5 min

  14. © ASOVIEW Inc. 31 今日の流れ
 1. API定義作成(ChatGPT)         1 min
 2.

    API定義を読み込む(Postman)      0.5 min
 3. ワークフローテストを作る(Postman)  2.5 min
 a. リクエストの並び替え
 b. Mock用のレスポンスを作る
 c. テストを書く
 4. Mockサーバーを用意する(Postman) 0.5 min 
 5. テスト実行(Postman) 0.5 min

  15. © ASOVIEW Inc. 35 まとめ
 今日紹介した機能を使えば
 
 • API定義簡単に作れるよ
 •

    ワークフローテストも作れるよ
 • バックエンドなしでもAPI開発始められるよ
 
 Postmanの機能はまだまだたくさんあります! 
 こんな機能ないかな?と思ったら是非探してみてください! 
 
 
  次のパイオニアはあなた達です!

  16. © ASOVIEW Inc. 36 宣伝
 • バックエンドエンジニア(刷新 or 基盤)
 •

    SREエンジニア
 • データ基盤エンジニア
 • セキュリティエンジニア etc.
 その他、オープンポジションでの応募も大歓迎です!
 通年でエンジニア採用強化中です!
 「アソビュー 採用」で検索!