ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ! ΠΠ½Π΅Ρ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π½Π° IT ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ β IDE Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ API. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π½ΡΠΊΠΎΠΈ ΠΎΡ Π²Π°Ρ Π²Π΅ΡΠ΅ Π΄Π° Π·Π½Π°ΡΡ Π·Π° Π½Π°Ρ ΠΎΡ . ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΈΠΌΠ°Π»ΠΎ Π²ΡΠ΅ΠΎΠ±Ρ Π²Π°ΡΠ΅Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅Π³Π° ΡΠ΅ Π·Π°Π΅ΠΌΠ°ΠΌΠ΅ Ρ ΡΠΎΠ·ΠΈ Π½Π΅ΠΏΡΠΈΡΡΠ΅Π½ Π½Π΅Π΄ΠΎΡΡΠΈΠ³.

ΠΠΎΡΠΈΠ²Π°ΡΠΈΡ
ΠΠΈΡ ΠΌΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ²Π° ΠΊΠ°ΠΊ, Π²ΡΡΡΠ½ΠΎΡΡ, ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΡΠ°ΠΊΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΠΌ Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»Π° ΡΠ°Π±ΠΎΡΠ° Ρ API. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ ΡΡΡ ΡΠΏΠΈΡΡΠΊ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΡΡ, Π·Π° ΠΊΠΎΠΉΡΠΎ ΡΠΌΡΡΠ°ΠΌΠ΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ Π΅ Β«IDE Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ APIΒ», ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ΄ΡΡΠΆΠ°:
- Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ Π·Π°ΡΠ²ΠΊΠΈ)
- ΠΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΡΠ΅ΡΡΠΎΠ²Π΅
- ΠΠ΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅
- Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° API, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠΌΠΏΠΎΡΡ ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠΈ ΠΊΠ°ΡΠΎ Swagger, OpenAPI, WADL ΠΈ Ρ.Π½.
- ΠΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ
- ΠΠΎΠ±ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- ΠΈ Ρ.Π½.
Π‘ΠΏΠΈΡΡΠΊΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ ΡΠΏΠΎΡΠ΅Π΄ ΠΆΠ΅Π»Π°Π½ΠΈΡΡΠ°. ΠΠ°ΠΆΠ½ΠΎ Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ°ΠΌΠ°ΡΠ° IDE, Π½ΠΎ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΠΊΠ°ΡΠΎ ΠΎΠ±Π»Π°ΡΠ½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄, ΡΡΠ»ΡΠ³Π° Π·Π° ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ Ρ.Π½. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π΄ΠΈΠΊΡΡΠ²Π°Ρ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΌΠΎΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π½ΠΎ ΠΈ ΠΏΡΠΈΡΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΠ° ΠΊΠΎΠ³ΠΎ Π΅ Π½ΡΠΆΠ΅Π½ ΡΠ°ΠΊΡΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ? ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π·Π° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° API β ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈ ΡΠ΅ΡΡΠ΅ΡΠΈ =). Π Π΄ΠΎΠΊΠ°ΡΠΎ Π·Π° ΠΏΡΡΠ²ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΠΏΡΠΎΡΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π·Π° ΡΠ΅ΡΡΠ΅ΡΠΈΡΠ΅ ΡΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π° ΠΌΠΎΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΡ Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² CI.
Π ΡΠ°ΠΊΠ°, ΡΠ»Π΅Π΄Π²Π°ΠΉΠΊΠΈ ΡΠ΅Π·ΠΈ Π½Π°ΡΠΎΠΊΠΈ, Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ. ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΌΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π°Π»ΠΈ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°.
ΠΡΡΠ·ΠΎ Π½Π°ΡΠ°Π»ΠΎ
ΠΠ°ΡΠ°Π»ΠΎ Π½Π° ΠΏΡΡΠ²Π°ΡΠ° Π·Π°ΠΏΠΎΠ·Π½Π°Π½ΡΡΠ²ΠΎ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΎΡ . Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π²ΡΠΈΡΠΊΠΈ 3 ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ β Windows, Linux, MacOS. ΠΠ·ΡΠ΅Π³Π»Π΅ΡΠ΅, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅. ΠΡΠΈ ΠΏΡΡΠ²ΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡ Π΅ΠΊΡΠ°Π½:

