TestMace. ื”ืชื—ืœื” ืžื”ื™ืจื”

TestMace. ื”ืชื—ืœื” ืžื”ื™ืจื”

ืฉืœื•ื ืœื›ื•ืœื. ืœืื˜ ืœืื˜ ืื ื—ื ื• ื™ื•ืฆืื™ื ืžื”ืฆืœืœื™ื ื•ืžืžืฉื™ื›ื™ื ื‘ืกื“ืจืช ื”ื›ืชื‘ื•ืช ืขืœ ื”ืžื•ืฆืจ ืฉืœื ื•. ืœืื—ืจ ืงื•ื“ื ืžืืžืจ ืกืงื™ืจื”, ืงื™ื‘ืœื ื• ื”ืจื‘ื” ืžืฉื•ื‘ (ื‘ืขื™ืงืจ ื—ื™ื•ื‘ื™), ื”ืฆืขื•ืช ื•ื“ื™ื•ื•ื—ื™ ื‘ืื’ื™ื. ื”ื™ื•ื ื ืฆื™ื’ TestMace ื‘ืคืขื•ืœื” ื•ืชื•ื›ืœื• ืœื”ืขืจื™ืš ื›ืžื” ืžื”ืชื›ื•ื ื•ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื•. ืœื˜ื‘ื™ืœื” ืžืœืื” ื™ื•ืชืจ, ืื ื™ ืžืžืœื™ืฅ ืœืš ืœืขื™ื™ืŸ ื‘ืชื™ืขื•ื“ ืฉืœื ื• ื‘ื›ืชื•ื‘ืช http://docs-ru.testmace.com. ืื– ื‘ื•ื ื ืœืš!

ื”ืชืงื ื”

ื ืชื—ื™ืœ ืžื”ื‘ื ืืœื™ื•ืช. ื”ืืคืœื™ืงืฆื™ื” ื–ืžื™ื ื” ื•ืœืžืขืฉื” ื ื‘ื“ืงื” ื‘ืฉืœื•ืฉ ืคืœื˜ืคื•ืจืžื•ืช - ืœื™ื ื•ืงืก, ื—ืœื•ื ื•ืช, MacOS. ืืชื” ื™ื›ื•ืœ ืœื”ื•ืจื™ื“ ืืช ืชื•ื›ื ื™ืช ื”ื”ืชืงื ื” ืขื‘ื•ืจ ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉืžืžื ื” ืืชื” ืžืขื•ื ื™ื™ืŸ ื”ืืชืจ ืฉืœื ื•. ืœืžืฉืชืžืฉื™ ืœื™ื ื•ืงืก ืืคืฉืจ ืœื”ืชืงื™ืŸ ื—ื‘ื™ืœืช ื”ืฆืžื“. ืื ื—ื ื• ืžืื•ื“ ืžืงื•ื•ื™ื ืฉ-Microsoft Store ื•-App Store ื™ื’ื™ืขื• ืœื–ื” ื‘ืงืจื•ื‘ (ื”ืื ื–ื” ื ื—ื•ืฅ? ืžื” ื“ืขืชื›ื?).

ืชืจื—ื™ืฉ ื ื™ืกื™ื•ื ื™

ื‘ื—ืจื ื• ื‘ืชืจื—ื™ืฉ ื”ืกื˜ื ื“ืจื˜ื™ ื”ื‘ื ื›ื ื•ืฉื ื”ืžื‘ื—ืŸ ืฉืœื ื•:

  • ื›ื ื™ืกื”: ืžืฉืชืžืฉ - ืื“ืžื™ืŸ, ืกื™ืกืžื” - ืกื™ืกืžื”
  • ื”ื•ืกืฃ ืขืจืš ื—ื“ืฉ
  • ื‘ื•ืื• ื ื‘ื“ื•ืง ืฉื”ืจืฉื•ืžื” ื ื•ืกืคื” ื›ื”ืœื›ื”

ื ื‘ื—ืŸ ืขืœ https://testmace-quick-start.herokuapp.com/. ื–ื” ื ื•ืจืžืœื™ json-server, ืžื•ืฉืœื ืœื‘ื“ื™ืงืช ื™ื™ืฉื•ืžื™ื ื›ืืœื”. ื–ื” ืขืชื” ื”ื•ืกืคื ื• ื”ืจืฉืื” ื‘ืืžืฆืขื•ืช ืืกื™ืžื•ืŸ ืœื›ืœ ืžืกืœื•ืœื™ ื”ืฉืจืช ืฉืœ json ื•ื™ืฆืจื ื• ืฉื™ื˜ืช ื”ืชื—ื‘ืจื•ืช ื›ื“ื™ ืœืงื‘ืœ ืืช ื”ืืกื™ืžื•ืŸ ื”ื–ื”. ื ืชืงื“ื ื‘ื”ื“ืจื’ื”, ื•ื ืฉืคืจ ื‘ื”ื“ืจื’ื” ืืช ื”ืคืจื•ื™ืงื˜ ืฉืœื ื•.

