OpenSTF を使ってリモートテスト環境を自宅に構築する

  • 14
    Like
  • 0
    Comment

OpenSTF とは

OpenSTF とは、OSS で開発が進められている Android 端末をブラウザで操作・管理するためのパッケージです。
OpenSTF を立ち上げたサーバに各種 Android 端末(ハンドセット端末、ウェア端末など)を接続することで、OpenSTF を介してリモートから端末の操作やデバッガのアタッチなど、テストに必要なあれこれが利用できるようになります。

OpenSTF サーバを作ろう

今回は、自宅等の環境で OpenSTF サーバを作ることを前提に考えます。

Ubuntu で OpenSTF を構築する場合は、Ubuntu 14.04 LTS 上での手順に従いますが、Ubuntu 16.04 LTS 上でも問題なく動作します。

環境が整ったら、以下のように OpenSTF をインストールします。

$ npm install -g stf

この後、rethinkdb と adb を立ち上げ、stf を起動します。

$ rethinkdb &
$ adb start-server
$ stf local --public-ip <ip_addr>

--public-ipには任意の IP アドレスを入力します。クライアント PC からはこの IP アドレスを打ち込んでアクセスすることになります。

VPN で OpenSTF サーバを公開する

OpenSTF を公開する際、いくつか気をつけるべきポイントがあります。

  1. ファイアウォールの設定で OpenSTF の使用するポートのほか、Android のデバッガが使うポートも開放する必要がある
  2. OpenSTF にはパスワードによるユーザ認証の機能がないため、そのままインターネット上に公開してしまうともれなく接続している端末をインターネットに大公開してしまう

1.は Ubuntu であれば、ufw の設定と、ルータ側の設定を変更します。
2.については、VPN 上でのみ公開するようにすれば、VPN にアクセス可能な人だけが OpenSTF を使える状態にできます。

VPN を利用する場合は、OpenVPN を Ubuntu でセットアップする手順を参考にすると良いでしょう。

この他、必要に応じて SSH サーバを立てたり、DDNS の設定をしたりすれば無事に公開できます。

使用感

OpenSTF サーバをアメリカ国内にたてて、T-Mobile の LTE ネットワークから VPN 経由で OpenSTF を Nexus5X から使用した場合、画面が操作に追随するまでに数秒を要しています。ネットワーク環境が強くなれば、この遅延は改善されるものと思います。
ちなみに、OpenSTF サーバ自身は以下のようなスペックで構成されています。

  • CPU: Intel Core 2 Duo P7550 2.26GHz
  • Mem: 3.8GiB
  • Disk: SSD 1TB
  • OS: Ubuntu 16.04 LTS 64bit

同ネットワークあるいはサーバ自身が OpenSTF を使う場合でも多少の遅延はありますが、問題なく動いています。