Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ BPEL Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Serena Business Manager
ΠΡΠΎΠΉΠ΄ΡΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΏΠΎ Π₯Π°Π±ΡΠ°Ρ Π°Π±ΡΡ, ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ, Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΠΌΡ ΡΠ·ΡΠΊΡ BPEL (Business Process Execution Language). ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ, ΡΠΎ BPEL β ΡΡΠΎ ΡΠ·ΡΠΊ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠΎΡΠΌΠ°ΡΠ΅ XML, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ»ΡΠΆΠ±.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Π΄Π²ΠΈΠΆΠΊΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΌΠ½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Oracle BPEL Process Manager ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΡ Π΄Π°Π»ΡΡΠ΅ β Serena Business Manager (SBM). SBM ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡ. Π ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° (workflow) ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΠ·Π²Π°ΡΡ Π²Π½Π΅ΡΠ½ΡΡ web ΡΠ»ΡΠΆΠ±Ρ. Π Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ? ΠΠΎΡ ΡΡΡ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ BPEL ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ BPM.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄Ρ, Π² ΡΠ΅ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π΄Π΅ΡΡ. Π― ΠΆΠ΅ ΠΎΠΏΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ°Π΄Π°ΡΠ° Π±ΡΠ»Π° ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ β ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ (Π² ΠΌΠΎΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ β TD Links), Π½ΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ, Π° Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΎΠΏΡΠΎΡΠΎΠΌ ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΡΠΎΡ ΡΠ΅ΡΠ²ΠΈΡ (bridge) ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΌ Π½Π° Π²Ρ ΠΎΠ΄ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° TD Link. ΠΠ°ΡΠ΅ΠΌ bridge ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠΎΡΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π² ΠΎΡΠ²Π΅Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ°ΠΊ ΠΎΠ½ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ, bridge Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Β«ΡΡΡΠ½ΡΠΌ ΡΡΠΈΠΊΠΎΠΌΒ».
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ Π² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ (ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Ρ.Π΄.). ΠΠ°Π·ΡΠ²Π°ΡΡ Π΅Π³ΠΎ Π±ΡΠ΄Ρ AppServices.
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ°Π³ΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠΎΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΡΠΎ:
ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ worflow Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ TD Links ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅, Π° Π² ΡΠ²ΡΠ·ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ (ΡΠΈΠΏΠ° Stagings), Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΌΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΠΌΠ½Π΅ Stagings.
AppServices ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ±ΠΎΡΠΊΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SQL-Π·Π°ΠΏΡΠΎΡΠ°. SQL-Π·Π°ΠΏΡΠΎΡ ΡΠΎΠ±ΡΠ°Π½ ΠΏΡΡΠΌΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ:
ΠΠ°, Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅. ΠΠ²ΠΈΠΆΠΎΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠ΅ΠΌ Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ:
Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π² SQL-Π·Π°ΠΏΡΠΎΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ Π΄Π°Π½Π½ΡΡ :
ΠΠ»Ρ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠ°Π³ΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π΅Π±-ΡΠ»ΡΠΆΠ±Ρ).
ΠΠΎΡΠ»Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ (ΡΠ΅ΡΠ΅Π· SQL-Π·Π°ΠΏΡΠΎΡ) Π΄Π΅Π»Π°Π΅ΡΡΡ Π²ΡΠ±ΠΎΡΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ β TD Links ΠΈ Π·Π°ΠΏΡΡΠΊ ΡΠΈΠΊΠ»Π°.
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠ°ΠΏ ΠΎΠΏΡΠΎΡΠ° Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠ°, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° Β«ServiceΒ».
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° TD Link, Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π² Π½Π΅ΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΎΡ bridge (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π΅ΡΡΡ).
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ Π΄Π΅ΡΡΡΡ, ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΠΏΠ»ΠΎΡ ΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π³Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΠΈΠ· Π½ΠΈΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΈΡΠΎΠ³Π΅. ΠΠ· ΠΏΠ»ΡΡΠΎΠ² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π²ΡΠ΅ΠΌ, ΠΊΡΠΎ Π΄ΠΎΡΠΈΡΠ°Π» ΠΏΠΎΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°. ΠΡΠ΄Π΅ΠΌ ΡΠ°Π΄Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²Π°ΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ .
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Android ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ°Π΄Π°ΡΠ° β Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ. Π Π½Π°Π»ΠΈΡΠΈΠΈ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Android ΡΡΡΡΠΎΠΉΡΡΠ². ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
ΠΠ°Π»Π΅Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠ°Π³ΠΈ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Android ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Π½Π° Π½Π΅ΠΌ Android SDK. ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΠ‘ Linux.
ΠΠ° Π²ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΊΡΠ°Π½ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΌΠ΅Π½Ρ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΊΡΠ°Π½Π°.
Π Android SDK ΠΈΠΌΠ΅ΡΡΡΡ Π΄Π²Π΅ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ: adb ΠΈ MonkeyRunner.
Π― ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. Π’Π΅ΠΌ, ΠΊΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ Ρ ADB ΠΈ MonkeyRunner ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ Β«Π‘ΠΏΠΎΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ».
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ ADB
ADB (Android Debug Bridge) β ΡΡΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Android ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ADB: developer.android.com/tools/help/adb.html
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΡ ADB
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Android SDK, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Android ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ². ΠΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π΅ ΠΏΡΡΡ, Π·Π½Π°ΡΠΈΡ ADB Π½Π°ΡΡΡΠΎΠ΅Π½ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π Π°Π±ΠΎΡΠ° Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ADB
ΠΡΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅:
ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅:
Π Android ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Linux: ls, cat, dmesg,β¦
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· apk ΡΠ°ΠΉΠ»Π°:
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ package ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· apk ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΠ» Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ:
ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΠ» Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ:
ΠΠ°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ activity. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ activity, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· apk ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
Π§ΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ²
Π§ΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² Π² Android ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ logcat.
ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΡΡΠΈΠ»ΠΈΡΡ logcat: developer.android.com/tools/help/logcat.html
Π‘ΡΠΈΡΠ°ΡΡ Π»ΠΎΠ³ΠΈ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Ctrl-C):
ΠΡΠΈΡΡΠΈΡΡ Π±ΡΡΠ΅Ρ Π»ΠΎΠ³ΠΎΠ² Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅:
Π‘ΡΠΈΡΠ°ΡΡ Π±ΡΡΠ΅Ρ Π»ΠΎΠ³ΠΎΠ² Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ (Π²ΡΠ΄Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π±ΡΡΠ΅ΡΠ°, Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ):
Π‘Π½ΡΡΠΈΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ screencap
Π£ΡΠΈΠ»ΠΈΡΠ° screencap ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΊΡΠ°Π½Π° Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠ»:
Π£ΡΠΈΠ»ΠΈΡΠ° screencap ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ Ρ Android 4.x ΠΈ Π²ΡΡΠ΅. ΠΠ° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ Android ΡΠ½ΡΡΠΈΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ MonkeyRunner.
ΠΡΠΈΠΌΠ΅Ρ BASH ΡΠΊΡΠΈΠΏΡΠ° Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ c ΠΏΠΎΠΌΠΎΡΡΡ ADB
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ MonkeyRunner
Π£ΡΠΈΠ»ΠΈΡΠ° MonkeyRunner ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ API Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ Android ΡΡΡΡΠΎΠΉΡΡΠ°ΠΌΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ MonkeyRunner ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Python, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Android ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΅Π³ΠΎ, ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. Π£ΡΠΈΠ»ΠΈΡΠ° MonkeyRunner ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Jython Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
Π§ΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ MonkeyRunner
Π‘ΠΊΡΠΈΠΏΡ Π·Π°ΠΏΠΈΡΠ΅Ρ Π»ΠΎΠ³ΠΈ Π² ΡΠ°ΠΉΠ» example.log Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
Π‘Π½ΡΡΠΈΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ²
Π‘ΠΊΡΠΈΠΏΡ ΡΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΊΡΠΈΠ½ΡΠΎΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΅Π³ΠΎ Π² ΡΠ°ΠΉΠ» screenshot.png Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ MonkeyRunner
Π‘ΡΠ΅Π΄ΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ monkey
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΠΏΠ°Π»ΠΎ Π² ΡΠ΅ΠΏΠΊΠΈΠ΅ Π»Π°ΠΏΡ ΠΎΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΈ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π΅Π·ΡΡΠ½Ρ β ΡΡΠΈΠ»ΠΈΡΠ° monkey ΠΏΡΠΈΠ·Π²Π°Π½Π° ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ.
Π£ΡΠΈΠ»ΠΈΡΠ° monkey Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² Android SDK. Π£ΡΠΈΠ»ΠΈΡΠ° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠ΅Π²Π΄ΠΎ-ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΈΠΌΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΡΠΎΠ±Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±Π΅Π·ΡΡΠ½Π° Π½Π΅ Π²ΡΡΠ»Π° Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ Π½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΡΠ»Π°ΡΡ SMS ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌ ΠΈΠ· Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅: developer.android.com/tools/help/monkey.html
ΠΠ»Π°Π²Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ monkey β ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π·Π°ΡΡΠ°Ρ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ MonkeyRunner
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ MonkeyRunner API ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ getevent/sendevent
ΠΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Robotium
Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Robotium Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² Android SDK, Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Open Source Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ.
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Robotium Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ ΡΠΏΠΎΡΠΎΠ±Π°Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ²Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠ²Π½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π»ΠΈΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΡΡΡΠΎΠΉΡΡΠ² Π²Π²ΠΎΠ΄Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Β«OKΒ». Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠ° MonkeyRunner Π½Π°ΠΆΠ°ΡΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ: Β«ΠΠΎΡΠ½ΡΡΡΡΡ ΡΠΎΡΠΊΠΈ ΡΠΊΡΠ°Π½Π° Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (x0, y0)Β». Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Robotium ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ: Β«ΠΠ°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ Β«OK»».
ΠΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Robotium ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ΅Π°ΠΊΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Β«OKΒ» Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Β«Item 1Β». Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Robotium ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ.
ΠΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
| Π‘ΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ | ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° | ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ |
|---|---|---|
| Monkey β ΠΏΠΎΡΠΎΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. | ΠΡΡΡΡΡΡΠ²ΡΡΡ Π·Π°ΡΡΠ°ΡΡ Π½Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π‘ΡΡΠ΅ΡΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. | ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π°ΡΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ. ΠΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. |
| MonkeyRunner β ΡΠΊΡΠΈΠΏΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ. | ΠΠΈΠ±ΠΊΠΎΡΡΡ. | Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. |
| getevent/sendevent β Π·Π°ΠΏΠΈΡΡ/Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. | ΠΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. | ΠΠ°ΠΏΠΈΡΠ°Π½Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΠΏΡΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π½ΠΎΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. |
| Robotium β ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. | ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΈ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΡΠ»Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. | Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π½Π° ΡΠ·ΡΠΊΠ΅ Java. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ. |
ΠΠ½Π°Π»ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ Π²ΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈ ΠΈ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΠ½Π°Π»ΠΈΠ· Π»ΠΎΠ³ΠΎΠ²
ΠΠ½Π°Π»ΠΈΠ· ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ²
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠΈΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ² Π² ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΈΡ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΡΠΊΡΠ°Π½Π° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡΠ²Π»ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π±Π΅Π· ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΈ Π² Π»ΠΎΠ³Π°Ρ .
MonkeyRunner ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π²Π½ΠΈΡΡ Π΄Π²Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ° Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π΄ΠΎΠΏΡΡΠΊΠΎΠΌ Π² ΠΏΡΠΎΡΠ΅Π½ΡΠ°Ρ :
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² API MonkeyImage Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π°. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ² ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python Imaging Library.
Π‘Π±ΡΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«ΠΠ°Π·Π°Π΄Β»
ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°Π·Π°Π΄Β» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ MonkeyRunner:
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»Π΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Π·Π°ΠΌΠ΅ΡΠΊΠ΅ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Android ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² Android SDK ΠΈΠ»ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΠΈΠ΅ΡΡ ΠΏΠΎΠ΄ Open Source Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ.
Π₯ΠΎΡΠ΅ΡΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°Π½Π°ΡΠ΅Π΅ΠΉ ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΡΠ΅ΡΠ°ΡΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ UI-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΠ΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ Π½Π° Android. ΠΠΎΠΊΠ»Π°Π΄ Π―Π½Π΄Π΅ΠΊΡΠ°
Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ, ΡΠ΅ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ ΡΠ΅Π»ΠΈΠ·Π½ΡΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ ΠΈ ΡΠ΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Android-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Π ΠΎΠ³ΠΎΠ² Π²ΡΠΏΠΎΠΌΠ½ΠΈΠ», ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π»ΠΎ UI-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΠΈΠ΄Π΅Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Espresso, Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ ΠΈ ΡΡΠΎ Π² ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ.
β ΠΠ°ΡΠ°ΡΡ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΊΡΠΊΡΡΡΠ°. ΠΠΎΠ³Π΄Π° Ρ ΠΏΡΠΈΡΠ΅Π» Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΠ½Π° Π±ΡΠ»Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ, ΠΈΠ· Π΄Π²ΡΡ -ΡΡΠ΅Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ. ΠΡΠ» ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ, ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊ. Π Π΅Π»ΠΈΠ·Ρ ΠΊΠ°ΡΠΈΠ»ΠΈΡΡ ΡΠ΅Π΄ΠΊΠΎ, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°Π· Π² ΠΌΠ΅ΡΡΡ. Π Π΅Π»ΠΈΠ· ΠΎΠ±ΡΡΠ½ΠΎ Π±ΡΠ» ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΈΡΠ΅. ΠΠΎΠΊΠ° ΡΠΈΡΡ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, ΡΠ΅Π»ΠΈΠ· Π½Π΅ ΡΠ»ΡΡΠ°Π»ΡΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π»ΠΈΠ· Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π’Π°ΠΊΠΎΠΉ Π½Π΅ΡΠΏΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π½Π°Ρ Π²ΡΠ΅Ρ ΡΡΡΡΠ°ΠΈΠ²Π°Π», Π²ΡΠ΅ Π±ΡΠ»ΠΎ Ρ ΠΎΡΠΎΡΠΎ.
ΠΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡ Π½Π°ΡΠ°Π» ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°ΡΠ°Π»Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅. Π Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ², ΡΡΡ ΡΠΈΡΡ ΠΊΠ°ΡΠΈΡΡ, ΠΊ ΡΡΠ΅ΠΉ ΡΠΈΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ΅Π»ΠΈΠ· ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΌΠ΅ΡΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β ΡΡΠΊΠΎΡΡΡΡ Π½Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π°ΡΠ΅ ΡΠ·ΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π», ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ»Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ, ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ΅Π³ΡΠ΅ΡΡΡ, ΠΈ Π²ΡΠ΅ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π½Π°ΠΌ ΠΌΠ΅ΡΠ°Π»ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΡΡΡΠ΅ ΡΠ΅Π»ΠΈΠ·Ρ. Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ΄Π΅Π»Π°ΡΡ?
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΎΠ²Π΅ΡΠΈΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π½ΠΈΡΠ΅Π³ΠΎ Π½ΠΈΠΊΠΎΠΌΡ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π½Π°Π΄ΠΎ, Π²ΡΠ΅ ΠΊΡΡΡΠΎ. ΠΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΠΈΠ΄ΡΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΏΡΡΠ΅ΠΌ. ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π·Π΄Π΅ΡΡ Π±ΠΈΠ·Π½Π΅Ρ Π±ΡΠ» ΠΏΡΠΎΡΠΈΠ². ΠΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π΅ ΠΎΡΠΎΠ±ΠΎ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ. ΠΠΎΠ΄ΠΎΠ²Π°Ρ Π±Π°Π·Π° Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠ°ΡΡΠ΅Ρ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΆΠ΅ ΡΡΠ°Π»Π° Π±Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΡΠ°ΡΡΠΈ.
ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π½Π° ΡΠ΅Π»ΠΈΠ·Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΎ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ»ΡΡΡΠ΅, Π½ΠΎ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π±Π΅Π· Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ ΠΌΡ ΡΠ°ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ»ΠΎΠΌΠ°Π»ΠΈ.
Π Π·Π΄Π΅ΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ ΠΏΠ»Π°Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°Π»ΠΈ Π²ΡΠ΅ ΡΡΠΈ Π²Π°ΡΠΈΠ°Π½ΡΡ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Ρ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ» ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ, ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΊΡΡΡΡΡ ΡΠ΅ΡΡΠΎΠ² ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΎΡΡ, Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΌΠ΅Π½ΡΡΠ°Π»ΠΎΡΡ, ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΡΡ-ΡΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ UI-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π·Π°Π½ΡΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ
ΡΠ΅ΡΡΠΎΠ². ΠΡΠΎ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡΡΡ Π½Π° ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅. Π ΠΈΡ
ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΆΠΈΡ ΠΊΠ»Π°ΡΡ Instrumentation, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. 
Π Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ
UI-ΡΠ΅ΡΡΠΎΠ², ΠΊΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π», ΠΎΠ½ΠΈ ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅. Π’ΠΎ Π΅ΡΡΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΡΡΡ Application, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠ΅ΡΡΡ.
ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ
ΡΠ΅ΡΡΠΎΠ² ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Espresso, Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Google. 
ΠΠ½ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ
ΡΠ΅ΡΡΠΎΠ². Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Espresso. ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ViewMatchers β ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΠΈΡΠΊΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. 
ViewActions ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, Π° ViewAssertions β ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Ρ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. 
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΡΡ Π΄Π²Π° ΡΠΊΡΠ°Π½Π°. ΠΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΡΠΎΠ²Π΅ΡΠΈΡΡΒ». ΠΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ. ΠΠ° Π²ΡΠΎΡΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π°ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ. 
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ°. ΠΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Rules, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ActivityTestRule ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Activity ΠΈ Π²ΡΠ΄Π΅Π»ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ. 
Π Π² ΡΠ΅Π»Π΅ ΡΠ΅ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ. ΠΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ°. 
ΠΠ°Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅. 
ΠΠ°Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π΅Π³ΠΎ. ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ΅ΡΡ Espresso. 
Π’Π°ΠΊΠΆΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Espresso ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΡΡΠ΅Ρ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠ»ΠΈ Π½Π°ΡΠΈ ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΡΠΎΠ² ΡΠΏΠ°Π», Π° ΠΊΠ°ΠΊΠΎΠΉ Π½Π΅ ΡΠΏΠ°Π». 
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌ, ΠΏΠΎ ΡΠ΅ΡΡΠ°ΠΌ. 
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ. 
ΠΠ»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ crash logs, Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ.
ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² Π²ΡΠ΅ ΡΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Espresso, ΠΌΡ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ΅Π±Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΡΠ΅ΡΡΡ Espresso ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ° Instrumentation ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ° Application. Π’Π°ΠΊΠΆΠ΅ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ΅Π΄Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ. Π ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΡΡΠΎΠΌ Π΄Π°Π»ΡΡΠ΅.
Π₯ΡΡΠΏΠΊΠΎΡΡΡ ΡΠ΅ΡΡΠΎΠ². ΠΡ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΠ»ΡΡΠ°Π»ΠΈ, ΡΡΠΎ Π»ΡΠ±ΡΠ΅ UI-ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΡΡΠΏΠΊΠΈΠ΅, ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΡΠ°ΠΊΡΠΎΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΈΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ ΡΠ»Π°ΠΊΠ°ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ ΡΠ΅Π±Π΅ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠ½ΠΊΡ, ΠΊΠ°ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ UI-ΡΠ΅ΡΡΠΎΠ² ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠ΄Π΅ΡΡ Π½Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΡΠ»ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡ ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΡΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ Π½Π° Π½ΠΈΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ.
Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ, ΠΊΠ°ΠΊ ΠΏΠΈΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΡΡ. ΠΠ°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½Ρ. Π Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ ΠΎΡΡΠ΅Ρ. ΠΠ±ΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΡ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠ°ΠΌΠΈ
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π», ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ½ΡΡΠ°Π½ΡΠ΅ Instrumentation, Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠΈΡΡ: Android Test Orchestrator. 
ΠΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
, Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΈΠ½ΡΡΠ°Π½ΡΠ΅ Instrumentation. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠ²ΠΎΠΉ Application. ΠΠ΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠΈΡΡΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π°Π³ΠΈ, ΠΊΠ°ΠΊ Π·Π΄Π΅ΡΡ Π½Π° ΡΠ»Π°ΠΉΠ΄Π΅, clearPackageData. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. 
ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ: Π²ΠΌΠ΅ΡΡΠ΅ Ρ APK ΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π΅ΡΠ΅ Orchestrator, ΠΈ ΠΎΠ½ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ²: ΠΏΠΎΠΎΠ΄ΠΈΠ½ΠΎΡΠΊΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΈΠ½ΡΡΠ°Π½ΡΠ΅ Instrumentation.
ΠΠ· ΠΏΠ»ΡΡΠΎΠ², ΠΊΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π», β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΡΡΡΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ Instrumentation, ΡΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΠ°Π΄Π°Π΅Ρ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅, ΡΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. Π ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠΌΡΡΠ»Π΅ ΠΏΠΎΠ²ΡΡΠ°Π΅ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π½Π°ΡΠΈΡ ΡΠ΅ΡΡΠΎΠ². ΠΠ· ΠΌΠΈΠ½ΡΡΠΎΠ²: Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΡ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ²ΠΎΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ Application.
ΠΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ΅Π΄Ρ
ΠΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΎΠ΄ΡΡ Π² ΡΠ΅ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΡΠ°ΠΊΠΎΠΌΡ ΡΠ²Π»Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΡΠΎΠΏΠ°Π» ΠΈ ΡΠ΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠ°Π΄Π°ΡΡ? ΠΠ΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ β Π½Π΅ ΡΠΎ, ΠΊ ΡΠ΅ΠΌΡ ΠΌΡ ΡΡΡΠ΅ΠΌΠΈΠ»ΠΈΡΡ. ΠΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ², ΡΡΠΎΠ±Ρ Π½Π΅ ΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π½Π°ΠΌ ΡΠ°Π·Π±ΠΎΡΠΊΠΈ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MockWebServer. ΠΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ OkHttpClient Π΄Π»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π Π½Π΅ΠΉ Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ MockWebServer. ΠΠ΄Π΅Ρ Π±ΡΠ»Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π΅ΠΊΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ WebServer ΠΈ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π½Π°ΡΠ΅Π³ΠΎ API Π½Π° localhost. 
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Application Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ². 
ΠΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈΡΡ ΠΎΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Application. 
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΈΠΉ Dispatcher, ΠΊΡΠ΄Π° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΌΠΎΠΊΠ°ΡΡ Π½Π°ΡΠΈ Π·Π°ΠΏΡΠΎΡΡ. ΠΠ°ΠΏΡΡΡΠΈΠ»ΠΈ WebServer. 
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ Π² ΡΠ΅ΡΡΠ°Ρ
Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ Application, Π° Π½Π΅ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ. 
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ AndroidJUnitRunner, ΡΠ΄Π΅Π»Π°Π² ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΉ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ newApplication, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π½Π°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ. 
Π‘Π»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π΄Π»Ρ Π½Π°Ρ ΡΡΠ°Π»ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ Π²ΡΠ΅ Π½Π°ΡΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π½Π° localhost. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ Dagger 2, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. 
ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ. ΠΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Application-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π΄Π»Ρ ΡΠ΅ΡΡΠ° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ TestApplication-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Application-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. 
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. 
ΠΠ±Π° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ endpoint ΠΈ OkHttpClient. ΠΠΎΡ Π½Π°Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. 
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΡΠΎ-ΡΠΎ Π² ΡΠ΅ΡΡΠ°Ρ
, ΡΠΎ Ρ
ΠΎΠ΄ΠΈΠΌ Π½Π° localhost. 
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ prod Π² ΡΠ±ΠΎΡΠΊΡ, ΡΠΎ ΠΌΡ ΠΈΠ΄Π΅ΠΌ Π½Π° ΠΏΡΠΎΠ΄ΠΎΠ²ΡΠΉ endpoint. 
Π§ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π² ΡΠ΅ΡΡΠ΅? ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ WebServer. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠΉ DSL, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ Instrumentation, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Application, ΠΊΠ°ΡΡΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌΡ, ΠΈ ΠΎΡΡΡΠ΄Π° ΡΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠΌ. 
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΠ°ΠΌ Dispatcher? ΠΠ°ΠΊΠΈΠ΅ ΠΏΠ»ΡΡΡ? Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ΅Π΄Ρ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ²ΡΡΠ°Π΅ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠ°ΡΠΈ ΡΠ΅ΡΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎ ΠΏΠ°Π΄Π°ΡΡ.
ΠΠ· ΠΌΠΈΠ½ΡΡΠΎΠ²: Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π³ΠΎΡΠΎΠ²ΠΈΡΡ MockβΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ². ΠΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π±ΡΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΎΡΡΡ. 
ΠΠ°ΡΡ ΡΠ»ΠΎΠ² ΠΎΠ± ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΎΡ Π²Π½Π΅ΡΠ½ΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π΅ΡΡ Ρ Espresso Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Espresso-Intents. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ Intent, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΌΠΎΠΊΠ°ΡΡ ΠΈΡ
ΠΎΡΠ²Π΅Ρ. ΠΠΎ Π½Π° ΡΡΠΎΠΌ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ.
Π£Π»ΡΡΡΠ°Π΅ΠΌ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΠ΅ ΡΠ΅ΡΡΠ°
ΠΠΎΠΌΠ½ΠΈΡΠ΅, Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ, ΠΊΠ°ΠΊ ΠΏΠΈΡΡΡΡΡ Espresso-ΡΠ΅ΡΡΡ ΠΈ Π½Π°ΠΌ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ΅Π³ΠΎ-ΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΠΎΠ³ΠΎ? ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠ΄ Π½Π°ΡΠΈΡ
ΡΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
. 
ΠΡΠΈΠΌΠ΅Ρ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π½Π°Ρ ΡΠ΅ΡΡ, ΡΠΎ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ β Π²Π²Π΅Π΄ΠΈ ΡΠ΅ΠΊΡΡ, Π½Π°ΠΆΠΌΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ β Π½Π°ΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ. 
ΠΠ΄Π΅ΡΡ Π½Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡΠ»ΠΈ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΡΠΎΠ±ΠΎΡΡ. ΠΠ΄Π΅Ρ ΡΡΠΈΡ
ΡΠΎΠ±ΠΎΡΠΎΠ²: ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ, ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ. ΠΠΎΡΠ²Π»ΡΡΡΡΡ Π²ΡΡΠΎΠΊΠΎΠ°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΡΠ²Π°ΡΡ ΠΎΡ Π½Π°Ρ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. 
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠ±ΠΎΡΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π΄Π΅ΡΡ. Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΡΠΎΠ±ΠΎΡ β ΡΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠ΅Π½ Π½Π°Π±ΠΎΡ Π½Π΅ΠΊΠΈΡ
Π±Π°Π·ΠΎΠ²ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. 
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ Π΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Β«Π²Π²Π΅ΡΡΠΈ ΠΏΠ°ΡΠΎΠ»ΡΒ» ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Β«Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡΒ». ΠΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΈ ΠΏΠΎΠ½ΡΠ»ΠΈ: Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΈ ΡΠΎΠΆΠ΅ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ ΠΈΡ
Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π½Π°Π·Π²Π°Π»ΠΈ Lookup. 
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠ°Π·Π±ΠΈΡ Π½Π° ΡΠΎΠ±ΠΎΡΠ° ΠΈ Lookup ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΈΠ»ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ. 
Π§ΡΠΎ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅ΠΏΠ΅ΡΡ? ΠΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π΄Π²Π° ΡΠΊΡΠ°Π½Π°. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ±ΠΎΡΠ°. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΎΠ±ΠΎΡΠ΅ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠ½Π°Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π°. Π ΡΠ΅ΡΡΠ΅ ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΎ ΡΠ΅ΡΠΊΠΎ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ. ΠΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ, ΡΠ΅ΡΡΡ ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΡΠ΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ.
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π», ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ β ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎ Matchers. ΠΠ· ΠΌΠΈΠ½ΡΡΠΎΠ²: ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Boilerplates ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠ±ΠΎΡΠΎΠ². ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π½Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅.
Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Espresso
ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Espresso ΠΈ ΠΏΠΎΠΉΠΌΠ΅ΠΌ, Π·Π° ΡΡΠ΅Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½Π° Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ. Google ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ ΡΠ²ΠΎΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ
ΡΠ΅ΡΡΠΎΠ². 
Π ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ³ΠΎΠ³ΠΎ Π»Π΅ΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ onView ΠΈ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΡΠ°, Π»ΠΈΠ±ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
AsyncTask, Π»ΠΈΠ±ΠΎ Π²ΡΠ΅ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ IdlingResource Π±ΡΠ΄ΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ idle.
ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΠΏΡΠ½ΠΊΡΠ°, ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ AsyncTask, β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ Android, ΠΈ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡ
ΡΠ°ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅ΡΡΡΡΠΎΠ², ΠΎ ΠΊΠΎΡΠΎΡΡΡ
Android Π½Π΅ Π·Π½Π°Π΅Ρ ΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΠΊΠ°ΠΊ ΠΈΡ
ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ IdlingResource. ΠΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ Espresso, ΡΡΠΎ ΠΏΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅Π»ΡΠ·Ρ ΡΠ΅ΡΡ. 
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ OkHttp3IdlingResource. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ OkHttp, ΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π΅Π³ΠΎ ΡΠΎΠΆΠ΅. ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Rules, ΠΎ ΠΊΠΎΡΠΎΡΡΡ
Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ». 
ΠΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΏ ExternalResource. ΠΠ³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ° ΠΈ ΠΏΠΎΡΠ»Π΅. 
Π ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡ-ΡΠ°ΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ OkHttpClient. ΠΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Dagger.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ Rule Π² ΡΠ΅ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ RuleChain, ΡΠΎ Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΡΠΊΠ° Rules. 
Π ΡΠ΅ΠΏΠΎΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ». 
ΠΠ· ΠΏΠ»ΡΡΠΎΠ² IdlingResource: Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ· ΠΌΠΈΠ½ΡΡΠΎΠ²: Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΡΡΠΎ ΡΡΠΈ ΡΠ΅ΡΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ. ΠΡΠΈΡΠΎΠ΄Π° Π½Π°ΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΉ, Π½Π΅ Π²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈ Π·Π΄Π΅ΡΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π§ΡΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ IdlingResource Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ? ΠΡ Ρ
ΠΎΡΠΈΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ
ΡΠ΅ΡΡΠΎΠ², Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅Π±Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ IdlingResource Π²ΠΎ Π²ΡΠ΅Ρ
ΠΌΠ΅ΡΡΠ°Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. 
ΠΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠΎΡΡΡΠ»Ρ. ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ ΡΠΈΠΊΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡ Π»ΠΈ Π½Π°ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, Π½Π΅ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π»ΠΈ ΠΌΡ Π² ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΡΠ»ΠΈ ΠΏΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΠΌΡ Π½Π΅ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π² ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΡΠΎ ΡΠ΅ΡΡ ΠΏΠ°Π΄Π°Π΅Ρ. ΠΠ° ΡΡΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ IdlingResource, Π½Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°ΡΠΈΡ
ΡΠ΅ΡΡΠΎΠ². 
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π² ΡΠ΅ΡΡΠ΅? ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ Π½Π°ΠΆΠ°Π»ΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠ°ΡΠΎΠ»ΡΒ», ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ Π½Π° Π²ΡΠΎΡΡΡ Activity, ΠΈ Π½Π° Π½Π΅ΠΉ ΠΌΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ β Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅? ΠΡΠ»ΠΈ Π΄Π° β Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ. ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΡΠ΅ΡΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΠΎ. Π§ΡΡΡ-ΡΡΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎ, Π½ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ.
ΠΠ· ΠΏΠ»ΡΡΠΎΠ²: ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ. ΠΠ· ΠΌΠΈΠ½ΡΡΠΎΠ²: Π² ΡΠ΅ΡΡΠ°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΈ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ², ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΡΡΠΎΡΠΌ.
Π£Π»ΡΡΡΠ°Π΅ΠΌ ΠΎΡΡΠ΅Ρ
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠ½ΠΊΡΠΎΠΌ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ Π³ΠΎΠ²ΠΎΡΠΈΠ», Π±ΡΠ» ΠΎΡΡΠ΅Ρ. ΠΠ°ΠΌ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΡΡΠ΅Ρ, Π½Π°ΠΌ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ: ΠΏΡΠΎΡΠ΅ ΡΠ·Π½Π°Π²Π°ΡΡ, Π² ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. 
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠΎΠ² Allure. ΠΠ΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ°. ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Allure ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ ΠΈΡ
AllureAndroidJUnitRunner, ΠΈ ΡΡΠΎ ΡΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ΅Ρ. Π’Π°ΠΊΠΆΠ΅ Π² Allure ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ Rules. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΡΡ ScreenshotRule, WindowHierarchyRule, LogcatRule. Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΡ, ΠΊ Π½Π΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ, Π»ΠΎΠ³ΠΈ ΠΈΠ· Logcat, ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ. Π£ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Espresso.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΡΡΠ΅ΡΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Allure Gradle plugin. 
ΠΡΡΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ. ΠΠΏΡΡΡ-ΡΠ°ΠΊΠΈ, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Ρ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. 
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΡΡΡ. 
Π£Π²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π· Π½Π° ΡΡΠΎΠΌ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅, ΡΡΠΎ ΠΊ ΡΡΠ΅ΠΉΠ»Π΅Π½Π½ΠΎΠΌΡ ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Allure: Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ. Π’ΠΎ Π΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° Π²Ρ Π°Π³ΡΠ΅Π³ΠΈΡΡΠ΅ΡΠ΅ Allure-ΠΎΡΡΠ΅ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΡΠΈ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΡΡΠ΅ΠΊΠΈΠ½Π³ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠ»ΠΎ Π²Π°ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π²Ρ ΡΠΈΠΊΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ»ΠΈΡΡ, ΠΈΡΡΠ΅Π·Π°Π»ΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π²Π°ΠΆΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Allure-ΠΎΡΡΠ΅ΡΠΎΠ² β ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ. ΠΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π²Π°Ρ ΡΠ΅ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΡΠ°Π³ΠΈ ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π² ΡΡΠΎΡ ΠΎΡΡΠ΅Ρ Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ, Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π΅ΡΠ»ΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ.
ΠΡ Π±ΡΠ»ΠΈ ΠΎΡΠ΅Π½Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Ρ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΌΠΎΡΡΠ΅Π»Π° Π½Π΅ Π² ΠΊΠΎΠ΄ Π½Π°ΡΠΈΡ
ΡΠ΅ΡΡΠΎΠ², Π° Π² ΠΎΡΡΠ΅Ρ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»Π°, ΡΡΠΎ ΡΠ°ΠΌ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΠ»ΠΎ. 
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Espresso, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π½Π°Π·Π²Π°Π»ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. 
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π΅ΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΠΌΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΎΠ±Π΅ΡΡΠΊΠΈ Π΄Π»Ρ Matchers. 
Π Π΄Π»Ρ Assertions, ΠΈ Π΄Π»Ρ Actions. 
Π Π΄Π»Ρ Interaction. ΠΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π΄Π»Ρ Π½Π°ΡΠΈΡ
ΡΠ΅ΡΡΠΎΠ² ΡΡΠ°Π» ΡΠΆΠ΅ Π½Π΅ Espresso#onView, Π° NamedViewInteraction#onView. 
ΠΠ΄Π΅Ρ Π±ΡΠ»Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² ΠΎΡΡΠ΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ step, ΠΊΠΎΡΠΎΡΡΡ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ. 
Π’ΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, Π² ΠΎΡΡΠ΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ. 
Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π²ΡΠ΅Ρ
Π½Π°ΡΠΈΡ
ΡΠΎΠ±ΠΎΡΠΎΠ², Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΠΈΡ
Π²Ρ
ΠΎΠ΄Π½ΡΡ ΡΠΎΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ step, ΠΊΠΎΡΠΎΡΠ°Ρ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. Π ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π²ΡΠ΅ Π½Π°ΡΠΈ Lookup β Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊ Π½ΠΈΠΌ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°. 
ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΡΠ΅Ρ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΡΡΠΎ ΠΈ ΠΊΡΠ΄Π° ΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ. 
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΠΎΡΡΠ΅Ρ ΠΈ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΌΡ ΡΡΠΈΠΌ ΠΏΠΎΠΊΡΡΠ»ΠΈ. 
Π’Π°ΠΊΠΆΠ΅ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠ°ΠΌ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ.
ΠΠ· ΠΏΠ»ΡΡΠΎΠ²: ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ° ΠΈ Π½Π΅ΠΊΠ°Ρ Π°Π²ΡΠΎΠ΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ. ΠΠ· ΠΌΠΈΠ½ΡΡΠΎΠ²: Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠΈΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΡΠΎΠΈΠΌ ΡΡΠΎΡ ΠΎΡΡΠ΅Ρ, ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΠΈΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ Allure. Π’Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΠΎΠ²
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Ρ Π½Π°Ρ ΡΠΆΠ΅ Π±ΡΠ» ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ². ΠΠ½ΠΈ Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌΠΈ. Π£ Π½Π°Ρ ΡΠΆΠ΅ Π±ΡΠ» ΠΎΡΡΠ΅Ρ, ΠΈ ΠΌΡ ΡΡΠ°Π»ΠΈ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ UI?
ΠΠ΅Π΄Ρ Π΅ΡΠ»ΠΈ Π±Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ» ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊ, ΠΎΠ½ ΡΠΌΠΎΡΡΠ΅Π» Π±Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΠΎΠ»Π΅, ΡΡΠΎ ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ» Π±Ρ, ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΡΠΌΠΎΡΡΠ΅Π» Π±Ρ Π½Π° ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ°, Π½Π° ΡΡΠΈΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡ ΠΏΠΎΠ΄ΡΠΌΠ°Π»ΠΈ Π½Π°Π΄ ΡΡΠΈΠΌ, ΠΈ Π²ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΎ-ΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ» Π²Π΅ΡΡΡΠΊΡ. ΠΠ»ΠΈ ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΈ Π²Π΅ΡΡΡΠΊΠ° ΠΏΠΎΠ΅Ρ
Π°Π»Π°, constraint ΡΠ»ΠΎΠΌΠ°Π»ΡΡ, ΠΈΠ»ΠΈ Π΅ΡΠ΅ ΡΡΠΎ-ΡΠΎ. 
Π’Π΅ΠΊΡΡΠΈΠΉ ΡΠ΅ΡΡ Π½Π° ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ, Π½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π΅Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ. ΠΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ. 
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ Interaction ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π² ΡΡΠΈΠ»Π΅ Espresso. 
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ. Π ΡΠΎΠ±ΠΎΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ². Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π² ΠΎΡΡΠ΅ΡΠ΅? 
Π ΠΎΡΡΠ΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ, ΠΈ diff. 
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½Π΅ ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ, Π° ΠΎΠ±ΡΠ΅Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. 
ΠΠ· ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΡΡΠΎΠΈΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ, Π²Π΅Π΄Ρ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ-ΡΡΠ°Π»ΠΎΠ½Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠΌΡΠ»ΡΡΠΎΡΠ΅, Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π³Π΄Π΅, Π½Π° CI. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»ΠΈΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²Π°ΡΠΈΡ
ΡΠΌΡΠ»ΡΡΠΎΡΠΎΠ², ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Ρ
, Π½Π° ΠΊΠΎΡΠΎΡΡΡ
Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΈ Ρ ΡΠ΅ΠΌΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ
Π²Ρ ΡΡΠΈ ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΠΎΠ½ΡΠ΅ΡΠ΅.
ΠΠ° ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅? ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π° ΡΠΎΡΠΌ-ΡΠ°ΠΊΡΠΎΡ, ΡΠΎ Π΅ΡΡΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠ°Π½Π° ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ»ΠΎ Π²ΡΠΊΠ»ΡΡΠΈΡΡ GPU ΠΈ ΡΠΊΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ, Ρ Π²Π°Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ ΠΈΠ·-Π·Π° ΡΠ°Π·Π½ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ anti-aliasing Π² ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
Π‘ΠΊΡΠΈΠ½ΡΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ Π½Π°ΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ UI. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ² Π² ΡΠ΅Π»ΠΎΠΌ ΡΡΠΊΠΎΡΠΈΠ»ΠΎΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΎΠ΄Π½Ρ. ΠΠΎ ΠΎΠΏΡΡΡ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π²ΠΎΡΠΎΡ Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ°Π»ΠΎΠ½ΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅Π΅. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΠ»ΠΈΡΡ: ΡΡΠ°Π»ΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ².
Π£Π»ΡΡΡΠ°Π΅ΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΠΎΠ±ΠΎΡΠΎΠ²
Π― Π³ΠΎΠ²ΠΎΡΠΈΠ», ΡΡΠΎ Ρ Π½Π°Ρ Π±ΡΠ»ΠΈ ΠΏΡΠ΅ΡΠ΅Π½Π·ΠΈΠΈ ΠΊ ΡΠΎΠ±ΠΎΡΠ°ΠΌ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Boilerplate, ΠΈ ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΠΎΡΠΎΠ·Π½Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΎ ΡΠΎΠΆΠ΅ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ. 
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Π·Π°Ρ
ΠΎΡΠ΅Π»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ β ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° β Π²ΠΈΠ΄Π½Ρ. Π’ΠΎΠ³Π΄Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ ΡΠΎΠ±ΠΎΡΠ° Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠ²Π΅ΡΡΠΈ Π² ΡΠΎΠ±ΠΎΡ. 
ΠΠΎΡΠΎΠΌ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΈ Π΄Π»Ρ Π½Π΅Π΅ ΠΌΡ ΡΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. 
ΠΠ»ΠΈ Π²Π΄ΡΡΠ³ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ±ΠΎΡ, ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°. ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠΆΠ΅ Π΄ΡΠ±Π»ΠΈΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ ΡΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π»ΠΈΡΡ Matcher, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ.
ΠΠ΄Π΅ΡΡ, Π²Π΄ΠΎΡ
Π½ΠΎΠ²ΠΈΠ²ΡΠΈΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Kakao, ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ. 
ΠΠ΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°: ΠΌΡ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ Π² ΡΠΎΠ±ΠΎΡΠ°, Π° Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. Π ΠΎΠ±ΠΎΡΡ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌΠΈ Screens. ΠΠ°ΠΆΠ΄ΡΠΉ Screen ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΠ°ΡΡΡ UI ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΡΠΎΠ±ΠΎΡΠΎΠΌ, Π½ΠΎ Ρ
ΡΠ°Π½ΠΈΡ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Π² ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ UI. 
ΠΠ°Π·ΠΎΠ²ΡΠΉ Screen ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. 
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΎΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ EditText, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎ Π²Π²ΠΎΠ΄Ρ ΡΠ΅ΠΊΡΡΠ°. 
Π Π² ΡΠ΅ΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅. 
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΎΡΡΠ°Π»ΡΡ: ΠΌΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, Π³Π΄Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΡΡ ΠΏΠΎΠ½ΠΈΠ·ΠΈΠ»ΡΡ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π° Π½ΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠ°Ρ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΡΡΡΠΎΠΈΠ». ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ ΡΡΠΊΠΎΡΠΈΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ², ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Boilerplate-ΠΊΠΎΠ΄Π°. Π Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ Π½Π°Ρ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΎΡΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΠΈΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΠ΅Π»ΠΎ ΡΠ΅ΡΡΠ° Π±Π΅Π· Π»ΠΈΡΠ½Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠΈΠ½ΡΡ Ρ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΠ»: ΠΏΠΎΠ½ΠΈΠ·ΠΈΠ»ΡΡ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ.
ΠΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ²
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ, Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ Π²Π»ΠΈΡΠ»ΠΎ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π§ΡΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ? 
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΠΎΠ² ΡΠ°ΡΡΠ΅Ρ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Orchestrator, waitUntil, Allure ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΠ²Π°Π΅ΡΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ². ΠΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ³ΠΎΠ½ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΠ΅ΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠ»-ΡΠ΅ΠΊΠ²Π΅ΡΡ, Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π° Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡ ΠΈΡ
ΠΏΠΎΡΡΠΈΡΠΌΠΈ.
ΠΠΈΠ±ΠΎ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ² Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ, ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠΊΠΎΠΏΠ°ΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. 
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠ°ΡΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ² ΡΠ΅ΡΠ΅Π· AndroidJUnitRunner. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ°ΠΌ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΠ³Π΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π»ΡΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΌ. ΠΡ Π΅ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠΏΠ°Π»ΠΈ Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Spoon. ΠΠΎ Π²ΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π½Π°ΠΌ ΠΊΠ°Π·Π°Π»ΠΎΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠΌ.
ΠΡΡΡ Gradle-ΠΊΠΎΠΌΠ°Π½Π΄Π° β Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ². Π Π°Π·Π΄Π΅Π»ΡΠ΅ΡΡ ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΡΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ, ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡ ΠΈΡ
Π½Π° ΡΡΠΈΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
. Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ΅Π³ΠΎ-ΡΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ, ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΠΏΡΠΎΡΡΠΎΠ³ΠΎ. ΠΠ°ΡΠ΅ΠΌ Π·Π΄Π΅ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ? 
Π Π΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ²ΠΎΠΉ Gradle-ΡΠ°ΡΠΊ, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Worker API Gradle. ΠΠ³ΠΎ ΠΈΠ΄Π΅Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ: WorkerExecutor, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄ΡΠ°ΡΠΊΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΡΠ°ΡΠΊΠΈ, ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ WorkAction. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ WorkParameters. 
Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Android-ΡΠ΅ΡΡΠΎΠ² β connectedAndroidTest, ΠΈ Π²ΡΡΡΠ½ΡΠ»ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅Π΅. ΠΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΊΠΈΠΉ AndroidTestOrchestratorRemoteAndroidTestRunner, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΠ· ΠΊΠΎΠ΄Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΡΡ. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ITestRunListener ΠΈ Π½Π°Π±ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ Runner. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΡΡΡ API, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΎΠ³Π΄Π° Π½Π°ΡΠ»ΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Gradle 4.0 ΡΡΠ°Π»ΠΈ Deprecated, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ. 
Π’Π΅ΠΊΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°ΡΠΈΡ
ΡΠ΅ΡΡΠΎΠ² Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ. ΠΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π΄Π²Π° Π°Π³Π΅Π½ΡΠ°. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΠΎ Π²ΠΎΡΠ΅ΠΌΡ ΡΠΌΡΠ»ΡΡΠΎΡΠΎΠ² β Π·Π΄Π΅ΡΡ ΠΈΡ
Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΡΡΠΈ. 
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π½Π° 16 ΡΠΌΡΠ»ΡΡΠΎΡΠ°Ρ
ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π·Π° 30 ΠΌΠΈΠ½ΡΡ, Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡ
ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° 5 ΡΠ°ΡΠΎΠ². ΠΠΎ ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ΅ΡΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. Π‘ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½Π΅Ρ ΡΠ΅ΡΡΠΎΠ², Π±Π΅Π· Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ
ΡΠ°ΡΡ
ΠΎΠ΄ΠΎΠ² Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
Π§Π΅Π³ΠΎ ΠΌΡ Π΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ, ΠΏΡΠΎΠ΄Π΅Π»Π°Π² Π²ΡΠ΅ ΡΡΠΎ? 
ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΡΠΎΡ Π³ΡΠ°ΡΠΈΠΊ, ΡΠΎ Π·Π° Π³ΠΎΠ΄ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ UI-ΡΠ΅ΡΡΠΎΠ² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π°ΡΠΈΡ
ΡΠ΅Π»ΠΈΠ·ΠΎΠ² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠΎΡΠ»ΠΎ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ HotFix ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ. Π’ΠΎ Π΅ΡΡΡ ΡΠ΅ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, Π²Π½ΠΎΡΠΈΡΡ ΠΌΠ°ΡΡΡΠ°Π±Π½ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ Π±Π΅Π· ΠΎΡΠΎΠ±ΠΎΠΉ ΠΎΠ³Π»ΡΠ΄ΠΊΠΈ.
Π‘Π΅ΠΉΡΠ°Ρ Ρ Π½Π°Ρ, ΠΏΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ QA, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ 71% ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ ΠΏΠ»Π°Π½ ΠΏΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ° ΡΠ΅Π»ΠΈΠ·Π΅ ΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π΄Π²ΡΡ
-ΡΡΠ΅Ρ
ΡΠ°ΡΠΎΠ². Π Π΅Π»ΠΈΠ·Ρ ΡΠ»ΡΡΠ°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°Π· Π² ΠΎΠ΄Π½Ρ-Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ Π³ΡΠ°ΡΠΈΠΊΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°. 
Π§ΡΠΎ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Ρ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅?
ΠΠ»Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ Π½Π°ΡΠΈΡ ΡΠ΅ΡΡΠΎΠ² ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠ°ΠΊ Android Test Orchestrator, MockWebServer, Espresso Intens. Dagger 2 ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π΄Π΅. ΠΠ»Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ IdlingResource, Π΅ΡΡΡ ΠΊΠΎΡΡΡΠ»Ρ waitUntil. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΉ Gradle-ΡΠ°ΡΠΊ, Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΏΠ°Π΄Π°ΡΡ. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ², Π½Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠΉ Gradle-ΡΠ°ΡΠΊΠΈ.
Π£ Π½Π°Ρ ΡΠ΅ΠΉΡΠ°Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠΎΡΡ ΡΡΡΡΡΠΈ ΡΠ΅ΡΡΠΎΠ². ΠΠ½ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ Π²ΡΠ΅Ρ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ². ΠΠΎΠ½ΡΠ΅ΠΌ ΠΌΡ ΠΈΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠ»-ΡΠ΅ΠΊΠ²Π΅ΡΡ.
Π Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ΅ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΌ ΡΠΎΠ±ΠΎΡΠΎΠΌ. ΠΡΠ΄Π΅Π»ΠΈΠ»ΠΈ Matcher ΠΈ Lookup, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΡΡΠ΅ΡΡ ΡΡΡΠΎΡΡΡΡ Π² Allure, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π°Π²ΡΠΎΠ΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ, ΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊΡΡ ΡΠ°ΡΡΡ ΡΠ΅Π³ΡΠ΅ΡΡΠ° ΠΌΡ ΠΏΠΎΠΊΡΡΠ»ΠΈ.
Π§ΡΠΎ ΠΆΠ΅ Π΄Π°Π»ΡΡΠ΅? Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΏΠ»Π°Π½Ρ ΠΏΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ IdlingResource. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΠΈΡ , ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ OkHttpClient. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΏΠ»Π°Π½Ρ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ². Π‘Π΅ΠΉΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ: ΠΊΠ°ΠΊ Ρ ΡΠΊΠ°Π·Π°Π», ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π° 30 ΠΌΠΈΠ½ΡΡ, Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ΄Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ. Π, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ°Π³ΠΈ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΡΡΠ΅ΡΠ°.
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π²Π°Ρ Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ» ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, Π²ΡΠ΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ², ΠΎ ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π». ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°ΠΌ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.