ื™ืฆื™ืจืช ืคืจื•ื™ืงื˜ ื•ื ื™ืกื™ื•ืŸ ืœื™ืฆื•ืจ ื™ืฉื•ืช ืœืœื ื”ืจืฉืื”

ืจืืฉื™ืช, ื‘ื•ืื• ื ื™ืฆื•ืจ ืคืจื•ื™ืงื˜ ื—ื“ืฉ (ืฉืœื—->ืคืจื•ื™ื™ืงื˜ ื—ื“ืฉ). ืื ืืชื” ืžืคืขื™ืœ ืืช ื”ืืคืœื™ืงืฆื™ื” ื‘ืคืขื ื”ืจืืฉื•ื ื”, ืคืจื•ื™ืงื˜ ื—ื“ืฉ ื™ื™ืคืชื— ืื•ื˜ื•ืžื˜ื™ืช. ืจืืฉื™ืช, ื‘ื•ืื• ื ื ืกื” ืœื”ื’ื™ืฉ ื‘ืงืฉื” ืœื™ืฆื™ืจืช ืจืฉื•ืžื” ื—ื“ืฉื” (ื‘ืžืงืจื” ืฉื™ืฆื™ืจืช ืจืฉื•ืžื•ืช ื–ืžื™ื ื” ืœืœื ืื™ืฉื•ืจ). ื‘ื—ืจ ืคืจื™ื˜ื™ื ืžืชืคืจื™ื˜ ื”ื”ืงืฉืจ ืฉืœ ืฆื•ืžืช ื”ืคืจื•ื™ืงื˜ ื”ื•ืกืฃ ืฆื•ืžืช -> RequestStep. ื”ื’ื“ืจ ืืช ืฉื ื”ืฆื•ืžืช ืœ ืœื™ืฆื•ืจ-ืคื•ืกื˜. ื›ืชื•ืฆืื” ืžื›ืš, ื™ื•ื•ืฆืจ ืฆื•ืžืช ื—ื“ืฉ ื‘ืขืฅ ื•ืชื™ืคืชื— ื›ืจื˜ื™ืกื™ื™ื” ืขื‘ื•ืจ ืฆื•ืžืช ื–ื”. ื‘ื•ืื• ื ื’ื“ื™ืจ ืืช ืคืจืžื˜ืจื™ ื”ื‘ืงืฉื” ื”ื‘ืื™ื:

  • ืกื•ื’ ื”ื‘ืงืฉื”: POST
  • url: https://testmace-quick-start.herokuapp.com/posts
  • ื’ื•ืฃ ื”ื‘ืงืฉื”: json ืขื ืขืจืš {"title": "New testmace quick start post"}
    ืื ืขืฉื™ืช ื”ื›ืœ ื ื›ื•ืŸ, ื”ืžืžืฉืง ื™ื™ืจืื” ื›ืš:

TestMace. ื”ืชื—ืœื” ืžื”ื™ืจื”

ืขื ื–ืืช, ืื ื ื ืกื” ืœืžืœื ืืช ื”ื‘ืงืฉื”, ื”ืฉืจืช ื™ื—ื–ื™ืจ ืงื•ื“ 401 ื•ืœืœื ื”ืจืฉืื” ืœื ื ืงื‘ืœ ืฉื•ื ื“ื‘ืจ ื‘ืฉืจืช ื”ื–ื”. ื•ื‘ื›ืŸ, ื‘ืื•ืคืŸ ื›ืœืœื™, ื›ืฆืคื•ื™).

ื”ื•ืกืคืช ื‘ืงืฉืช ื”ืจืฉืื”

ื›ืคื™ ืฉื›ื‘ืจ ื ืืžืจ, ื™ืฉ ืœื ื• ื ืงื•ื“ืช ืงืฆื” ืฉืœ POST /login, ืฉืœื•ืงื— ืืช json ื›ื’ื•ืฃ ื”ื‘ืงืฉื” ืฉืœ ื”ื˜ื•ืคืก: {"username": "<username>", "password": "<password>"}ืื™ืคื” username ะธ password (ืฉื•ื‘, ืžืคืกืงืช ื”ืžื‘ื•ื ืœืขื™ืœ) ื™ืฉ ืžืฉืžืขื•ื™ื•ืช admin ะธ password ื‘ื”ืชืืžื”. ื‘ืชื’ื•ื‘ื”, ื ืงื•ื“ืช ืงืฆื” ื–ื• ืžื—ื–ื™ืจื” json like {"token": "<token>"}. ื ืฉืชืžืฉ ื‘ื• ืœืฆื•ืจืš ืื™ืฉื•ืจ. ื‘ื•ืื• ืœื™ืฆื•ืจ RequestStep ืฆื•ืžืช ืขื ืฉื ื”ืชื—ื‘ืจ, ื™ืคืขืœ ื›ืื‘ ืงื“ืžื•ืŸ ืคืจื•ื™ืงื˜ ืฆื•ึนืžึถืช ื‘ืืžืฆืขื•ืช ื’ืจื™ืจื” ื•ืฉื—ืจื•ืจ, ื”ื–ื– ืฆื•ืžืช ื ืชื•ืŸ ื‘ืขืฅ ื’ื‘ื•ื” ื™ื•ืชืจ ืžื”ืฆื•ืžืช ืœื™ืฆื•ืจ-ืคื•ืกื˜. ื‘ื•ืื• ื ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจื™ื ื”ื‘ืื™ื ืœื‘ืงืฉื” ื”ื—ื“ืฉื” ืฉื ื•ืฆืจื”:

ื‘ื•ื ื ื‘ืฆืข ืืช ื”ื‘ืงืฉื” ื•ื ืงื‘ืœ ืืช ื”ืงื•ื“ ื”ืžืืชื™ื™ื ืขื ื”ืืกื™ืžื•ืŸ ื‘ืชื’ื•ื‘ื”. ืžืฉื”ื• ื›ื–ื”:

TestMace. ื”ืชื—ืœื” ืžื”ื™ืจื”

Refactoring: ื”ืกืจืช ื›ืคื™ืœื•ืช ืชื—ื•ื

ืขื“ ื›ื” ื”ื‘ืงืฉื•ืช ืื™ื ืŸ ืžืงื•ืฉืจื•ืช ืœืกืงืจื™ืคื˜ ืื—ื“. ืื‘ืœ ื–ื” ืœื ื”ื—ื™ืกืจื•ืŸ ื”ื™ื—ื™ื“. ืื ืชืกืชื›ืœื• ื”ื™ื˜ื‘, ืชื‘ื—ื™ื ื• ืฉืœืคื—ื•ืช ื”ื“ื•ืžื™ื™ืŸ ืžืฉื•ื›ืคืœ ื‘ืฉืชื™ ื”ื‘ืงืฉื•ืช. ืœื ื˜ื•ื‘. ื”ื’ื™ืข ื”ื–ืžืŸ ืœืฉื—ื–ืจ ืืช ื”ื—ืœืง ื”ื–ื” ืฉืœ ื”ืชืกืจื™ื˜ ื”ืขืชื™ื“ื™, ื•ืžืฉืชื ื™ื ื™ืขื–ืจื• ืœื ื• ื‘ื›ืš.

ืœืงื™ืจื•ื‘ ืจืืฉื•ืŸ, ืžืฉืชื ื™ื ืžืžืœืื™ื ืืช ืื•ืชื• ืชืคืงื™ื“ ื›ืžื• ื‘ื›ืœื™ื ื“ื•ืžื™ื ื•ืฉืคื•ืช ืชื›ื ื•ืช ืื—ืจื•ืช - ื‘ื™ื˜ื•ืœ ื›ืคื™ืœื•ืช, ื”ื’ื‘ืจืช ื”ืงืจื™ืื•ืช ื•ื›ื•'. ืชื•ื›ืœ ืœืงืจื•ื ืขื•ื“ ืขืœ ืžืฉืชื ื™ื ื‘ ื”ืชื™ืขื•ื“ ืฉืœื ื•. ื‘ืžืงืจื” ื–ื”, ื ืฆื˜ืจืš ืžืฉืชื ื™ ืžืฉืชืžืฉ.

ื‘ื•ืื• ื ื’ื“ื™ืจ ืžืฉืชื ื” ื‘ืจืžืช ืฆื•ืžืช ื”ืคืจื•ื™ืงื˜ domain ืขื ืžืฉืžืขื•ืช https://testmace-quick-start.herokuapp.com. ืœืฉื ื›ืš ื™ืฉ ืฆื•ืจืš

  • ืคืชื— ืืช ื”ื›ืจื˜ื™ืกื™ื™ื” ืขื ื”ืฆื•ืžืช ื”ื–ื” ื•ืœื—ืฅ ืขืœ ืกืžืœ ื”ืžื—ืฉื‘ื•ืŸ ื‘ืคื™ื ื” ื”ืฉืžืืœื™ืช ื”ืขืœื™ื•ื ื”
  • ืœื—ืฅ ืขืœ + ื”ื•ืกืฃ ืžืฉืชื ื”
  • ื”ื–ืŸ ืฉื ื•ืขืจืš ืฉืœ ืžืฉืชื ื”
    ื‘ืžืงืจื” ืฉืœื ื•, ืชื™ื‘ืช ื”ื“ื•-ืฉื™ื— ืขื ื”ืžืฉืชื ื” ืฉื ื•ืกืฃ ื™ื™ืจืื” ื›ืš:

TestMace. ื”ืชื—ืœื” ืžื”ื™ืจื”

