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 を公開する際、いくつか気をつけるべきポイントがあります。
- ファイアウォールの設定で OpenSTF の使用するポートのほか、Android のデバッガが使うポートも開放する必要がある
- 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 を使う場合でも多少の遅延はありますが、問題なく動いています。