2021/09/06
新規構築されたVMware NSX-Tの環境で、上限値試験を実施するため、一括で数十台のEdge VM(※1)とEdgeクラスタ(※2)を作成・削除が必要となります。1台のEdge VMをNSX-Tの管理GUIで作成する場合は、10分ほどかかります。かつ、繰り返して作成・削除を実施するため、自動化の仕組みが当然必要です。 自動化の仕組みとして、いくつかの選択肢がありますが:
※1: NSX-T仮想ルータ、ロードバランサーなどの機能をまとめて管理する単位です。ESXi上の仮想マシンとして作成させるため、Edge VMといいます。 ※2: 2台のEdge VMを1つのクラスタに組むことで、1台のEdge VMがダウンする際のフェールオーバーを実現されるための機能です。
公式サイト:https://www.postman.com/
左側から右まで「Request」「Collection」「Environment」の3つの「Building Block」があります:
これまで、Postmanの基本構成、操作方法を紹介しました。これから今回のメインテーマである「自動化」にまいります。 自動化操作を実現するために、以下の要素は不可欠です。
これから、Postmanでそれぞれの自動化要素をどうやって実装できるかについて共有したいと思います。
PostmanでAPIを自動化する際に、「Colletion Runner」を作成する必要があります。Runnerの作成する際に、以下のプロパティを指定します。
実際の画面の以下のようになっています。
APIを実行化されるために、Runnerで定義された変数を引用するために少し改修工事が必要です。以下の画面に示したように、「pre-request-script」タグを開いて、javascript風で変数の引用を定義します。ここの「data」オブジェクトは、CSVファイルのことを指しています。「hostname_str」や「ip_str」はCSV中の列名となっています。まずCSV中の変数を環境変数に書き換えて、実際に右側のリクエストボディ定義に、環境変数として引用できるようになります。
「Collection Runner」を作成完了後、水色の実行ボタンを押せば自動実行が始まります。以下のような画面が開いて、実行中のステータスとそれぞれの実行結果は確認できます。同じ画面で、もう一度同じ内容の再実行もOne-Clickでできますので、繰り返して試験を実施する際に便利です。
参照先:https://learning.postman.com/docs/running-collections/building-workflows/ 上記公式ドキュメントにはループと条件式のやり方は詳細に記載されています。変数の引用と同じで、実行対象のリクエストボディの中にjavascript風で定義できます。本記事の中には省略させていただきます。
今までAPI自動化を実装する際に、基本Bashとpythonで行いましたが、勉強コストが少ない、かつデバッグしやすい観点で、GUIの自動化ツールである「Postman」を試しました。同じニーズがあるエンジニア同士に自分の経験を共有する目的で、この記事を投稿しました。今後、さらに高度的な使い方、もっと便利な機能を掘り出して、再び皆さんと共有できればいいと思います。