ื‘ืกื“ืจ. ื›ืขืช, ืขืงื‘ ืชื•ืจืฉื”, ืื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื” ื–ื” ื‘ืฆืืฆืื™ื ืžื›ืœ ืจืžืช ืงื™ื ื•ืŸ. ื‘ืžืงืจื” ืฉืœื ื• ืืœื• ืฆืžืชื™ื ื”ืชื—ื‘ืจ ะธ ืœื™ืฆื•ืจ-ืคื•ืกื˜. ืขืœ ืžื ืช ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื” ื‘ืฉื“ื” ื˜ืงืกื˜, ืขืœื™ืš ืœื›ืชื•ื‘ ${<variable_name>}. ืœื“ื•ื’ืžื”, ื›ืชื•ื‘ืช ื”ืืชืจ ืœื›ื ื™ืกื” ืžื•ืžืจืช ืœ ${domain}/login, ื‘ื”ืชืืžื” ืขื‘ื•ืจ ืœื™ืฆื•ืจ-ืคื•ืกื˜ ื›ืชื•ื‘ืช ื”ืืชืจ ืฉืœ ื”ืฆื•ืžืช ืชื™ืจืื” ${domain}/posts.

ืœืคื™ื›ืš, ื‘ื”ื ื—ื™ื™ืช ืขืงืจื•ืŸ ื”- DRY, ืฉื™ืคืจื ื• ืžืขื˜ ืืช ื”ืชืจื—ื™ืฉ.

ืฉืžื•ืจ ืืช ื”ืืกื™ืžื•ืŸ ืœืžืฉืชื ื”

ืžื›ื™ื•ื•ืŸ ืฉืื ื• ืžื“ื‘ืจื™ื ืขืœ ืžืฉืชื ื™ื, ื‘ื•ืื• ื ืจื—ื™ื‘ ืžืขื˜ ื‘ื ื•ืฉื ื–ื”. ื›ืจื’ืข, ื‘ืžืงืจื” ืฉืœ ื›ื ื™ืกื” ืžื•ืฆืœื—ืช, ืื ื• ืžืงื‘ืœื™ื ืžื”ืฉืจืช ืืกื™ืžื•ืŸ ื”ืจืฉืื”, ืื•ืชื• ื ื–ื“ืงืง ื‘ื‘ืงืฉื•ืช ื”ื‘ืื•ืช. ื‘ื•ืื• ื ืฉืžื•ืจ ืืช ื”ืืกื™ืžื•ืŸ ื”ื–ื” ื‘ืžืฉืชื ื”. ื›ื™ ื”ืขืจืš ืฉืœ ื”ืžืฉืชื ื” ื™ื™ืงื‘ืข ื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ื”ืกืงืจื™ืคื˜, ืื ื• ืžืฉืชืžืฉื™ื ื‘ืžื ื’ื ื•ืŸ ืžื™ื•ื—ื“ ืœืฉื ื›ืš - ืžืฉืชื ื™ื ื“ื™ื ืžื™ื™ื.

ืจืืฉื™ืช, ื‘ื•ืื• ื ื‘ืฆืข ื‘ืงืฉืช ื”ืชื—ื‘ืจื•ืช. ื‘ื›ืจื˜ื™ืกื™ื™ื” ืžื ื•ืชื— ืขื ื”, ื”ืขื‘ืจ ืืช ื”ืกืžืŸ ืžืขืœ ื”ืืกื™ืžื•ืŸ ื•ื‘ืชืคืจื™ื˜ ื”ื”ืงืฉืจ (ืฉื ืงืจื ืื• ื‘ืืžืฆืขื•ืช ืœื—ืฆืŸ ื”ืขื›ื‘ืจ ื”ื™ืžื ื™ ืื• ืขืœ ื™ื“ื™ ืœื—ื™ืฆื” ืขืœ ื”ื›ืคืชื•ืจ ...) ื‘ื—ืจ ืืช ื”ืคืจื™ื˜ ื”ืงืฆื” ืœืžืฉืชื ื”. ืชื•ืคื™ืข ืชื™ื‘ืช ื“ื•-ืฉื™ื— ืขื ื”ืฉื“ื•ืช ื”ื‘ืื™ื:

  • ื ืชื™ื‘ - ืื™ื–ื” ื—ืœืง ืžื”ืชืฉื•ื‘ื” ื ืœืงื— (ื‘ืžืงืจื” ืฉืœื ื• ื–ื” ื›ืŸ body.token)
  • ืขืจืš ื ื•ื›ื—ื™ - ืื™ื–ื” ืขืจืš ื™ืฉ ืœืื•ืจืš ื”ื ืชื™ื‘ (ื‘ืžืงืจื” ืฉืœื ื• ื–ื” ื”ืขืจืš ื”ืกืžืœ)
  • ืฉื ืžืฉืชื ื” - ืฉื ื”ืžืฉืชื ื” ืื™ืคื” ืขืจืš ื ื•ื›ื—ื™ ื™ื™ืฉืžืจ. ื‘ืžืงืจื” ืฉืœื ื• ื–ื” ื™ื”ื™ื” token
  • ืฆื•ืžืช - ื‘ืื™ื–ื” ืžื”ืื‘ื•ืช ื”ืงื“ืžื•ื ื™ื ื™ื•ื•ืฆืจ ื”ืžืฉืชื ื” ืฉื ืžืฉืชื ื”. ื‘ื•ื ื ื‘ื—ืจ ืคืจื•ื™ืงื˜

