АлСна Π’Π°Ρ…Ρ‚ΠΈΠ½Π° 16 августа 2021

🐧 Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» для тСстировщика: ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Unix/Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ

Π‘ Ρ‚ΠΎΠ±ΠΎΠΉ слоТно, Π½ΠΎ Π±Π΅Π· тСбя Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΠΎΡΠ²ΡΡ‰Π°Π΅Ρ‚ΡΡ тСкстовой консоли, Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ эту ΠΏΡ€Π΅ΠΌΡƒΠ΄Ρ€ΠΎΡΡ‚ΡŒ стоит ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌΡƒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρƒ ΠΏΠΎ Quality Assurance.
🐧 Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» для тСстировщика: ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Unix/Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги: 40 основных ΠΊΠΎΠΌΠ°Π½Π΄

МоС знакомство с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ‡Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ Π² тСстированиС. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго с установки систСмы Π½Π° спор, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΠ°ΠΊ-Ρ‚ΠΎ приТился Linux, ΠΈ сСйчас Π²ΠΈΠ½Π΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ подвисаниС.

Π’ΠΎΠ»Ρ‡ΠΎΠΊ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ Π΄Π°Π»Π° ΡΡ‚Π°Ρ‚ΡŒΡ Β«40 основных ΠΊΠΎΠΌΠ°Π½Π΄Β» ΠΈ ΠΊΠ½ΠΈΠ³Π° Π‘ΠΊΠΎΡ‚Ρ‚Π° Π“Π°Ρ€Π°Π½Π½Π΅ΠΌΠ°Π½Π° Β«Linux/ НСобходимый ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠšΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹ΠΉ справочник» (Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ… доступно Π΅Π΅ 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅).

🐧 Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» для тСстировщика: ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Unix/Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ

ΠΠ°Π³ΡƒΠ³ΠΈΠ»ΡˆΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π° ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π·Π°Π±ΡƒΠ΄Π΅ΡˆΡŒ. Или ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π΅ΡˆΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ dd (ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ пСрСноса Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ всС, здравствуй Π²Π΅Ρ‡Π΅Ρ€ пСрСустановки систСмы ΠΈ потСря Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ – это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ основы Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Unix/Linux Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ.

Π£ мСня получился ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ список Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Bourne shell (ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ процСссоры sh, bash ΠΈ Ρ‚.Π΄.) ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚. Π’Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ:

  • Навигация ΠΏΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌ: cd, ls, pwd.
  • Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ: rm, mv, cp, mkdir, cat, more, grep, sort, touch, tail, head, less, find.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ: su, sudo.
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²Π°ΠΌΠΈ: chmod, chown, chgrp.
  • ВСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹: vi, vim, nano.
  • Архивация ΠΈ Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: tar, unzip, zip.
  • Установка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: apt, yum.
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…: man, опция -h (--help).
  • Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Ρ€Π°Π½Π΅Π΅ выполняСмых ΠΊΠΎΠΌΠ°Π½Π΄: history.
  • Π Π°Π±ΠΎΡ‚Π° с ΡΠ΅Ρ‚ΡŒΡŽ: curl, ping, nslookup, netstat, wget, telnet, ifconfig, ip, ss.
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ систСмС ΠΈ процСссах: top, du, df, ps.
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами: kill.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ большС, Π½ΠΎ эти ΠΌΠ½Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ ΠΌΠ½Π΅ Π² самом Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡƒΡ‚ΠΈ. РасскаТу ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ самых Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ….

Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠ΅ΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ²

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, для Ρ‡Π΅Π³ΠΎ тСстировщик ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π½Π°Ρ‡Π½Π΅Ρ‚ Π² Π½Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ – это Π»ΠΎΠ³ΠΈ (ΠΎΡ‚ Π°Π½Π³Π». logs – Ρ„Π°ΠΉΠ»Ρ‹ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ тСкстовыС). ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ± Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Β«Ρƒ мСня всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Β» Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ всС Π΄ΠΎΠ²ΠΎΠ΄Ρ‹ ΠΈ с Ρ‚Π°ΠΊΠΈΠΌ Ρ‚Ρ€ΡƒΠ΄ΠΎΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ шаги воспроизвСдСния. МоТно Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WinSCP ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ Π±Π°Π³Ρƒ, Π½ΠΎ Π½Π΅ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€ΠΎΡŽΡ‚ (ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΅Ρ‰Π΅, Ссли ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСно ΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ» вСсит Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ).

ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с простого. Команда tail ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° head Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ с Π½Π°Ρ‡Π°Π»Π°), Π° Ссли Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ -n, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство строк:

        tail -n 300 console.log
    

