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
140
テストに使う Clientは curlから Postmanへ
Postman Tokyo Meetup 2024.2での発表資料です。
https://postman.connpass.com/event/307592/
NobuhitoMorioka
February 27, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
150
Babylon.js JAPAN活動紹介 (2024/4)
limes2018
1
120
AWS学習者向けにAzureの解説スライドを作成した話
handy
3
190
地理空間データ可視化・解析・活用ソリューション Pacific Spatial Solutions (PSS)
pacificspatialsolutions
0
330
いいたいことちゃんという
tkengo
0
230
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
7
3.9k
web-application-security
matsuihidetoshi
1
190
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
400
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
7
1.3k
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
160
MixIT 2024 - Pulumi : Gérer son infra avec son langage de programmation préféré
ju_hnny5
1
120
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
450
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Web Components: a chance to create the future
zenorocha
306
41k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
Building an army of robots
kneath
300
41k
Building Your Own Lightsaber
phodgson
100
5.7k
Infographics Made Easy
chrislema
238
18k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
14
1.5k
Thoughts on Productivity
jonyablonski
60
3.9k
Raft: Consensus for Rubyists
vanstee
133
6.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に対してだけじゃない 第三部:ちょっと変わった(?)使い方
ありがとうございました。