ืชื™ื‘ืช ื”ื“ื•-ืฉื™ื— ืฉื”ื•ืฉืœืžื” ื ืจืื™ืช ื›ืš:

TestMace. ื”ืชื—ืœื” ืžื”ื™ืจื”

ืขื›ืฉื™ื• ื‘ื›ืœ ืคืขื ืฉื”ืฆื•ืžืช ืžื‘ื•ืฆืข ื”ืชื—ื‘ืจ ืžืฉืชื ื” ื“ื™ื ืžื™ token ื™ืขื•ื“ื›ืŸ ื‘ืขืจืš ื”ื—ื“ืฉ ืžื”ืชื’ื•ื‘ื”. ื•ื”ืžืฉืชื ื” ื”ื–ื” ื™ืื•ื—ืกืŸ ื‘ ืคืจื•ื™ืงื˜ ืฆื•ืžืช, ื•ื‘ื–ื›ื•ืช ื”ื™ืจื•ืฉื”, ื™ื”ื™ื” ื–ืžื™ืŸ ืœืฆืืฆืื™ื.

ื›ื“ื™ ืœื’ืฉืช ืœืžืฉืชื ื™ื ื“ื™ื ืžื™ื™ื, ืขืœื™ืš ืœื”ืฉืชืžืฉ ืžืฉืชื ื” ืžื•ื‘ื ื” $dynamicVar. ืœื“ื•ื’ืžื”, ื›ื“ื™ ืœื’ืฉืช ืœืืกื™ืžื•ืŸ ืžืื•ื—ืกืŸ, ืขืœื™ืš ืœื”ืชืงืฉืจ ${$dynamicVar.token}.

ืื ื• ืžืขื‘ื™ืจื™ื ืืช ืืกื™ืžื•ืŸ ื”ื”ืจืฉืื” ืœื‘ืงืฉื•ืช

ื‘ืฉืœื‘ื™ื ื”ืงื•ื“ืžื™ื ืงื™ื‘ืœื ื• ืืช ืืกื™ืžื•ืŸ ื”ื”ืจืฉืื” ื•ื›ืœ ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืขืฉื•ืช ื”ื•ื ืœื”ื•ืกื™ืฃ ื›ื•ืชืจืช Authorization ืขื ืžืฉืžืขื•ืช Bearer <tokenValue> ื‘ื›ืœ ื”ื‘ืงืฉื•ืช ื”ื“ื•ืจืฉื•ืช ืื™ืฉื•ืจ, ื›ื•ืœืœ ืœื™ืฆื•ืจ-ืคื•ืกื˜. ื™ืฉื ืŸ ืžืกืคืจ ื“ืจื›ื™ื ืœืขืฉื•ืช ื–ืืช:

  1. ื”ืขืชืง ื‘ืื•ืคืŸ ื™ื“ื ื™ ืืช ื”ืืกื™ืžื•ืŸ ื•ื”ื•ืกืฃ ื›ื•ืชืจืช ื”ืจืฉืื” ืœื‘ืงืฉื•ืช ื”ืขื ื™ื™ืŸ. ื”ืฉื™ื˜ื” ืขื•ื‘ื“ืช, ืืš ื”ืฉื™ืžื•ืฉ ื‘ื” ืžื•ื’ื‘ืœ ืจืง ืœื‘ืงืฉื•ืช ืžืกื•ื’ "ืขืฉื” ื•ื ื–ืจืง". ืœื ืžืชืื™ื ืœื‘ื™ืฆื•ืข ื—ื•ื–ืจ ืฉืœ ืกืงืจื™ืคื˜ื™ื
  2. ื”ืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืจืฉืื”.
  3. ืœื”ืฉืชืžืฉ ื›ื•ืชืจื•ืช ื‘ืจื™ืจืช ืžื—ื“ืœ

ื”ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ื” ื”ืฉื ื™ื™ื” ื ืจืื” ืžื•ื‘ืŸ ืžืืœื™ื•, ืืš ื‘ื”ืงืฉืจ ืฉืœ ืžืืžืจ ื–ื”, ื’ื™ืฉื” ื–ื• ื”ื™ื... ืœื ืžืขื ื™ื™ื ืช. ื ื•, ื‘ืืžืช: ืžื ื’ื ื•ืŸ ื”ื”ืจืฉืื” ืคืœื•ืก ืžื™ื ื•ืก ืžื•ื›ืจ ืœื›ื ืžื›ืœื™ื ืื—ืจื™ื (ื’ื ืื ื™ืฉ ืœื ื• ื“ื‘ืจื™ื ื›ืžื• ื™ืจื•ืฉื” ืฉืœ ื”ืจืฉืื”) ื•ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืœื ื™ืขื•ืจืจ ืฉืืœื•ืช.