Π‘ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -f ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ дозапись Π² Ρ„Π°ΠΉΠ» Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:

        tail -f console.log
    

Команда tail ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚, Ссли ошибка ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΈ Π΅Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² послСдних строках, ΠΈΠ»ΠΈ ΠΎΠ½Π° воспроизводится прямо сСйчас. Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь ΠΆΡƒΡ€Π½Π°Π» ΠΈ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ события (строки ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ grep:

        grep -i β€˜error’ console.log
# Π³Π΄Π΅ i - рСгистронСзависимый поиск

    

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ всС строки Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ строка β€˜error’ Π±Π΅Π· зависимости ΠΎΡ‚ рСгистра. Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС возмоТностСй, Ρ‡Π΅ΠΌ я ΠΏΠΎΠΊΠ°Π·Π°Π»Π°. ΠŸΡ€ΠΎ grep ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ. Π’ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ поиска классов, Π»ΠΎΠ³ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ DEBUG ΠΈ сортировка ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ sort (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ понадобился Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅):

        grep DEBUG console-main.log | grep -oP '[a-z\.]+\.[A-Z][a-zA-Z0-9]*' | sort | uniq -c
    

Π’Ρ€Π΅Ρ‚ΠΈΠΉ способ чтСния Π»ΠΎΠ³ΠΎΠ² – ΠΊΠΎΠΌΠ°Π½Π΄Π° less. Π Π°Π±ΠΎΡ‚Π° Π² Π½Π΅ΠΉ схоТа с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ vim, Π½ΠΎ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ чтСния ΠΈ поиска ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ:

        less console.log # ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ» Π½Π° просмотр.

# Для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ клавишами:
#	Shift+g - для пСрСмСщСния Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°
#	Shift+f - для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Ρ€Π΅ΠΆΠΈΠΌ чтСния дозаписи Ρ„Π°ΠΉΠ»Π°
#	/ + β€œtext” - для поиска значСния Π²Π½ΠΈΠ· ΠΎΡ‚ курсора
#	? + β€œtext” - для поиска Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Π²Π΅Ρ€Ρ… ΠΎΡ‚ курсора
#	Q - Π²Ρ‹Ρ…ΠΎΠ΄

    
🐧 Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» для тСстировщика: ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Unix/Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ
Для чтСния Π»ΠΎΠ³ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΡ… этих Ρ‚Ρ€Π΅Ρ… способов, Π½ΠΎ самый ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ – less. Он ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с большими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΈ отслСТиваниС ошибки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚Ρ€Π΅Π΄Ρƒ.

БпасаСм ΠΏΠΎΠΊΠ°Π·: ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π² ΠΆΠΈΠ·Π½ΠΈ тСстировщика наступаСт сдача ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. БСссонныС Π½ΠΎΡ‡ΠΈ, ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π° ΠΏΡ€ΠΎΠ΄ Π·Π° час Π΄ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°, написаниС ПМИ ΠΈ постоянный пСрСтСст. И Π²ΠΎΡ‚ ΡƒΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠΎΠ½Π΅Ρ†, остался ΠΏΠΎΠΊΠ°Π·.

Π’ Ρ‚ΠΎΡ‚ Ρ€Π°Π· ΠΏΠΎΠΊΠ°Π· ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ» Π² Π²ΠΈΠ΄Π΅ испытаний ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. Π‘Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ ПМИ Π² качСствС обучСния, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ принимая систСму. ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки ΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Ссли Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π·Π°ΠΌΠΈΠ½ΠΊΠΈ.

Π’ систСмС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. Π”Π°ΠΆΠ΅ Π² Π»ΠΎΠ³Π°Ρ… Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ»Π°ΡΡŒ никакая информация. Показ встал. Π”Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ быстро, ΠΈΠ½Π°Ρ‡Π΅ Π½Π΅ Π·Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π»Π°ΡΡŒ Π·Π°Ρ‰ΠΈΡ‚Π°. Под Ρ€ΡƒΠΊΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ‚Π°ΠΊΠΎΠΉ ситуации достаточно прост:

        psql -h localhost -U <user>
#	Π³Π΄Π΅ psql - ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π΄ постгрСс
#	     h - хост ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π΄
#	     U - ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π΄

    

А дальшС Π½Π°ΠΉΡ‚ΠΈ сСлСктом Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Π±Ρ‹Π» Π»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Оказалось, Ρ‡Ρ‚ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°, ΠΈ ΠΏΠΎΠΊΠ°Π· продолТился Π² ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Ошибка Π½Π΅ Π½Π° нашСй сторонС: ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ, ΠΊΡƒΡ€Π»Ρ‹ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ

ВСстированиС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ – ΠΎΠ΄Π½Π° ΠΈΠ· самых интСрСсных Π² сфСрС Quality Assurance. Поиск Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ошибок всСгда услоТняСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ понятно, Π½Π° Ρ‡ΡŒΠ΅ΠΉ ΠΎΠ½ΠΈ сторонС, Π΅ΡΡ‚ΡŒ Π»ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π° Ρ‚ΠΎΡ‚ Π»ΠΈ тСстовый стСнд настроСно ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ собствСнно Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, я ΠΏΡ€ΠΎΠ²ΠΎΠΆΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ связности.

НачнСм с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сСтСвой доступности сСрвиса, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ΡΡŒ (дСйствия производятся с ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ поднят ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ сСрвис):

        ping <host>
    

Пинг ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚ Π½Π° Ρ‚ΠΎΠΉ сторонС ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ поднят стСнд (ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½ΠΈ ΠΎ Ρ‡Π΅ΠΌ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ICMP ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π·Π°Ρ‚ΡŒ сСтСвой экран – ΠΏΡ€ΠΈΠΌ. Ρ€Π΅Π΄.). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΠΎΡ€Ρ‚Ρ‹:

        telnet <ip> <port>
# НапримСр:
telnet checkip.dyndns.org 80

    
🐧 Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» для тСстировщика: ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Unix/Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ

Если соСдинСниС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ, остаСтся послСдний шаг ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ тСстирования ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ curl ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСдставлСнного Π² спСцификации запроса:

        
curl <host>| jq # jq для структурированного просмотра ΠΎΡ‚Π²Π΅Ρ‚Π°, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ json

    

НапримСр:

        curl 'https://proglib.io/api/paging/live'| jq
    

ΠžΡ‚Π²Π΅Ρ‚ 200, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ условия для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹.

ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ настроСк

Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ настройки Π½Π° тСстовом стСндС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ссылку ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ стСнда. НС всСгда Π΅ΡΡ‚ΡŒ рядом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ»ΠΈ дСвопс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… настройки Π»Π΅ΠΆΠ°Ρ‚ Π² Ρ„Π°ΠΉΠ»Π°Ρ… application.properties (конфигурация прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² самых Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ Π΄Π°ΠΆΠ΅ с использованиСм языков Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ – ΠΏΡ€ΠΈΠΌ.Ρ€Π΅Π΄.). Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ… ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ», Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ locate:

        locate application.properties
    
Команда locate ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ поиск Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π΅ стоит ΠΏΡƒΡ‚Π°Ρ‚ΡŒ Π΅Π΅ с сСрвСром SQL), которая пСриодичСски обновляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ. Для Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ обновлСния Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ updatedb с администраторскими полномочиями (su, sudo).

