オンプレミス環境でmablを動かせる"mabl Link"を使ってみる

自動テストSaaSはクラウドツールという特性上、プライベートネットワーク(オンプレミス)環境上のアプリケーションに対してテスト実行できないことがしばしば。固定IPを振ってファイアウォール等の設定をしたりするのもぼちぼち面倒ですよね。

しかしmablにはmabl Linkという専用のトンネリングツールが用意されており、オンプレミス環境のサーバ上で動作するアプリケーションに対して簡単にテスト実行をすることができます。
この記事ではその具体的なやり方を解説します。

## mabl Linkの仕組み

mabl Linkの仕組みについては[公式ガイド: Secure tunneling with mabl Link](https://help.mabl.com/docs/introduction-to-mabl-link)の画像がとてもわかりやすいのでこれを引用させていただきます。

![69d740f-mabl_Link.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527184/536be1c0-47c1-2d0e-e1c9-945b9f069131.png)

この画像にある通り、"mabl Link Agent"というトンネリングツールを、プライベートネットワークに接続した端末上で動作させることで、mablクラウドから端末を経由してテスト対象のアプリケーション(SUT)にアクセスするというものになります。

## 使い方

ここからは[公式ガイド: Using mabl Link](https://help.mabl.com/docs/using-mabl-link)に沿って作業を進めます。

### 前提条件

- mablのアカウントがある
- Dockerをインストール済である

今回mabl Link AgentはDockerを利用して動作させます。先にDockerをインストールをしておいてください。

### 1. WorkspaceにアクセスするAPIキーを作成する

mablにログインし、`Setttings > APIS`と進みます。
緑色の"CREATE API KEY"ボタンを押します。

![スクリーンショット_2020-12-10_14_10_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527184/0ff70a9e-1834-7d23-c6ca-b55554ad3616.png)

"Type of API key"の項目は"Link Agent"に、"Name"は任意のものに設定しCREATEを押します。

![スクリーンショット_2020-12-10_14_10_40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527184/199d9996-2157-a216-e910-a6c0b941c043.png)

そうすると設定したNameでAPIキーが発行されるので、Keyをコピーしてメモ帳などに控えておきます。

### 2. Link Agentの実行

続いてLink Agentをダウンロードし実行します。
なお、この手順は[公式ガイド: Link with Docker](https://help.mabl.com/docs/using-mabl-link-with-docker)、及び[DockerHub: mablhq/link-agent](https://hub.docker.com/r/mablhq/link-agent/)に記載されています。

まず次のコマンドをメモ帳などにコピーします。

```shell
docker run mablhq/link-agent --api-key <your-api-key> --name <agent-name>
```

次に、`<your-api-key>`となっているところを手順1で控えたAPIキーに、
`<agent-name>`となっているところは任意のものに書き換えます(手順1で設定したNameと同じにするのがよいかもしれません)。

最後に書き換えたコマンドをコピーし、任意のシェルで実行します。
するとLink Agentを勝手にダウンロード・インストールし、実行してくれます。

### 3. mabl上でLink Agentの接続を確認する

念の為mabl上で接続を確認しておきましょう。
`Settings > NETWORKING`に進むと、ページ下部に手順2で設定したagent-nameが表示されているはずです。ここのStatusがConnectedになっていればLink Agentがmablに認識された状態になっています。

![スクリーンショット_2020-12-10_14_16_46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527184/52916e56-14fe-0990-00f7-d21353aa9c5b.png)

### 4. Link Agentを使うEnvironmentとApplicationを設定する

続いてmablからLink Agentに対して命令を出せるよう、実行環境に相当するEnvironmentを設定します。
mabl上で`Configuration > APPLICATIONS`と進み、緑色の"New"ボタンからEnvironmentを新規作成します。

この際、Advancedの設定にある"Use link agent"の項目にチェックをし、先ほど手順3で表示を確認したagent-nameを選択します。
こうすることでこのEnvironmentを指定したテストは全て端末上のLink Agentを介して実行されることになります。

![スクリーンショット_2020-12-10_14_17_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527184/eaf73a5a-2122-8535-08d7-0424a1ddaf2f.png)

Environmentの作成ができたら続いてApplicationの設定です。
同じく`Configuration > APPLICATIONS`の画面で、
今作成したEnvironmentとテストを作成したいApplicationがクロスするセル上のEditボタンをクリックし、プライベートネットワーク上のアプリケーションのアドレスを記載します。

![スクリーンショット_2020-12-10_14_22_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527184/60223297-c4ee-b171-0d94-bcc7e950ec68.png)

これで全ての準備が完了しました。

### 5. あとはテストを作るだけ！

あとは通常のパブリックネットワーク上のアプリケーションと同じようにテストを作って、
Environmentに手順4で作成したLink Agentを指定したものを指定して実行するだけです。

**ね、簡単でしょ？**

## 最後に：なかなかすごいぞmabl

この記事ではmablをオンプレミス環境でも簡単に利用可能にするmabl Linkという機能の使い方を紹介しました。
この機能の存在がツール採用の決め手になる会社さんも多いのではないでしょうか。

まだ日本ではあまり知られていないツールですが、非常に優秀で将来性のあるツールだと思います。気になる方は[是非トライアル](https://www.mabl.com/)を。
また[コミュニティウェビナーもある](https://mabl-japan.connpass.com/event/197045/)そうなのでこちらも是非。