ื“ื‘ืจ ื ื•ืกืฃ ื”ื•ื ื›ื•ืชืจื•ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ! ื‘ืงืฆืจื”, ื›ื•ืชืจื•ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ืŸ ื›ื•ืชืจื•ืช HTTP ืฉืขื‘ืจื• ื‘ื™ืจื•ืฉื” ืฉืžืชื•ื•ืกืคื•ืช ืœื‘ืงืฉื” ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืืœื ืื ื”ืŸ ืžื•ืฉื‘ืชื•ืช ื‘ืžืคื•ืจืฉ. ื‘ืืžืฆืขื•ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื–ื•, ืืชื” ื™ื›ื•ืœ, ืœืžืฉืœ, ืœื™ื™ืฉื ื”ืจืฉืื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืื• ืคืฉื•ื˜ ืœื”ื™ืคื˜ืจ ืžืฉื›ืคื•ืœ ื‘ืกืงืจื™ืคื˜ื™ื. ื‘ื•ืื• ื ืฉืชืžืฉ ื‘ืชื›ื•ื ื” ื–ื• ื›ื“ื™ ืœื”ืขื‘ื™ืจ ืืกื™ืžื•ืŸ ื‘ื›ื•ืชืจื•ืช.

ื‘ืขื‘ืจ, ืฉืžืจื ื• ื‘ื–ื”ื™ืจื•ืช ืืช ื”ืืกื™ืžื•ืŸ ืœืžืฉืชื ื” ื“ื™ื ืžื™ $dynamicVar.token ื‘ืจืžืช ืฆื•ืžืช ื”ืคืจื•ื™ืงื˜. ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœืขืฉื•ืช ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

  1. ื”ื’ื“ืจ ื›ื•ืชืจืช ื‘ืจื™ืจืช ืžื—ื“ืœ Authorization ืขื ืžืฉืžืขื•ืช Bearer ${$dynamicVar.token} ื‘ืจืžืช ืฆื•ืžืช ื”ืคืจื•ื™ืงื˜. ืœืฉื ื›ืš, ื‘ืžืžืฉืง ื”ืคืจื•ื™ืงื˜ ืฉืœ ื”ืฆื•ืžืช ืขืœื™ืš ืœืคืชื•ื— ื“ื•-ืฉื™ื— ืขื ื›ื•ืชืจื•ืช ื‘ืจื™ืจืช ืžื—ื“ืœ (ื›ืคืชื•ืจ ื›ื•ืชืจื•ืช ื‘ืคื™ื ื” ื”ื™ืžื ื™ืช ื”ืขืœื™ื•ื ื”) ื•ื”ื•ืกื™ืคื• ื›ื•ืชืจืช ืžืชืื™ืžื”. ืชื™ื‘ืช ื”ื“ื•-ืฉื™ื— ืขื ื”ืขืจื›ื™ื ื”ืžืœืื™ื ืชื™ืจืื” ื›ืš:
    TestMace. ื”ืชื—ืœื” ืžื”ื™ืจื”
  2. ื”ืฉื‘ืช ืืช ื”ื›ื•ืชืจืช ื”ื–ื• ืžื‘ืงืฉืช ื”ื”ืชื—ื‘ืจื•ืช. ื–ื” ืžื•ื‘ืŸ: ื‘ื–ืžืŸ ื”ื›ื ื™ืกื”, ืขื“ื™ื™ืŸ ืื™ืŸ ืœื ื• ืืกื™ืžื•ืŸ ื•ืื ื• ื ืชืงื™ืŸ ืื•ืชื• ืขื ื‘ืงืฉื” ื–ื•. ืœื›ืŸ, ื‘ืžืžืฉืง ื”ื›ื ื™ืกื” ืฉืœ ื”ื‘ืงืฉื” ื‘ืœืฉื•ื ื™ืช ื›ื•ืชืจื•ืช ื‘ืื–ื•ืจ ื‘ื™ืจื•ืฉื” ื‘ื˜ืœ ืืช ื”ืกื™ืžื•ืŸ ื‘ื›ื•ืชืจืช ื”ื”ืจืฉืื”.

ื–ื” ื”ื›ืœ. ื›ืขืช ื›ื•ืชืจืช ื”ื”ืจืฉืื” ืชืชื•ื•ืกืฃ ืœื›ืœ ื”ื‘ืงืฉื•ืช ืฉื”ืŸ ื™ืœื“ื™ื ืฉืœ ืฆื•ืžืช ื”ืคืจื•ื™ืงื˜, ืžืœื‘ื“ ืฆื•ืžืช ื”ื›ื ื™ืกื”. ืžืกืชื‘ืจ ืฉื‘ืฉืœื‘ ื”ื–ื” ื›ื‘ืจ ื™ืฉ ืœื ื• ืชืกืจื™ื˜ ืžื•ื›ืŸ ื•ื›ืœ ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืขืฉื•ืช ื–ื” ืœื”ืฉื™ืง ืื•ืชื•. ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืืช ื”ืกืงืจื™ืคื˜ ืขืœ ื™ื“ื™ ื‘ื—ื™ืจื” ื”ืคืขืœื” ื‘ืชืคืจื™ื˜ ื”ื”ืงืฉืจ ืฉืœ ืฆื•ืžืช ื”ืคืจื•ื™ืงื˜.

