Hogyan készítsünk saját Android tesztfarmot?

Eljött a pillanat, hogy megoldást keressek erre a problémára, mondván valaki biztos csinált egy open source cuccot, és igen!
Az OpenSTF (Smartphone Test Farm http://openstf.io) névre hallgató Node-os alkalmazás szimpatikusnak tűnt, könnyen telepíthető, egyszerű használni, LDAP autentikációt is tud és több mint 160 eszközt támogat. Legnagyobb előnye, hogy nem kell tölteni a telefonokat, hiszen kábelen vannak végig, nem kell az eszközök után futkározni, sőt ROOT-olásra sincs szükség.
Fut OSX-en, Linux-on, Windows-on is (bár ezen instabil volt, sűrűn megszakadt a kapcsolat a telefonnal). Az egyetlen hátrány hogy csak az androidot támogatja, az almás eszközökre még várni kell. :(

Nézzük meg, hogyan működik!

Böngészőben lehet használni, bejelentkezés után láthatjuk a szabad és a foglalt eszközöket. ADB (Android Debug Bridge)-n keresztül kommunikál a telefon a szerverrel, így elég sok információ kinyerhető az eszközből. Az automatikusan telepített böngészőket is felismeri.

image06

Az eszköz kiválasztása után megjelenik annak valós idejű képe. Mellette rengeteg hasznos funkciót találunk, többek között:

  • Screenshot: képernyőképet készíthetünk az eszközön, amit egyből le tudunk menteni.
  • Adb remote debug: saját Chrome böngészőn keresztül debugolhatunk az eszközön.
  • File Explorer: az eszköz fájljait lehet böngészni.
  • Elforgatás, újraindítás, fizikai gombok használata.

Úgy használhatjuk az eszközt, mintha előttünk lenne fizikailag.

image04

Remote debug (ADB connect) használata

Szükségünk van egy ADB driver-re (http://adbshell.com/upload/adb.zip), ha ez megvan akkor nincs más dolgunk mint a command line-ban kiadni a Remote debug résznél található parancsot:

adb connect [ip]:[port] 
adb connect 192.168.9.111:7413
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
connected to 192.168.9.111:7413

Ha ezt látjuk akkor sikerült csatlakozni az eszközünkhöz. Ellenőrizzük le.

Az adb device parancs kiadása után megjelennek a csatlakoztatott eszközök

adb devices
List of devices attached
192.168.9.111:7413 device

Ezután az OpenSTF-ben megjelenik egy üzenet. Adjuk hozzá az ADB kulcsot az STF-hez.

image05

Indítsuk el a Chrome-ot, majd nyissuk meg a “chrome://inspect” url-t. Itt láthatjuk a csatlakoztatott eszközöket.

image07

Inspect gombra kattintva megjelenik a Developer tools (mintha a saját gépre csatlakoztatva debugolnánk).

image09

Chrome-on kívül több programban is lehet debugolni. Pl.: Opera, Firefox, Eclipse
Bővebben itt lehet olvasni róla: https://github.com/openstf/stf/wiki/%5Ben%5D-Remote-Debug

Telepítés Mac-re

Hozzávalók:

OS X-en könnyen feltelepíthetjük ezeket a függőségeket a homebrew (brew.sh) segítségével.

brew install rethinkdb pkg-config graphicsmagick protobuf yasm zeromq

Az összes hozzávaló feltelepítése után jöhet az openSTF.

npm install -g stf

Ezután a következő módon indíthatjuk, először az adatbázist:

rethinkdb

Http-n elérjük a felületet a 8080-as porton, ha esetleg bele kell nyúlni.
 Az STF minden indításnál (ha nem létezik) létrehozza az “stf” adatbázist amiben többek között az eszközök és a felhasználók vannak. Az STF indítása:

stf local

Ebben a módban csak lokális környezeten lesz elérhető.

Abban az esetben így csatlakoztattuk az eszközt akkor később, ha már másik módban indítjuk, nagy valószínűséggel a remote-debug nem fog menni, mert az ADB kulcsot nem fogja tudni hozzáadni.

stf local --public-ip <stf saját publikus ip címe>

Így a hálózaton lévő gépekről is elérhető.

stf local --public-ip <stf saját publikus ip címe> --allow-remote

Hálózaton elérhetőek a készülékek, és engedélyezett a remote debug.