ПослС нахоТдСния ΠΏΡƒΡ‚ΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π»Π΅ΠΆΠ°Ρ‚ настройки, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² vim ΠΈΠ»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅:

        vim <path>/application.properties

    

ПослС измСнСния ΠΈ сохранСния :wq настроСк, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. РСстарт прилоТСния Π² Linux ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (Ссли Π² Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° вся нСобходимая обвязка, ΠΈΠ½Π°Ρ‡Π΅ придСтся ΡƒΠ±ΠΈΠ²Π°Ρ‚ΡŒ процСссы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ kill ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π·Π°Π½ΠΎΠ²ΠΎ – ΠΏΡ€ΠΈΠΌ. Ρ€Π΅Π΄.):

        sudo systemctl restart <serviceName>.service
    

ПослС рСстарта Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ настроСк ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π΅ запустится. Π’Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ статус прилоТСния спустя нСсколько ΠΌΠΈΠ½ΡƒΡ‚ послС рСстарта:

        sudo systemctl stΠ°tus <serviceName>.service
    
ΠŸΡ€ΠΈΠΌ. Ρ€Π΅Π΄.
Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ сработаСт, Ссли Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° вся скриптовая обвязка, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ps.
🐧 Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» для тСстировщика: ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Unix/Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ, ΠΈΠ½Π°Ρ‡Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ старыС настройки ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ Π΅Π³ΠΎ Ρ€Π΅ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ.

НуТно Π»ΠΈ это тСстировщику?

Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» – инструмСнт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ мноТСство ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π΅ прибСгая ΠΊ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… людСй ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСму ΠΈΠ»ΠΈ ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π³Π»ΡƒΠΏΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ снСсти всС. Однако ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», поэтому ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ?

Π£Π΄Π°Ρ‡ΠΈ Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ!

ΠœΠ•Π ΠžΠŸΠ Π˜Π―Π’Π˜Π―

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•