ื‘ื“ื™ืงืช ื ื›ื•ื ื•ืช ื™ืฆื™ืจืช ื”ืคื•ืกื˜

ื‘ืฉืœื‘ ื–ื”, ื”ืกืงืจื™ืคื˜ ืฉืœื ื• ื™ื›ื•ืœ ืœื”ื™ื›ื ืก ื•ืœื™ืฆื•ืจ ืคื•ืกื˜ ื‘ืืžืฆืขื•ืช ืืกื™ืžื•ืŸ ื”ืจืฉืื”. ืขื ื–ืืช, ืขืœื™ื ื• ืœื•ื•ื“ื ืฉืœืคื•ืกื˜ ื”ื—ื“ืฉ ืฉื ื•ืฆืจ ื™ืฉ ืืช ื”ืฉื ื”ื ื›ื•ืŸ. ื›ืœื•ืžืจ, ื‘ืขืฆื, ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœืขืฉื•ืช ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

  • ืฉืœื— ื‘ืงืฉื” ืœืงื‘ืœืช ืคื•ืกื˜ ื‘ืืžืฆืขื•ืช ืชืขื•ื“ืช ื–ื”ื•ืช,
  • ื‘ื“ืงื• ืฉื”ืฉื ืฉื”ืชืงื‘ืœ ืžื”ืฉืจืช ืชื•ืื ืืช ื”ืฉื ืฉื ืฉืœื— ื‘ืขืช ื™ืฆื™ืจืช ื”ืคื•ืกื˜

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ืฆืขื“ ื”ืจืืฉื•ืŸ. ืžื›ื™ื•ื•ืŸ ืฉืขืจืš ื”ืžื–ื”ื” ื ืงื‘ืข ื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ืกืงืจื™ืคื˜, ืขืœื™ืš ืœื™ืฆื•ืจ ืžืฉืชื ื” ื“ื™ื ืžื™ (ื‘ื•ืื• ื ืงืจื ืœื–ื” postId) ืžื”ืฆื•ืžืช ืœื™ืฆื•ืจ-ืคื•ืกื˜ ื‘ืจืžืช ืฆื•ืžืช ื”ืคืจื•ื™ืงื˜. ืื ื—ื ื• ื›ื‘ืจ ื™ื•ื“ืขื™ื ืื™ืš ืœืขืฉื•ืช ื–ืืช, ืคืฉื•ื˜ ืขื™ื™ืŸ ื‘ืกืขื™ืฃ ืฉืžื•ืจ ืืช ื”ืืกื™ืžื•ืŸ ืœืžืฉืชื ื”. ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœื™ืฆื•ืจ ื‘ืงืฉื” ืœืงื‘ืœ ืคื•ืกื˜ ื‘ืืžืฆืขื•ืช ื”ืžื–ื”ื” ื”ื–ื”. ืœืฉื ื›ืš, ื‘ื•ืื• ื ื™ืฆื•ืจ RequestStep ืœืงื‘ืœ ืคื•ืกื˜ ืขื ื”ืคืจืžื˜ืจื™ื ื”ื‘ืื™ื:

  • ืกื•ื’ ื”ื‘ืงืฉื”: GET
  • ื›ืชื•ื‘ืช ืืชืจ: ${domain}/posts/${$dynamicVar.postId}

