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

Egyre többen böngésznek PC helyett valamilyen eszközről, így ezeken a tesztelés legalább olyan fontos, mint az asztali gépeken. Manuális tesztelésnél gyakran akadályozó tényező, hogy lemerült az eszköz, más használja, vagy már nem használja és ott pihen az asztalán. Ilyen és hasonló, apró dolgok miatt sok idő kárba veszhet. Egy napon pont én szaladtam ebbe problémába; épp használnom kellett volna az eszközöket, de épp lemerültek…

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:

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

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.

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

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

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:

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.

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

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