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.
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.
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.1.111:7413 * daemon not running. starting it now on port 5037 * * daemon started successfully * connected to 192.168.1.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.1.111:7413 device
Ezután az OpenSTF-ben megjelenik egy üzenet. Adjuk hozzá az ADB kulcsot az STF-hez.
Indítsuk el a Chrome-ot, majd nyissuk meg a “chrome://inspect” url-t. Itt láthatjuk a csatlakoztatott eszközöket.
Inspect gombra kattintva megjelenik a Developer tools (mintha a saját gépre csatlakoztatva debugolnánk).
Chrome-on kívül több programban is lehet debugolni. Pl.: Opera, Firefox, Eclipse
Bővebben itt lehet olvasni róla: http://github.com/openstf/stf/wiki/%5Ben%5D-Remote-Debug
Telepítés Mac-re
Hozzávalók:
- Node.js >= 4.2 (latest stable version preferred)
- ADB
- RethinkDB >= 2.2
- GraphicsMagick (for resizing screenshots)
- ZeroMQ libraries installed
- Protocol Buffers libraries installed
- yasm installed (for compiling embedded libjpeg-turbo)
- pkg-config so that Node.js can find the libraries
- Java SDK (latest)
- Android Studio
- Jó minőségű USB HUB, ha több eszközt szeretnénk csatlakoztatni, mint ahány szabad port van a gépen
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.