ΠΠ»ΠΈΠΊΠ½Π΅ΡΠ΅ Π½Π° ΠΏΠ»ΡΡΠ° Π² Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΠΎΠ±Π»Π°ΡΡΡΠ° Π·Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΡΠ²Π°ΡΠ° Π·Π°ΡΠ²ΠΊΠ°. ΠΠΊΠ»Π°Π΄ΠΊΠ°ΡΠ° Ρ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:

Π©Π΅ ΡΠΏΡΠ΅ΠΌ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΎΠΌΠ½Ρ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ REST ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ° ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ. ΠΠ΅ΠΊΠ° ΠΈΠ·Π²ΡΡΡΠΈΠΌ ΠΏΡΡΠ²Π°ΡΠ° Π·Π°ΡΠ²ΠΊΠ° Π½Π° url

ΠΠ° ΠΏΡΡΠ² ΠΏΠΎΠ³Π»Π΅Π΄ ΠΏΠ°Π½Π΅Π»ΡΡ Ρ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ ΡΡΡΠΎ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ·Π½Π΅Π½Π°Π΄ΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° ΠΎΠ±ΡΡΠ½Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ:
- Π’ΡΠ»ΠΎΡΠΎ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ° Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΎ Π²ΡΠ² Π²ΠΈΠ΄ Π½Π° Π΄ΡΡΠ²ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π° Π΄ΠΎΠ±Π°Π²Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡ, Π° ΠΎΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ ΠΏΠΎ-Π΄ΠΎΠ»Ρ
- ΠΠΌΠ° ΡΠ°Π·Π΄Π΅Π» Assertions, Π² ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ°
ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ, Π½Π°ΡΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΡΠ΄ΠΎΠ±Π΅Π½ REST ΠΊΠ»ΠΈΠ΅Π½Ρ. ΠΠΎ Π½ΠΈΠ΅ Π½Π΅ Π±ΠΈΡ ΠΌΠ΅ ΡΠ΅ ΡΡΠ±ΡΠ°Π»ΠΈ ΡΡΠΊ, Π°ΠΊΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Ρ Π° ΡΠ°ΠΌΠΎ Π΄ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° TestMace.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΡΠ·Π΅Π»
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° TestMace Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π²ΡΠ·Π»ΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°Ρ ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π²ΡΠ·Π΅Π» RequestStep. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ Π²ΡΠ·Π»ΠΈ:
- RequestStep. Π’ΠΎΠ²Π° Π΅ Π²ΡΠ·Π΅Π», Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π·Π°ΡΠ²ΠΊΠ°. ΠΠ°ΡΠΎ Π΄ΡΡΠ΅ΡΠ΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π» Assertion.
- Assertion. ΠΡΠ·Π΅Π», ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅. ΠΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΡΡΠ΅ΡΠ΅Π½ Π²ΡΠ·Π΅Π» ΡΠ°ΠΌΠΎ Π·Π° Π²ΡΠ·Π΅Π» RequestStep.
- Folder. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° Folder ΠΈ RequestStep Π²ΡΠ·Π»ΠΈ Π² ΡΠ΅Π±Π΅ ΡΠΈ.
- Project. Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΡΠ΅Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ·Π΅Π», ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ. Π ΠΎΡΡΠ°Π½Π°Π»ΠΎΡΠΎ ΠΏΠΎΠ²ΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° Π²ΡΠ·Π΅Π»Π° Folder.
- Link. ΠΡΡΠ·ΠΊΠ° ΠΊΡΠΌ Folder ΠΈΠ»ΠΈ RequestStep Π²ΡΠ·Π΅Π». ΠΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ.
- ΠΈ Ρ.Π½.
ΠΡΠ·Π»ΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ Π² scratches (ΠΏΠ°Π½Π΅Π» Π²Π»ΡΠ²ΠΎ Π΄ΠΎΠ»Ρ, ΡΠ»ΡΠΆΠΈ Π·Π° Π±ΡΡΠ·ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° "Π΅Π΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΈ" Π·Π°ΡΠ²ΠΊΠΈ) ΠΈ Π² project (ΠΏΠ°Π½Π΅Π» Π²Π»ΡΠ²ΠΎ Π³ΠΎΡΠ΅), Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠΏΡΠ΅ΠΌ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
ΠΡΠΎΠ΅ΠΊΡ
ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ΅ Π·Π°Π±Π΅Π»ΡΠ·Π°Π»ΠΈ ΡΠ°ΠΌΠΎΡΠ½Π°ΡΠ° Π»ΠΈΠ½ΠΈΡ Project Π² Π»Π΅Π²ΠΈΡ Π³ΠΎΡΠ΅Π½ ΡΠ³ΡΠ». Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΡΠ΅Π½ΡΡ Π½Π° Π΄ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΈΠΉΡΠΎ ΠΏΡΡ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π²Π°ΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° Π²Π°Ρ ΠΌΡΡΡΠΎ.
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π°ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅, ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π² CI, ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ Ρ.Π½.
ΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ
ΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΡΠ° Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π’Π΅Π·ΠΈ ΠΎΡ Π²Π°Ρ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° TestMace, Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π²Π΅ΡΠ΅ ΡΠ° ΡΠ°Π·Π±Π΅ΡΠ°Π»ΠΈ Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ. Π ΡΠ°ΠΊΠ°, ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΡΠ° Π½Π°ΡΠΈΠ½ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈΡΠ΅. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π² Postman ΠΈΠ»ΠΈ Insomnia. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π½ΠΈΠ΅ ΠΎΡΠΈΠ΄ΠΎΡ
ΠΌΠ΅ ΠΏΠΎ-Π΄Π°Π»Π΅Ρ ΠΈ ΡΠ°Π·Π²ΠΈΡ
ΠΌΠ΅ ΡΠ΅ΠΌΠ°ΡΠ°. Π TestMace ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π²Π°Ρ Π½Π° Π½ΠΈΠ²ΠΎ Π²ΡΠ·Π΅Π». ΠΡΠ΅ΠΊΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠΈ ΠΈ Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΡΠΈΡΠ΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Ρ $. ΠΡΠΎ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΡΡ
:
$prevStepβ Π»ΠΈΠ½ΠΊ ΠΊΡΠΌ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ Π²ΡΠ·Π΅Π»$nextStepβ Π»ΠΈΠ½ΠΊ ΠΊΡΠΌ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ Π²ΡΠ·Π΅Π»$parentβ ΡΡΡΠΎΡΠΎ, Π½ΠΎ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠ΅Π΄ΠΊΠ°$responseβ ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΎΡ ΡΡΡΠ²ΡΡΠ°$envβ ΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΠΎΠΊΠΎΠ»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°$dynamicVarβ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΡΡΠ·Π΄Π°Π²Π°Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΡΠ²ΠΊΠ°ΡΠ°
$env β Π²ΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠ²Π° ΡΠ° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ½ΠΎ Π½ΠΈΠ²ΠΎ, Π½ΠΎ Π½Π°Π±ΠΎΡΡΡ ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΠΎΠΊΠΎΠ»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΈΠ·Π±ΡΠ°Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°.
ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΊΡΠΌ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΠ΅Π· ${variable_name}
ΠΠ°ΡΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΡΡΠ³Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ ΡΡΠ»Π° ΠΈΠ·ΡΠ°Π·. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° url ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΠ°Π· ΠΎΡ Π²ΠΈΠ΄Π°
http://${host}:${port}/${endpoint}.
ΠΡΠ΄Π΅Π»Π½ΠΎ ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΊΡΠΈΠΏΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·ΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ (ΡΠΎΠΊΠ΅Π½ ΠΈΠ»ΠΈ ΡΠ΅Π»ΠΈΡ Π·Π°Π³Π»Π°Π²ΠΈΠ΅), ΠΊΠΎΠΈΡΠΎ ΡΠ° Π΄ΠΎΡΠ»ΠΈ ΠΎΡ ΡΡΡΠ²ΡΡΠ° ΡΠ»Π΅Π΄ ΡΡΠΏΠ΅ΡΠ΅Π½ Π»ΠΎΠ³ΠΈΠ½. TestMace ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠΈΡΠ΅. ΠΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ ΠΊΠΎΠ»ΠΈΠ·ΠΈΠΈ Ρ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ 'ΡΡΠ°ΡΠΈΡΠ½ΠΈ' ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΡΠ° ΠΈΠ·Π½Π΅ΡΠ΅Π½ΠΈ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΎΠ±Π΅ΠΊΡ $dynamicVar.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π²ΡΠΈΡΠΊΠΈ Π³ΠΎΡΠ΅ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΡΠ΅Π»ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎ -> Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΡΡΠ΅ΡΡΠ²ΠΎ -> ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Folder Π²ΡΠ·Π΅Π» Π·Π° Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ RequestStep Π²ΡΠ·Π»ΠΈ.
ΠΠ²ΡΠΎΠ΄ΠΎΠ²ΡΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΡΠ°Π·Π°
ΠΠ° ΡΠ΄ΠΎΠ±Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (ΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ) Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈ ΠΎΡΠ²Π΅ΡΠ»ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΡΠ°Π·Π°, Π·Π° Π΄Π° ΡΡΠ°Π½Π΅ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠΎΡΠ½ΠΈ Π½Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ°Π²Π½ΡΠ²Π° ΡΡΠΎΡΠ²Π΅ΡΠ½Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°. Π’ΡΠΊ Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ»ΡΡΠ°ΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ Π²Π΅Π΄Π½ΡΠΆ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΡΠΎ ΠΏΡΡΠΈ Π΄Π° ΡΡΠ΅Ρ:

ΠΠ°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π½ΠΎ ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π·Π°Π³Π»Π°Π²ΠΈΡ, ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°Π³Π»Π°Π²ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π·Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Content-Type), ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ. Π‘ΠΏΠΈΡΡΠΊΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π²Π° Ρ ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
Undo/redo
ΠΡΠΌΡΠ½Π°ΡΠ°/ΠΏΠΎΠ²ΡΠΎΡΡΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π΅Π½, Π½ΠΎ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Π΄Π°Π»Π΅Ρ Π½Π΅ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅ (ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ API Π½Π΅ ΡΠ° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅). ΠΠΎ Π½ΠΈΠ΅ Π½Π΅ ΡΠΌΠ΅ ΠΎΡ ΡΠ°ΠΊΠΈΠ²Π°!) Undo/redo Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΠ΅Π»ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΡΠΌΠ΅Π½ΡΠ½Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π²ΡΠ·Π΅Π», Π½ΠΎ ΠΈ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅, ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅, ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ Ρ.Π½. ΠΠ°ΠΉ-ΠΊΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅.
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅
ΠΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π²ΡΠ·Π΅Π» Assertion. ΠΠ΄Π½Π° ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ Π±Π΅Π· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΈ.
ΠΡΠ·Π΅Π» Assertion ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ (assertions). ΠΡΡΠΊΠΎ ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ° ΡΠ²ΠΎΠΉ ΡΠΈΠΏ, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΈΠΏΠ° ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ.
Compare values β ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²Π½ΡΠ²Π° 2 ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅: Β«ΡΠ°Π²Π½ΠΎΒ», Β«Π½Π΅ ΡΠ°Π²Π½ΠΎΒ», Β«ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎΒ», Β«ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎΒ», Β«ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎΒ», Β«ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎΒ».
Contains value β ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄ΡΡΡΠΈΠ½Π³Π° Π² ΡΡΡΠΎΠΊΠ°ΡΠ°.
XPath β ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°, ΡΠ΅ ΠΏΠΎ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ° Π² XML Π»Π΅ΠΆΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ.
JavaScript assertion β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΡΠΊΡΠΈΠΏΡ Π½Π° javascript, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ° true ΠΏΡΠΈ ΡΡΠΏΠ΅Ρ ΠΈ false ΠΏΡΠΈ Π½Π΅ΡΡΠΏΠ΅Ρ .
ΠΠ°Π±Π΅Π»ΡΠ·Π²Π°ΠΌ, ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΡΠΌΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ 3 ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ:

