TestMace. چټک پیل

TestMace. چټک پیل

سلام و ټولو ته. موږ ورو ورو د سیوري څخه راپورته کیږو او زموږ د محصول په اړه د مقالو لړۍ ته دوام ورکوو. وروسته تیر د بیاکتنې مقالې، موږ ډیری فیډبیک (ډیری مثبت)، وړاندیزونه او د بګ راپورونه ترلاسه کړل. نن موږ به وښیو TestMace په عمل کې او تاسو به وکولی شئ زموږ د غوښتنلیک ځینې ځانګړتیاوې ستاینه وکړئ. د ډیر بشپړ ډوبیدو لپاره، زه تاسو ته مشوره ورکوم چې زموږ اسنادو ته مراجعه وکړئ http://docs-ru.testmace.com. نو، راځئ چې لاړ شو!

د جوړولو

راځئ چې د بندیز سره پیل وکړو. غوښتنلیک شتون لري او واقعیا په دریو پلیټ فارمونو کې ازمول شوی - لینکس ، وینډوز ، ماکوس. تاسو کولی شئ د OS لپاره انسټالر ډاونلوډ کړئ چې تاسو یې لیوالتیا لرئ زموږ ویب پاڼه. د لینوکس کاروونکو لپاره دا ممکنه ده چې نصب شي سنیپ بسته. موږ واقعیا امید لرو چې د مایکروسافټ سټور او اپل سټور به ډیر ژر دې ته ورسي (ایا دا اړینه ده؟ تاسو څه فکر کوئ؟).

تجربوي سناریو

موږ لاندې معیاري سناریو زموږ د ازموینې موضوع په توګه غوره کړه:

  • ننوتل: کارن - اډمین، پټنوم - پټنوم
  • یو نوی داخله اضافه کړئ
  • راځئ وګورو چې ریکارډ په سمه توګه اضافه شوی

موږ به ازموینه وکړو https://testmace-quick-start.herokuapp.com/. دا عادي خبره ده json-server، د داسې غوښتنلیکونو ازموینې لپاره مناسب. موږ یوازې د json-server ټولو لارو ته د نښه کولو اجازه اضافه کړه او د دې نښه ترلاسه کولو لپاره د ننوتلو طریقه جوړه کړه. موږ به په تدریجي ډول حرکت وکړو، په تدریجي توګه زموږ پروژې ته وده ورکوو.

د پروژې رامینځته کول او د اجازې پرته د ادارې رامینځته کولو هڅه کول

