bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


android_test

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Següent revisió
Revisió prèvia
android_test [2023/12/15 10:11]
enric_mieza_sanchez creat
android_test [2024/04/30 00:20] (actual)
enric_mieza_sanchez [Tests funcionals amb Android]
Línia 4: Línia 4:
  
 Podrem fer tests funcionals de forma molt similar a com utilitzem Selenium per a web. Podrem fer tests funcionals de forma molt similar a com utilitzem Selenium per a web.
 +
 +{{:appium.png?direct}}
 +
 +
 +Articles previs:
 +  * [[Android]]
 +
 +{{tag> #Dam #DamMp08 #DamMp08Uf1 #DamMp08Uf01 #DamMp08Uf2 #DamMp08Uf02 #Ciber #Ceti #CetiMp03 Android mobile java }}
 +
 +
 +\\
 +
 +===== Android Studio =====
 +
 +Android Studio és l'eina oficial que Google recomana per a desenvolupa en Android.
 +
 +{{:android-studio-1.png?direct}}
  
 \\ \\
  
 ===== Instal·lació ===== ===== Instal·lació =====
 +Necessitarem NodeJS versió LTS:
 +  # apt install nodejs npm
 +  # npm install -g n
 +  # n lts
 +
 +Tanqueu i obriu de nou el terminal, i comproveu la versió de NodeJS:
 +  $ node --version
  
 Instal·lem la llibreria Appium i el Driver UIAutomator2 Instal·lem la llibreria Appium i el Driver UIAutomator2
Línia 14: Línia 38:
   $ appium driver install uiautomator2   $ appium driver install uiautomator2
  
-Engeguem servidor en una shell a part:+Provem servidor en una shell a part (escoltarà al port 4723):
   $ appium   $ appium
  
-També hen d'instal·lar Android Studio i el Android SDK i disposar de Java SDK >=11 per a Android SDK>=30.+El podem parar amb ''CTRL+C''
 + 
 +També hem d'instal·lar
 +  * Android Studio IDE 
 +  * Android SDK (podem emprar el SDK Manager de l'Android Studio). 
 +  * Java SDK >=11 per a Android SDK>=30 
 +  * Crear un emulador Android i engegar-lo (podem emprar AVD Manager). 
 + 
 +==== Emulador ==== 
 +L'emulador Android es pot iniciar des de CLI: 
 +  $ cd Andrid/Sdk/emulator 
 +  $ ./emulator -avd "Pixel_XL_API_34" 
 + 
 +Si hem de fer els autotests en una servidor podem afegir la opció ''-no-window'' perquè funcioni en mode ''headless'': 
 +  $ ./emulator -avd "Pixel_XL_API_34" -no-window
  
 \\ \\
  
 ===== Exemple Python ===== ===== Exemple Python =====
 +La **documentació oficial de Appium** ens ofereix un [[http://appium.io/docs/en/2.2/quickstart/test-py/|exemple en Python]] i altres llenguatges ([[http://appium.io/docs/en/2.2/quickstart/test-js/|Javascript]], Java, Ruby).
 +
 +<WRAP important>
 +Revisa que estiguis consultant la documentació de la versió actual.
 +</WRAP>
 +
 Creem un [[virtualenv]] per no interferir la instal·lació del sistema operatiu: Creem un [[virtualenv]] per no interferir la instal·lació del sistema operatiu:
  
Línia 28: Línia 72:
   (envtest) $ pip install Appium-Python-Client pytest   (envtest) $ pip install Appium-Python-Client pytest
  
-Prenem aquest codi d'exemple:+Prenem aquest codi d'exemple que obre l'**aplicació ''com.android.settings''** i cerca la opció ''Battery'' amb Xpath:
  
 <file python test_example.py> <file python test_example.py>
Línia 41: Línia 85:
     platformName='Android',     platformName='Android',
     automationName='uiautomator2',     automationName='uiautomator2',
-    deviceName='Pixel XL API 34',+    deviceName='Android',
     appPackage='com.android.settings',     appPackage='com.android.settings',
     appActivity='.Settings',     appActivity='.Settings',
Línia 56: Línia 100:
     def setUp(self) -> None:     def setUp(self) -> None:
         self.driver = webdriver.Remote(command_executor=appium_server_url,options=capabilities_options)         self.driver = webdriver.Remote(command_executor=appium_server_url,options=capabilities_options)
-        #self.driver = webdriver.Remote(appium_server_url, capabilities) 
  
     def tearDown(self) -> None:     def tearDown(self) -> None:
Línia 70: Línia 113:
 </file> </file>
  
 +=== Shell 1 ===
 +Assegura't que disposes de la variable ''$ANDROID_SDK_ROOT''. Si no la tens, sol ser:
 +
 +<tabbox Versió Linux>
 +$ export ANDROID_SDK_ROOT=~/Android/Sdk/
 +<tabbox Versió Windows>
 +set ANDROID_SDK_ROOT=C:\Users\usuari\AppData\Local\Android\Sdk
 +</tabbox>
 +
 +Engeguem el servidor Appium (escoltarà al port 4723):
 +  $ appium
 +
 +=== Shell 2 ===
 +Si estem treballant amb Android Studio i tenim l'emulador engegat, no cal aquest apartat.
  
 +Si no tenim cap emulador engegat, podem posar-ho en marxa amb (substituir pel AVD pertinent):
 +  $ cd ~/Android/Sdk/emulator
 +  $ ./emulator -avd "Pixel_3a_API_34_extension_level_7_x86_64"
  
 +=== Shell 3 ===
 +Engeguem els tests:
 +  $ source env/bin/activate
 +  (envtest) $ python3 test_example.py
  
 +...i podrem veure com entra als Settings de l'emulador i clica en la secció "Battery" (sempre i quan l'emulador estigui en anglès).
  
  
android_test.1702635062.txt.gz · Darrera modificació: 2023/12/15 10:11 per enric_mieza_sanchez