ΠΠΈΡΠ΅Π½ΠΊΠ°ΡΠ° Π½Π° ΡΠΎΡΡΠ°ΡΠ° Π΅ Π±ΡΡΠ·ΠΎΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ ΠΎΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΡΠΎΠ²Π°!

ΠΠ±Π°ΡΠ΅, ΡΠ°ΠΊΠΈΠ²Π° ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ ΠΈΠΌΠ°Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈ ΡΡΠ΅ΡΠ° Ρ ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ javascript ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΠ΅. Π ΡΡΠΊ TestMace ΡΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΄ΠΎΠ±Π½Π° ΡΡΠ΅Π΄Π° Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅, ΠΎΡΠ²Π΅ΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈ Π΄ΠΎΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° API
TestMace ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π΄Π° ΠΏΠΎΠ»Π·Π²Π° API, Π½ΠΎ ΠΈ Π΄Π° Π³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ°. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡΠ½Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° ΠΎΡΠ³Π°Π½ΠΈΡΠ½ΠΎ Π² ΠΎΡΡΠ°Π½Π°Π»Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° API ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠΈ Swagger 2.0 / OpenAPI 3.0. Π’ΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π΅ ΠΌΡΡΡΠ²ΠΎ ΡΡΠ»ΠΎ, Π° Π΅ ΠΏΠ»ΡΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΡΠ΅ ΡΠ°ΡΡΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π² ΡΠ°ΡΡΠ½ΠΎΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π°Π²ΡΠΎΠ·Π°ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° url Π°Π΄ΡΠ΅ΡΠΈ, HTTP Π·Π°Π³Π»Π°Π²ΠΊΠΈ, query ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ; Π² Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ° Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° API.
Π‘ΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° Π²ΡΠ·Π»ΠΈ
Π‘Π»ΡΡΠ°ΠΉ: ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅Π½ Π·Π°ΠΏΡΠΎΡ ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ ΡΡΠ» ΡΡΠ΅Π½Π°ΡΠΈΠΉ Ρ ΠΊΠΎΠ»Π΅Π³Π° ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π΄Π° Π³ΠΎ ΠΏΡΠΈΠΊΠ°ΡΠΈΡΠ΅ ΠΊΡΠΌ Π±ΡΠ³. TestMace ΠΎΠ±Ρ Π²Π°ΡΠ° ΠΈ ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ: ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π²ΡΠ·Π΅Π» ΠΈ Π΄ΠΎΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠ²ΠΎ Π² url. ΠΠΎΠΏΠΈ-ΠΏΠ΅ΠΉΡΡ ΠΈ Π²ΠΈΠ΅ Π²Π΅ΡΠ΅ Π»Π΅ΡΠ½ΠΎ ΡΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ° Π½Π° Π΄ΡΡΠ³Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ.
Π§ΠΎΠ²Π΅ΠΊΠΎΡΠΈΡΠ°Π΅ΠΌ ΡΠΎΡΠΌΠ°Ρ Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ°ΠΉΠ» Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ yml (ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΏΡΠΈ Π½ΠΎΠ΄Π° Assertion), ΠΈΠ»ΠΈ Π² ΠΏΠ°ΠΏΠΊΠ° Ρ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π²ΡΠ·Π΅Π»Π° ΠΈ ΡΠ°ΠΉΠ» index.yml Π² Π½Π΅Ρ.
ΠΡΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΉΠ»ΡΡ Ρ Π·Π°ΠΏΠΈΡΠ°, ΠΊΠΎΠΉΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ
ΠΌΠ΅ Π² ΠΎΠ±Π·ΠΎΡΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅:
index.yml
children: []
variables: {}
type: RequestStep
assignVariables: []
requestData:
request:
method: GET
url: 'https://next.json-generator.com/api/json/get/NJv-NT-U8'
headers: []
disabledInheritedHeaders: []
params: []
body:
type: Json
jsonBody: ''
xmlBody: ''
textBody: ''
formData: []
file: ''
formURLEncoded: []
strictSSL: Inherit
authData:
type: inherit
name: Scratch 1ΠΠ°ΠΊΡΠΎ Π²ΠΈΠΆΠ΄Π°ΡΠ΅, Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΏΡΠ΅Π΄Π΅Π»Π½ΠΎ ΡΡΠ½ΠΎ. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠ² ΡΠΎΡΠΌΠ°Ρ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΊΠΎΠΌΡΠΎΡΡΠ΅Π½ Π·Π° ΡΡΡΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅.
ΠΠ΅ΡΠ°ΡΡ ΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΏΠΊΠΈΡΠ΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ²ΡΠ°ΡΡ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡΡΠ° Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΎΡ Π²ΠΈΠ΄Π°:

Π‘Π΅ ΠΎΡΡΠ°Π·ΡΠ²Π° Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° (ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π΅ ΡΠ°ΠΌΠΎ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΏΠΊΠΈΡΠ΅, Π½ΠΎ ΡΡΡΠ½ΠΎΡΡΡΠ° Π΅ ΡΡΠ½Π°)

ΠΠΎΠ΅ΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΌΠΏΠΎΡΡ ΠΎΡ Postman
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅, Π½ΡΠΊΠΎΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΎΠΏΠΈΡΠ°Ρ (Π½Π°Π»ΠΈ?) Π½ΠΎΠ²ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΈΠ»ΠΈ (ΠΊΠΎΠΉ Π·Π½Π°Π΅?) Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ Π² ΡΠ²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΏΡΡΠ½Π° ΠΎΡ Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π°ΡΡΡΠΏΠ²Π°Π½ΠΈΡ Π² ΡΡΡΠΈΡ Postman. ΠΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠ»ΡΡΠ°ΠΈ TestMace ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΠΌΠΏΠΎΡΡ Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ ΠΎΡ Postman. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΠΌΠΏΠΎΡΡ Π±Π΅Π· ΡΠ΅ΡΡΠΎΠ²Π΅, Π½ΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ Π½Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ ΠΈ ΡΡΡ Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°.
ΠΠ»Π°Π½ΠΎΠ²Π΅
ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ Π²Π°Ρ, ΠΊΠΎΠΈΡΠΎ ΡΡΠΈΠ³Π½Π°Ρ Π° Π΄ΠΎ ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ, Ρ Π°ΡΠ΅ΡΠ°Ρ Π° Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ. ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ! Π Π°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Ρ ΠΏΡΠ»Π½Π° ΡΠΈΠ»Π° ΠΈ Π΅ΡΠΎ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΡΠΊΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠ±Π»Π°ΡΠ½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ
ΠΠ΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΆΠ΅Π»Π°Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ ΠΊΠ°ΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ, Π·Π°ΡΠΎΠ²Π° ΡΠΎΡΠΌΠ°ΡΠ° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π΅Π½ Π·Π° ΡΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠΆΠ΄Π° ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ, Π·Π°ΡΠΎΠ²Π° Π΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ·Π½Π°ΡΠΈΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π· Π½Π°ΡΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ.
CLI
ΠΠ°ΠΊΡΠΎ Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΌΠ΅, ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΠ΅ ΠΎΡ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° IDE Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π½Π΅ Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ. CLI Π΅ ΡΠΎΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π² TestMace, Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ. Π Π°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ CLI Π΅ Π² ΠΏΡΠ»Π½Π° ΡΠΈΠ»Π°, Π² ΡΠ°Π½Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΏΡΠΎΡΡ ΠΊΠΎΠ½Π·ΠΎΠ»Π΅Π½ ΠΎΡΡΠ΅Ρ. ΠΠΎ-ΠΊΡΡΠ½ΠΎ Π΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΎΡΡΠ΅Ρ Π² ΡΠΎΡΠΌΠ°Ρ JUnit.
ΠΠ»Π°Π³ΠΈΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΡΠ»Π°ΡΠ° ΠΌΠΎΡ Π½Π° Π½Π°ΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½Π°Π±ΠΎΡΡΡ ΠΎΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π΅ Π±Π΅Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΈΠΌΠ° Π·Π°Π΄Π°ΡΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΌΠ΅Π½Π½ΠΎ Π·Π°ΡΠΎΠ²Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ SDK Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ ΠΈ Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅.
Π Π°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π°ΡortΠΈΠΌΠ΅Π½ΡΠ° ΠΎΡ ΡΠΈΠΏΠΎΠ²Π΅ Π²ΡΠ·Π»ΠΈ
Π’ΠΎΠ·ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ Π²ΡΠ·Π»ΠΈ Π½Π΅ ΠΏΠΎΠΊΡΠΈΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΡΠ·Π»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ:
- Script Π²ΡΠ·Π΅Π» β ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΠΈ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ js ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ API. Π‘ ΡΠ°ΠΊΡΠ² ΡΠΈΠΏ Π²ΡΠ·Π΅Π» ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π΅ΡΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° pre-request ΠΈ post-request ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π² Postman.
- GraphQL Π²ΡΠ·Π΅Π» β ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° graphql
- Custom assertion Π²ΡΠ·Π΅Π» β ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π½ΠΈΡΡ ΡΠΏΠΈΡΡΠΊ, ΡΠΎΠΉ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π²Π°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΡΡΠ΅Π· Π²Π°ΡΠ°ΡΠ° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ°.
Π§Π΅ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π½ΠΈ Π²ΡΠΏΡΠΎΡΠΈ
Π§Π΅ΠΌ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°ΡΠ΅ ΠΎΡ Postman?
- ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π·Π° Π²ΡΠ·Π»ΠΈ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π·ΠΊΡΠ°ΠΉΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°
- Π§ΠΎΠ²Π΅ΠΊΠΎΡΠΈΡΠ°Π΅ΠΌ ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ Π±Π΅Π· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΠΎ-ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° js Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Π·Π° ΡΠ΅ΡΡΠΎΠ²Π΅ (Π°Π²ΡΠΎΠ·Π°Π²ΡΡΡΠ²Π°Π½Π΅, ΡΡΠ°ΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ)
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅
Π’ΠΎΠ²Π° Π»ΠΈ Π΅ open-source ΠΏΡΠΎΠ΄ΡΠΊΡ?
ΠΠ΅, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½, Π½ΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄
Π‘ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π»ΠΈΡΠ΅?
ΠΠ°Π΅Π΄Π½ΠΎ Ρ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΡΠ½Π΅ΠΌ ΠΏΠ»Π°ΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. Π’Ρ ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠΈ ΡΡΡΠ²ΡΡΠ½Π° ΡΠ°ΡΡ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°ΠΏΡΠ΅Π΄Π²Π° Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΡΡΠΏΠΊΠΈ ΠΊΡΠΌ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΏΡΠΎΠ΄ΡΠΊΡΡΡ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΎΡΠ·ΠΈΠ²ΠΈ ΠΎΡ Π½Π°ΡΠΈΡΠ΅ ΡΠ°Π½Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠΎΠ²Π° ΠΏΠΎΡΠ²ΡΡΠ΄ΡΡ. ΠΠΊΡΠΈΠ²Π½ΠΎ ΡΡΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π±Π΅Π· ΡΡΡΠ½ΠΎ ΡΡΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ Ρ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ Π΄ΠΎΠ±ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½ΠΈ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΡΠΊ:
ΠΡΠ°ΠΊΠ²Π°ΠΌΠ΅ Ρ Π½Π΅ΡΡΡΠΏΠ΅Π½ΠΈΠ΅ Π²Π°ΡΠΈΡΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ!
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