ื›ื“ื™ ืœื™ื™ืฉื ืืช ื”ืฉืœื‘ ื”ืฉื ื™, ืขืœื™ื ื• ืœื”ื›ื™ืจ ื˜ึทืขึฒื ึธื” ืงืฉืจ. ืฆื•ืžืช Assertion ื”ื•ื ืฆื•ืžืช ื”ืžืืคืฉืจ ืœืš ืœื›ืชื•ื‘ ืฆ'ืงื™ื ืขื‘ื•ืจ ื‘ืงืฉื•ืช ืกืคืฆื™ืคื™ื•ืช. ื›ืœ ืฆื•ืžืช ื˜ืขื ื” ื™ื›ื•ืœ ืœื”ื›ื™ืœ ืžืกืคืจ ื”ืฆื”ืจื•ืช (ืฆ'ืงื™ื). ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืขื•ื“ ืขืœ ื›ืœ ืกื•ื’ื™ ื”ื˜ืขื ื•ืช ืฉืœื ื• ืชื™ืขื•ื“. ืื ื—ื ื• ื ืฉืชืžืฉ Compare ื˜ืขื ื” ืขื ืžืคืขื™ืœ equal. ื™ืฉื ืŸ ืžืกืคืจ ื“ืจื›ื™ื ืœื™ืฆื•ืจ ื”ืฆื”ืจื•ืช:

  1. ืืจื•ืš. ืฆื•ืจ ื‘ืื•ืคืŸ ื™ื“ื ื™ ืฆื•ืžืช Assertion ืžืชืคืจื™ื˜ ื”ื”ืงืฉืจ ืฉืœ ื”ืฆื•ืžืช RequestStep. ื‘ืฆื•ืžืช ื”-Assertion ืฉื ื•ืฆืจ, ื”ื•ืกืฃ ืืช ื”ืฆื”ืจืช ื”ืขื ื™ื™ืŸ ื•ืžืœื ืืช ื”ืฉื“ื•ืช.
  2. ืžึธื”ึดื™ืจ. ืฆื•ืจ ืฆื•ืžืช Assertion ื™ื—ื“ ืขื ื˜ืขื ื” ืžืชื’ื•ื‘ืช ื”ืฆื•ืžืช RequestStep ื‘ืืžืฆืขื•ืช ืชืคืจื™ื˜ ื”ื”ืงืฉืจ

ื‘ื•ืื• ื ืฉืชืžืฉ ื‘ืฉื™ื˜ื” ื”ืฉื ื™ื™ื”. ื›ืš ื–ื” ื™ื™ืจืื” ื‘ืžืงืจื” ืฉืœื ื•.

TestMace. ื”ืชื—ืœื” ืžื”ื™ืจื”

ืœืžื™ ืฉืœื ืžื‘ื™ืŸ, ื–ื” ืžื” ืฉืงื•ืจื”:

  1. ื‘ืฆืข ื‘ืงืฉื” ื‘ืฆื•ืžืช ืœืงื‘ืœ ืคื•ืกื˜
  2. ื‘ื›ืจื˜ื™ืกื™ื™ื” ืžื ื•ืชื— ืขื ื”, ื”ืชืงืฉืจ ืœืชืคืจื™ื˜ ื”ื”ืงืฉืจ ื•ื‘ื—ืจ ืฆื•ืจ ื˜ืขื ื” -> ืœึฐื”ึทืฉืึฐื•ื•ึนืช -> ืฉื•ื•ื”

ืžื–ืœ ื˜ื•ื‘, ื™ืฆืจื ื• ืืช ื”ืžื‘ื—ืŸ ื”ืจืืฉื•ืŸ ืฉืœื ื•! ืคืฉื•ื˜, ืœื? ื›ืขืช ืชื•ื›ืœื• ืœื”ืจื™ืฅ ืืช ื”ืกืงืจื™ืคื˜ ื‘ืžืœื•ืื• ื•ืœื™ื”ื ื•ืช ืžื”ืชื•ืฆืื”. ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœืฉื—ื–ืจ ืื•ืชื• ืžืขื˜ ื•ืœื”ื•ืฆื™ื ืื•ืชื• title ืœืžืฉืชื ื” ื ืคืจื“. ืื‘ืœ ื ืฉืื™ืจ ืืช ื–ื” ื‘ืฉื‘ื™ืœืš ื›ืฉื™ืขื•ืจื™ ื‘ื™ืช)

ืžืกืงื ื”

ื‘ืžื“ืจื™ืš ื–ื” ื™ืฆืจื ื• ืชืจื—ื™ืฉ ืžืœื ื•ื‘ืžืงื‘ื™ืœ ืกืงืจื ื• ื›ืžื” ืžื”ืชื›ื•ื ื•ืช ืฉืœ ื”ืžื•ืฆืจ ืฉืœื ื•. ื›ืžื•ื‘ืŸ ืฉืœื ื”ืฉืชืžืฉื ื• ื‘ื›ืœ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื•ื‘ื›ืชื‘ื•ืช ื”ื‘ืื•ืช ื ืกืคืง ืกืงื™ืจื” ืžืคื•ืจื˜ืช ืฉืœ ื”ื™ื›ื•ืœื•ืช ืฉืœ TestMace. ื”ืžืฉืš ืœืขืงื•ื‘!

ื .ื‘ ืœืžื™ ืฉืžืชืขืฆืœ ืœืฉื—ื–ืจ ืืช ื›ืœ ื”ืฉืœื‘ื™ื, ื”ืงืœื˜ื ื• ื‘ื—ื‘ื™ื‘ื•ืช ืžืื’ืจ ืขื ื”ืคืจื•ื™ืงื˜ ืžื”ืžืืžืจ. ืืชื” ื™ื›ื•ืœ ืœืคืชื•ื— ืื•ืชื• ืขื ืฉืœื— -> ืคืจื•ื™ื™ืงื˜ ืคืชื•ื— ื•ื‘ื—ืจ ื‘ืชื™ืงื™ื™ื” Project.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”