Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
テストに使う Clientは curlから Postmanへ
Search
NobuhitoMorioka
February 27, 2024
Technology
1
410
テストに使う Clientは curlから Postmanへ
Postman Tokyo Meetup 2024.2での発表資料です。
https://postman.connpass.com/event/307592/
NobuhitoMorioka
February 27, 2024
Tweet
Share
More Decks by NobuhitoMorioka
See All by NobuhitoMorioka
CDKのコードを書く環境を作りました with Amazon Q
nobuhitomorioka
1
340
Other Decks in Technology
See All in Technology
知られざるprops命名の慣習 アクション編
uhyo
10
2.4k
夢の印税生活 / Life on Royalties
tmtms
0
280
JOAI発表資料 @ 関東kaggler会
joai_committee
1
260
EKS Pod Identity における推移的な session tags
z63d
1
200
どこで動かすか、誰が動かすか 〜 kintoneのインフラ基盤刷新と運用体制のシフト 〜
ueokande
0
180
[OCI Skill Mapping] AWSユーザーのためのOCI(2025年8月20日開催)
oracle4engineer
PRO
2
140
TypeScript入門
recruitengineers
PRO
8
1.4k
実践アプリケーション設計 ②トランザクションスクリプトへの対応
recruitengineers
PRO
2
140
新卒(ほぼ)専業Kagglerという選択肢
nocchi1
1
2.1k
OpenAPIから画面生成に挑戦した話
koinunopochi
0
150
Goss: New Production-Ready Go Binding for Faiss #coefl_go_jp
bengo4com
0
1.1k
VPC Latticeのサービスエンドポイント機能を使用した複数VPCアクセス
duelist2020jp
0
180
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Automating Front-end Workflow
addyosmani
1370
200k
Designing Experiences People Love
moore
142
24k
BBQ
matthewcrist
89
9.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Thoughts on Productivity
jonyablonski
69
4.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Building an army of robots
kneath
306
46k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Writing Fast Ruby
sferik
628
62k
The Art of Programming - Codeland 2020
erikaheidi
55
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Transcript
テストに使う Clientは curlから Postmanへ CTCテクノロジー株式会社 森岡 延史
前置き 本日話す内容は私個人の見解や意見に 基づいたものです。 私が所属している会社や組織の公式見解を 代表するものではありません。 この資料の内容は私個人の意見であり、 所属組織とは一切関係ありません。 初めに
自己紹介 名前:森岡 延史(もりおか のぶひと) 所属:CTCテクノロジー株式会社 職種:ハイレイヤー系ネットワーク製品の 社内バックサポート, トラシュー,ベンダー問い合わせ 肩書:エキスパートエンジニア 趣味:サバイバルゲーム
初めに
curlは非常に強力で素晴らしいツールです。 でもそれを一度 捨てて Postmanを 使ってみてはいかがでしょうか。 第一部:curlを使っているけれど・・・ 第二部:Postmanに変えてみた。 第三部:ちょっと変わった(?)使い方 本日話す内容 初めに
第一部:curlを使っているけれど・・・
社名:CTCテクノロジー株式会社 株主:伊藤忠テクノソリューションズ 株式会社(100%) 業務:コンピュータシステムの 設置及びメンテナンス 設計・構築 システム運用管理、障害監視 技術的コンサルティング 技術トレーニング,スクール 所属会社について
第一部:curlを使っているけれど・・・ 全国にサービス拠点 社員数 約1,700名
扱っている製品の例 所属会社について 第一部:curlを使っているけれど・・・ ハードウェア サーバ Cisco、Dell EMC、富士通、HPE、Huawei、IBM、Infoblox、Oracle Sun、Stratus ストレージ Dell
EMC、富士通、日立、HPE、Huawei、NetApp、Oracle、PureStorage ネットワーク A10、ALAXALA、Allot、APRESIA、Arista、Aruba、AVAYA、Brocade、Cisco、Citrix、 F5、Fortinet、Huawei、Juniper、Palo Alto、Radware、YAMAHA セキュリティ BlueCoat、Palo Alto HCI HPE Simplivity、Nutanix NXシリーズ APIにあまり関係ないように見えるかも しれません。
近年、運用統合や自動化, Infrastructure as Code(IaC)といった 文脈で、取り扱っている製品に APIが実装されるようになりました。 その結果、APIの仕様にかかわる質問や 動作のトラブルシューティングに対応する 機会が生まれました。 APIとの関わりについて
第一部:curlを使っているけれど・・・
私が関わっている多くの機器で APIはHTTP/HTTPSで実装されて います。 それらのマニュアルではcurlを使って 操作をする例が書かれています。 curlで動かすことはできるけれど、 curlだとしんどいことも分かって きました。 curlを使ってAPIを触っているけれど・・・ 第一部:curlを使っているけれど・・・
とある製品での設定例
マニュアルからのURLのコピペや、認証で得られるSecretのコピペを 何度もするのがしんどい。 コピペがしんどい 第一部:curlを使っているけれど・・・ メモ帳にコピペ メモ帳でコマンド作成 コピペして実行
毎日APIに関わっている訳ではありません。 いざ触るときにcurlのオプションが分からず、毎回検索していました。 オプションがしんどい 第一部:curlを使っているけれど・・・
検証結果のエビデンスを求められたり別の条件でのテストが必要になると、 記憶を頼りにコマンドを作って再試験していました。 再試験がしんどい 第一部:curlを使っているけれど・・・
ミートアップに参加したことで、テストに使うClientをPostmanに変えました。 ツールを変えよう 第一部:curlを使っているけれど・・・
第二部:Postmanに変えてみた。
Postmanの初期操作 第二部:Postmanに変えてみた。 ユーザー登録をしてログインした状態
Postmanの初期操作 第二部:Postmanに変えてみた。 APIや実施内容ごとに枠組みを作成
Postmanの初期操作 第二部:Postmanに変えてみた。 APIへのリクエストを作成
Postmanの初期操作 第二部:Postmanに変えてみた。 リクエスト内容を作って Sendを押して、テスト実行
実行するリクエストを保存できるので、マニュアルからのコピペの頻度を 少なくできます。 リクエスト保存でコピペ解消 第二部:Postmanに変えてみた。
レスポンスからSecret情報を自動で環境変数に取り込んで再利用できます。 スクリプトでコピペ解消 第二部:Postmanに変えてみた。 レスポンスに対してスクリプトを実行 Secret情報を自動で環境変数に取り込み
レスポンスからSecret情報を自動で環境変数に取り込んで再利用できます。 スクリプトでコピペ解消 第二部:Postmanに変えてみた。 取り込んだSecret情報をリクエストで再利用
使いたいメソッドやヘッダ、ボディを指定する箇所が分かりやすい。 オプションの学習が不要 第二部:Postmanに変えてみた。 メソッドの 選択 ヘッダの設定 ボディの設定
リクエストがHistoryに残るので、内容を参照したり再利用したりできます。 過去の試験内容が見られる 第二部:Postmanに変えてみた。 History機能 過去に送信したリクエストを 読み出して確認可能
リクエストがHistoryに残るので、内容を参照したり再利用したりできます。 過去の試験内容が見られる 第二部:Postmanに変えてみた。 読みだしたリクエストは 送信や保存可能
私のように毎日APIを触るという訳でない 人にとって、curlは再学習コストが高い ツールだと感じました。 Postmanを繰り返し使うことで、 より高い効率化が期待できます。 Freeプランがあるので気軽に使って みましょう。 Postmanを使ってみて 第二部:Postmanに変えてみた。
従来使っていたコマンドをインポートしてPostmanで使えます。 curlコマンドのインポート機能 第二部:Postmanに変えてみた。 コマンドをコピペ
コマンドを自動で解釈してリクエストを作成 curlコマンドのインポート機能 第二部:Postmanに変えてみた。
第三部:ちょっと変わった(?)使い方
HTTP/1.1で実装された機能に Keep-aliveがあります。 1つのセッションの中で複数のリクエストを送信する ものでClientとServer間のやり取りが効率的になります。 一方でServerの設定を変更しても既存セッションでは その変更が反映されず、テストにおいて手動での セッション切断が必要になる場合がありました。 Keep-aliveを無効化する 第三部:ちょっと変わった(?)使い方
HeaderにてConnection closeとすることでKeep-aliveを無効化できます。 Keep-aliveを無効化する 第三部:ちょっと変わった(?)使い方
特定URLへのリクエストにおいてClient証明書と秘密鍵を使う設定を行います。 HTTPSのClient証明書認証を行う 第三部:ちょっと変わった(?)使い方 設定を開きます
第三部:ちょっと変わった(?)使い方 特定URLへのリクエストにおいてClient証明書と秘密鍵を使う設定を行います。 HTTPSのClient証明書認証を行う 証明書の設定を開きます 証明書の追加を開きます
第三部:ちょっと変わった(?)使い方 特定URLへのリクエストにおいてClient証明書と秘密鍵を使う設定を行います。 HTTPSのClient証明書認証を行う 接続先のURLと使用する Client証明書/秘密鍵を指定して 追加
PostmanでClient証明書認証ができました。 HTTPSのClient証明書認証を行う 第三部:ちょっと変わった(?)使い方
設定にて、無効化するTLSバージョンや使用するCipherの限定ができます。 HTTPSで使用するTLS/Cipherを指定する 第三部:ちょっと変わった(?)使い方
設定にて、無効化するTLSバージョンや使用するCipherの限定ができます。 HTTPSで使用するTLS/Cipherを指定する 第三部:ちょっと変わった(?)使い方 この場合 TLS1.1を使い、 CipherはRSA関連を使う
PostmanをAPIのテストをする ツールとしてだけでなく、 HTTP/HTTPSを柔軟に扱える ツールととらえると、 利用できるシーンが増えます。 本日紹介した内容はあくまでも一例です。 Postmanを利活用しましょう。 Postmanが使えるのはAPIに対してだけじゃない 第三部:ちょっと変わった(?)使い方
ありがとうございました。