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
430
テストに使う 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
370
Other Decks in Technology
See All in Technology
決済システムの信頼性を支える技術と運用の実践
ykagano
0
490
どうなる Remix 3
tanakahisateru
2
350
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
390
今日から使える AWS Step Functions 小技集 / AWS Step Functions Tips
kinunori
7
650
3年ぶりの re:Invent 今年の意気込みと前回の振り返り
kazzpapa3
0
200
“それなりに”安全なWebアプリケーションの作り方
xryuseix
0
290
Rubyist入門: The Way to The Timeless Way of Programming
snoozer05
PRO
5
320
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
7
3.7k
仕様駆動 x Codex で 超効率開発
ismk
2
1.4k
エンタープライズ企業における開発効率化のためのコンテキスト設計とその活用
sergicalsix
1
350
コンピューティングリソース何を使えばいいの?
tomokusaba
1
140
嗚呼、当時の本番環境の状態で AI Agentを再評価したいなぁ...
po3rin
0
400
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.1k
Side Projects
sachag
455
43k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Six Lessons from altMBA
skipperchong
29
4.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Into the Great Unknown - MozCon
thekraken
40
2.2k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
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に対してだけじゃない 第三部:ちょっと変わった(?)使い方
ありがとうございました。