لومړی، راځئ چې یوه نوې پروژه جوړه کړو (د دوتنې->نوې پروژه). که تاسو د لومړي ځل لپاره غوښتنلیک پیل کوئ، نو نوې پروژه به په اوتومات ډول پرانیزي. لومړی ، راځئ هڅه وکړو چې د نوي ریکارډ رامینځته کولو غوښتنه وکړو (په هغه حالت کې چې ریکارډونه رامینځته کول د اجازې پرته شتون لري). د پروژې نوډ شرایطو مینو څخه توکي غوره کړئ نوډ اضافه کړئ -> 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 په څیر بیرته راګرځي {"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. دا سرلیک د ننوتلو غوښتنې څخه غیر فعال کړئ. دا د پوهیدو وړ ده: د ننوتلو په وخت کې، موږ لا تر اوسه نښه نلرو او موږ به یې د دې غوښتنې سره نصب کړو. له همدې امله، په ټب کې د غوښتنې د ننوتلو انٹرفیس کې د سرکي په سیمه کې وارث شوی د اجازې سرلیک غیر چیک کړئ.

بس نور څه نه. اوس د واک ورکولو سرلیک به په ټولو غوښتنو کې اضافه شي چې د پروژې نوډ ماشومان دي، د ننوتلو نوډ پرته. دا معلومه شوه چې پدې مرحله کې موږ لا دمخه یو سکریپټ چمتو کړی دی او ټول هغه څه چې موږ یې باید پیل کړو. تاسو کولی شئ د انتخاب کولو له لارې سکریپټ چل کړئ د دويم د پروژې نوډ د شرایطو مینو کې.

د پوسټ جوړونې سموالي معاینه کول

پدې مرحله کې، زموږ سکریپټ کولی شي لاګ ان شي او د اختیار نښه په کارولو سره یو پوسټ جوړ کړي. په هرصورت، موږ باید ډاډ ترلاسه کړو چې نوی جوړ شوی پوسټ سم نوم لري. دا، په اصل کې، ټول هغه څه چې پاتې دي د لاندې کولو لپاره دي:

  • د ID لخوا د پوسټ ترلاسه کولو لپاره غوښتنه واستوئ،
  • وګورئ چې د سرور څخه ترلاسه شوی نوم د پوسټ رامینځته کولو پرمهال لیږل شوي نوم سره سمون لري

راځئ چې لومړی ګام وګورو. څرنګه چې د id ارزښت د سکریپټ اجرا کولو په جریان کې ټاکل کیږي، تاسو اړتیا لرئ چې یو متحرک متغیر جوړ کړئ (راځئ چې دا غږ وکړو postId) له نوډ څخه جوړ - پوسټ د پروژې نوډ په کچه. موږ دمخه پوهیږو چې دا څنګه وکړو، یوازې برخې ته مراجعه وکړئ نښه یو متغیر ته خوندي کړئ. ټول هغه څه چې پاتې دي د دې ID په کارولو سره د پوسټ ترلاسه کولو لپاره غوښتنه رامینځته کول دي. د دې کولو لپاره، راځئ چې یو RequestStep جوړ کړو ترلاسه کول د لاندې پیرامیټونو سره:

  • د غوښتنې ډول: GET
  • URL: ${domain}/post/${$dynamicVar.postId}

د دویم ګام د پلي کولو لپاره، موږ باید پوه شو ادعا غوټۍ د اصرار نوډ یو نوډ دی چې تاسو ته اجازه درکوي د ځانګړو غوښتنو لپاره چکونه ولیکئ. هر اثار نوډ کولی شي څو ادعاګانې ولري (چیکونه). تاسو کولی شئ زموږ څخه د هر ډول ادعاګانو په اړه نور ولولئ اسناد. موږ به وکاروو Compare د آپریټر سره ادعا equal. د ادعا کولو لپاره ډیری لارې شتون لري:

  1. اوږده. په لاسي ډول د RequestStep نوډ د شرایطو مینو څخه د اصرار نوډ جوړ کړئ. په جوړ شوي اصرار نوډ کې، د ګټو ادعا اضافه کړئ او ساحې ډک کړئ.
  2. چټک. د شرایطو مینو په کارولو سره د RequestStep نوډ ځواب څخه د ادعا سره د ادعا نوډ جوړ کړئ

راځئ چې دویمه طریقه وکاروو. دا هغه څه دي چې دا به زموږ د قضیې په څیر ښکاري.

TestMace. چټک پیل

د هغو کسانو لپاره چې نه پوهیږي، دلته څه پیښیږي:

  1. په نوډ کې غوښتنه وکړئ ترلاسه کول
  2. په ټب کې تجزیه شوی ځواب، د شرایطو مینو ته زنګ ووهئ او غوره کړئ ادعا جوړول -> مقايسه -> مساوي

مبارک، موږ خپله لومړۍ ازموینه جوړه کړه! ساده، دا نه ده؟ اوس تاسو کولی شئ سکریپټ په بشپړ ډول پرمخ وړئ او له پایلې څخه خوند واخلئ. ټول هغه څه چې پاتې دي دا دي چې یو څه یې بیاکتنه وکړئ او هغه یې وباسئ title په یو جلا متغیر کې. مګر موږ به دا ستاسو لپاره د کور کار په توګه پریږدو)

پایلې

پدې لارښود کې ، موږ یو بشپړ سناریو رامینځته کړې او په ورته وخت کې زموږ د محصول ځینې ځانګړتیاوې بیاکتنه کړې. البته، موږ ټول فعالیت نه دی کارولی او په لاندې مقالو کې به موږ د TestMace وړتیاوو یوه مفصله کتنه وړاندې کړو. ولاړ شه!

PS د هغو کسانو لپاره چې د ټولو مرحلو بیا تولید لپاره خورا سست دي ، موږ په مهربانۍ سره ثبت کړي دي ذخیره د مقالې څخه د پروژې سره. تاسو کولی شئ د هغې سره خلاص کړئ د دوتنې -> پروژه پرانیستل او د پروژې فولډر غوره کړئ.

سرچینه: www.habr.com

Add a comment