ٽيسٽ ميس. تيز شروعات

ٽيسٽ ميس. تيز شروعات

هيلو سڀ. اسان آهستي آهستي سادن مان نڪرندا آهيون ۽ اسان جي پيداوار بابت آرٽيڪل جو سلسلو جاري رکون ٿا. کان پوء پوئين مضمون جو جائزو وٺو، اسان کي تمام گهڻو موٽ ملي ٿي (اڪثر ڪري مثبت)، تجويزون ۽ بگ رپورٽون. اڄ اسين ڏيکارينداسين ٽيسٽ ميس عمل ۾ ۽ توهان اسان جي ايپليڪيشن جي ڪجهه خاصيتن جي ساراهه ڪرڻ جي قابل هوندا. وڌيڪ مڪمل وسرڻ لاء، مان توهان کي صلاح ڏيو ته اسان جي دستاويزن ڏانهن اشارو ڪريو http://docs-ru.testmace.com. سو، اچو ته هلون!

تنصيب

اچو ته بانسري سان شروع ڪريون. اپليڪيشن دستياب آهي ۽ اصل ۾ ٽن پليٽ فارمن تي آزمائشي آهي - لينڪس، ونڊوز، MacOS. توھان OS لاءِ انسٽالر ڊائون لوڊ ڪري سگھو ٿا جنھن ۾ توھان دلچسپي رکو ٿا اسان جي ويب سائيٽ. لينڪس استعمال ڪندڙن لاء ان کي انسٽال ڪرڻ ممڪن آهي اسنيپ پيڪيج. اسان واقعي اميد ٿا ڪريون ته Microsoft اسٽور ۽ ايپ اسٽور جلد ئي ان جي چوڌاري حاصل ڪندا (ڇا اهو ضروري آهي؟ توهان ڇا ٿا سوچيو؟).

تجرباتي منظر

اسان هيٺ ڏنل معياري منظر کي اسان جي امتحان واري موضوع طور چونڊيو آهي:

  • لاگ ان: صارف - منتظم، پاسورڊ - پاسورڊ
  • نئين داخلا شامل ڪريو
  • اچو ته چيڪ ڪريو ته رڪارڊ صحيح طور تي شامل ڪيو ويو

اسان ٽيسٽ ڪنداسين https://testmace-quick-start.herokuapp.com/. هي عام آهي json-serverاهڙين ايپليڪيشنن کي جانچڻ لاءِ ڀرپور. اسان صرف json-server جي سڀني رستن تي ٽوڪن ذريعي اختيار شامل ڪيو ۽ ھي ٽوڪن حاصل ڪرڻ لاءِ لاگ ان جو طريقو ٺاھيو. اسان اڳتي وڌنداسين، تدريجي طور تي اسان جي منصوبي کي بهتر بڻائي.

هڪ پروجيڪٽ ٺاهڻ ۽ اجازت ڏيڻ کان سواء هڪ ادارو ٺاهڻ جي ڪوشش

پهرين، اچو ته هڪ نئون منصوبو ٺاهيو (عڪس->نئون منصوبو). جيڪڏهن توهان پهريون ڀيرو اپليڪيشن شروع ڪري رهيا آهيو، هڪ نئون منصوبو خودڪار طريقي سان کلي ويندو. پهرين، اچو ته هڪ نئون رڪارڊ ٺاهڻ جي درخواست ڪرڻ جي ڪوشش ڪريو (جي صورت ۾ رڪارڊ ٺاهڻ جي اجازت کان سواء دستياب هجي). پراجيڪٽ نوڊ جي حوالي سان مينيو مان شيون چونڊيو نوڊ شامل ڪريو -> درخواست جو مرحلو. نوڊ جو نالو مقرر ڪريو ٺاهڻ-پوسٽ. نتيجي طور، وڻ ۾ ھڪڙو نئون نوڊ ٺاھيو ويندو ۽ ھن نوڊ لاء ھڪڙو ٽيب کوليندو. اچو ته ھيٺ ڏنل درخواست جي پيراگراف کي سيٽ ڪريو:

  • درخواست جو قسم: پوسٽ
  • url: https://testmace-quick-start.herokuapp.com/posts
  • درخواست جو جسم: json قدر سان {"title": "New testmace quick start post"}
    جيڪڏهن توهان سڀ ڪجهه صحيح ڪيو، انٽرفيس هن طرح نظر ايندو:

ٽيسٽ ميس. تيز شروعات

بهرحال، جيڪڏهن اسان درخواست کي پورو ڪرڻ جي ڪوشش ڪندا آهيون، سرور هڪ 401 ڪوڊ واپس ڪندو ۽ اجازت ڏيڻ کان سواء اسان هن سرور تي ڪجھ به حاصل نه ڪنداسين. خير، عام طور تي، جيئن توقع ڪئي وئي).

هڪ اختيار جي درخواست شامل ڪرڻ

جيئن اڳ ۾ ئي چيو ويو آهي، اسان وٽ هڪ پوسٽ آخري پوائنٽ آهي /login، جيڪو json کي فارم جي درخواست واري جسم طور وٺندو آهي: {"username": "<username>", "password": "<password>"}ڪٿي username и password (ٻيهر، مٿي ڏنل تعارفي پيراگراف مان) معنيٰ آهي admin и password ترتيب سان. جواب ۾، هي آخري پوائنٽ واپسي json وانگر {"token": "<token>"}. اسان ان کي اجازت ڏيڻ لاء استعمال ڪنداسين. اچو ته ٺاهي درخواست جو مرحلو نالي سان node لاگ ان، ابن ڏاڏن وانگر ڪم ڪندو پروجيڪٽ نوڊ ڊريگ ۽ ڊراپ استعمال ڪندي، وڻ ۾ ڏنل نوڊ کي نوڊ کان مٿاهون منتقل ڪريو ٺاهڻ-پوسٽ. اچو ته نئين ٺاهيل درخواست لاء ھيٺ ڏنل پيراگراف سيٽ ڪريو:

اچو ته درخواست تي عمل ڪريون ۽ جواب ۾ ٽوڪن سان ٻه سؤ نمبر ڪوڊ وصول ڪريون. ڪجهه هن طرح:

ٽيسٽ ميس. تيز شروعات

Refactoring: ڊومين جي نقل کي ختم ڪرڻ

اڃان تائين درخواستون ھڪڙي اسڪرپٽ ۾ ڳنڍيل نه آھن. پر هي صرف خرابي ناهي. جيڪڏهن توهان ويجهي نظر ايندي، توهان کي خبر پوندي ته گهٽ ۾ گهٽ ڊومين ٻنهي درخواستن ۾ نقل ٿيل آهي. سٺو ناهي. اهو وقت آهي مستقبل جي اسڪرپٽ جي هن حصي کي ريفيڪٽر ڪرڻ جو، ۽ متغير اسان کي هن سان مدد ڪندي.

پهرين ويجهڙائي تائين، متغير ساڳيو ڪردار ادا ڪن ٿا جيئن ٻين ساڳين اوزارن ۽ پروگرامنگ ٻولين ۾ - نقل کي ختم ڪرڻ، پڙهڻ جي صلاحيت وڌائڻ وغيره. توھان وڌيڪ پڙھي سگھوٿا متغير بابت اسان جي دستاويز. انهي صورت ۾، اسان کي صارف جي متغير جي ضرورت پوندي.

اچو ته پروجيڪٽ نوڊ جي سطح تي متغير جي وضاحت ڪريون domain معنيٰ سان https://testmace-quick-start.herokuapp.com. ان لاءِ اهو لازمي آهي

  • هن نوڊ سان ٽيب کوليو ۽ مٿي ساڄي پاسي موجود ڪيلڪيوليٽر آئڪن تي ڪلڪ ڪريو
  • تي ڪلڪ ڪريو + متغير شامل ڪريو
  • متغير جو نالو ۽ قدر داخل ڪريو
    اسان جي صورت ۾، شامل ٿيل متغير سان گفتگو هن طرح نظر ايندي:

ٽيسٽ ميس. تيز شروعات

ٺيڪ. ھاڻي، وراثت جي ڪري، اسان ھي متغير استعمال ڪري سگھون ٿا اولاد ۾ ڪنھن بھترين سطح جي. اسان جي حالت ۾ اهي نوڊس آهن لاگ ان и ٺاهڻ-پوسٽ. متن جي ميدان ۾ هڪ متغير استعمال ڪرڻ لاء، توهان کي لکڻ جي ضرورت آهي ${<variable_name>}. مثال طور، لاگ ان url کي تبديل ڪيو ويو آهي ${domain}/login، ترتيبوار لاءِ ٺاهڻ-پوسٽ node url وانگر نظر ايندو ${domain}/posts.

اھڙيءَ طرح، DRY اصول جي ھدايت ڪندي، اسان منظرنامي کي ٿورو بھتر ڪيو آھي.

ٽوڪن کي متغير ڏانهن محفوظ ڪريو

جيئن ته اسان متغير جي باري ۾ ڳالهائي رهيا آهيون، اچو ته هن موضوع تي ٿورو وڌايو. هن وقت، ڪامياب لاگ ان جي صورت ۾، اسان سرور کان هڪ اختياري ٽوڪن وصول ڪندا آهيون، جنهن جي اسان کي ايندڙ درخواستن ۾ ضرورت پوندي. اچو ته هن ٽوڪن کي variable ۾ محفوظ ڪريون. ڇاڪاڻ ته اسڪرپٽ جي عمل جي دوران متغير جي قيمت مقرر ڪئي ويندي، اسان ان لاء هڪ خاص ميڪانيزم استعمال ڪندا آهيون - متحرڪ variables.

پهرين، اچو ته هڪ لاگ ان درخواست انجام ڏيو. ٽئب ۾ پيرس جواب ڏيو، ڪرسر کي ٽوڪن جي مٿان منتقل ڪريو ۽ ڪنٽيڪٽ مينيو ۾ (جنھن کي يا ته ساڄي مائوس جي بٽڻ سان يا بٽڻ تي ڪلڪ ڪندي سڏيو ويندو آھي...) شئي چونڊيو متغير کي مقرر ڪريو. ھيٺ ڏنل شعبن سان ھڪڙو ڊائلاگ ظاھر ٿيندو:

  • رستو - جواب جو ڪهڙو حصو ورتو وڃي ٿو (اسان جي صورت ۾ اهو آهي body.token)
  • موجوده قدر - واٽ تي ڪهڙي قدر آهي (اسان جي صورت ۾ هي ٽوڪن ويل آهي)
  • قابل نالو - متغير جو نالو جتي موجوده قدر محفوظ ڪيو ويندو. اسان جي صورت ۾ اهو ٿيندو token
  • نوڊ - جن جي ابن ڏاڏن ۾ متغير پيدا ڪيو ويندو قابل نالو. اچو ته چونڊيو پروجيڪٽ

مڪمل ٿيل ڊائلاگ هن طرح نظر اچي ٿو:

ٽيسٽ ميس. تيز شروعات

هاڻي هر وقت نوڊ تي عمل ڪيو ويندو آهي لاگ ان متحرڪ variable token جواب مان نئين قيمت سان اپڊيٽ ڪيو ويندو. ۽ هي متغير ان ۾ محفوظ ڪيو ويندو پروجيڪٽ node ۽، وراثت جي مهرباني، اولاد کي دستياب هوندي.

متحرڪ متغير تائين رسائي حاصل ڪرڻ لاء، توهان کي استعمال ڪرڻ گهرجي تعمير ٿيل متغير $dynamicVar. مثال طور، ذخيرو ٿيل ٽوڪن تائين رسائي حاصل ڪرڻ لاء، توهان کي ڪال ڪرڻ جي ضرورت آهي ${$dynamicVar.token}.

اسان منظور ڪريون ٿا اجازت ڏيڻ واري ٽوڪن کي درخواستن ۾

پوئين قدمن ۾ اسان کي اختيار ڏيڻ وارو ٽوڪن ملي ٿو ۽ اسان کي صرف هڪ هيڊر شامل ڪرڻ جي ضرورت آهي Authorization معنيٰ سان Bearer <tokenValue> سڀني درخواستن ۾ اجازت جي ضرورت آهي، بشمول ٺاهڻ-پوسٽ. هن کي ڪرڻ جا ڪيترائي طريقا آهن:

  1. دستي طور ٽوڪن کي نقل ڪريو ۽ دلچسپي جي درخواستن لاءِ اختيار ڏيڻ وارو هيڊر شامل ڪريو. طريقو ڪم ڪري ٿو، پر ان جو استعمال صرف "ٺهيل ۽ اڇلائي" قسم جي درخواستن تائين محدود آهي. اسڪرپٽ جي بار بار عمل ڪرڻ لاء مناسب ناهي
  2. ڪارڪردگي استعمال ڪريو اجازت ڏيڻ.
  3. استعمال ڪريو ڊفالٽ هيڊر

ٻيو طريقو استعمال ڪرڻ واضح لڳي ٿو، پر هن مضمون جي حوالي سان، هي طريقو آهي ... غير دلچسپ. خير، واقعي: اختيار ڪرڻ وارو ميڪانيزم پلس مائنس توهان کي ٻين اوزارن کان واقف آهي (جيتوڻيڪ اسان وٽ شيون آهن جهڙوڪ اختيار جي وراثت) ۽ سوال اٿارڻ ممڪن ناهي.

ٻي شيءِ آهي ڊفالٽ هيڊرز! مختصر ۾، ڊفالٽ هيڊرز وراثت ۾ مليا آهن HTTP هيڊر جيڪي ڊفالٽ جي درخواست ۾ شامل ڪيا ويا آهن جيستائين واضح طور تي معذور نه هجي. هن ڪارڪردگي کي استعمال ڪندي، توهان ڪري سگهو ٿا، مثال طور، ڪسٽم اختيار کي لاڳو ڪرڻ يا صرف اسڪرپٽ ۾ نقل کان نجات حاصل ڪري سگهو ٿا. اچو ته هي فيچر استعمال ڪريون هيڊرز ۾ ٽوڪن پاس ڪرڻ لاءِ.

اڳي، اسان احتياط سان ٽوڪن کي متحرڪ متغير ڏانهن محفوظ ڪيو $dynamicVar.token پروجيڪٽ نوڊ جي سطح تي. باقي اهو سڀ ڪجهه ڪرڻ لاءِ آهي:

  1. ڊفالٽ عنوان جي وضاحت ڪريو Authorization معنيٰ سان Bearer ${$dynamicVar.token} پروجيڪٽ نوڊ جي سطح تي. هن کي ڪرڻ لاء، نوڊ جي پروجيڪٽ انٽرفيس ۾ توهان کي ڊفالٽ عنوانن سان هڪ ڊائلاگ کولڻ جي ضرورت آهي (بٽن سردارن مٿي ساڄي ڪنڊ ۾) ۽ لاڳاپيل عنوان شامل ڪريو. ڀريو ويلن سان ڊائلاگ هن طرح نظر ايندو:
    ٽيسٽ ميس. تيز شروعات
  2. لاگ ان جي درخواست مان هن هيڊر کي بند ڪريو. اهو سمجھڻ وارو آهي: لاگ ان جي وقت، اسان وٽ اڃا تائين ٽوڪن نه آهي ۽ اسان ان کي هن درخواست سان انسٽال ڪنداسين. تنهن ڪري، ٽيب ۾ درخواست جي لاگ ان انٽرفيس ۾ سردارن جي علائقي ۾ وراثت ۾ آئي اختيار ڪرڻ واري هيڊر کي چيڪ ڪريو.

اهو ئي سڀ ڪجهه آهي. ھاڻي اٿارائزيشن ھيڊر سڀني درخواستن ۾ شامل ڪيو ويندو جيڪي پروجيڪٽ نوڊ جا ٻار آھن، سواءِ لاگ ان نوڊ جي. اهو ظاهر ٿيو ته هن اسٽيج تي اسان وٽ اڳ ۾ ئي هڪ اسڪرپٽ تيار آهي ۽ اسان کي اهو ڪرڻو آهي ته ان کي لانچ ڪرڻو آهي. توھان منتخب ڪري اسڪرپٽ کي هلائي سگھو ٿا هل پروجيڪٽ نوڊ جي حوالي سان مينيو ۾.

پوسٽ ٺاھڻ جي درستگي کي جانچڻ

هن مرحلي تي، اسان جو اسڪرپٽ لاگ ان ٿي سگهي ٿو ۽، هڪ اٿارٽيشن ٽوڪن استعمال ڪندي، هڪ پوسٽ ٺاهي. بهرحال، اسان کي پڪ ڪرڻ جي ضرورت آهي ته نئين ٺاهيل پوسٽ جو صحيح نالو آهي. اهو آهي، جوهر ۾، باقي اهو سڀ ڪجهه ڪرڻ آهي:

  • id ذريعي پوسٽ حاصل ڪرڻ لاءِ درخواست موڪليو،
  • چيڪ ڪريو ته سرور مان مليل نالو پوسٽ ٺاهڻ وقت موڪليل نالي سان ملي ٿو

اچو ته پهرين قدم تي نظر. جيئن ته اسڪرپٽ جي عمل جي دوران id جي قيمت مقرر ڪئي وئي آهي، توهان کي هڪ متحرڪ متغير ٺاهڻ جي ضرورت آهي (اچو ته ان کي سڏين ٿا. postId) نوڊ کان ٺاهڻ-پوسٽ پروجيڪٽ نوڊ جي سطح تي. اسان اڳ ۾ ئي ڄاڻون ٿا ته اهو ڪيئن ڪجي، صرف سيڪشن جو حوالو ڏيو ٽوڪن کي متغير ڏانهن محفوظ ڪريو. باقي اهو آهي ته هي id استعمال ڪندي پوسٽ حاصل ڪرڻ لاءِ هڪ درخواست ٺاهي. هن کي ڪرڻ لاء، اچو ته هڪ RequestStep ٺاهي حاصل ڪرڻ واري پوسٽ هيٺين پيراگراف سان:

  • درخواست جو قسم: GET
  • URL: ${domain}/post/${$dynamicVar.postId}

ٻئي قدم تي عمل ڪرڻ لاء، اسان کي ڄاڻڻ جي ضرورت آهي دعويٰ ڳنڍ. هڪ اصرار نوڊ هڪ نوڊ آهي جيڪو توهان کي مخصوص درخواستن لاء چيڪ لکڻ جي اجازت ڏئي ٿو. هر اصرار نوڊ ڪيترن ئي دعوائن تي مشتمل ٿي سگھي ٿو (چڪون). توهان اسان جي سڀني قسمن جي دعوي بابت وڌيڪ پڙهي سگهو ٿا دستاويز. اسان استعمال ڪنداسين Compare آپريٽر سان دعويٰ equal. دعوي ٺاهڻ جا ڪيترائي طريقا آهن:

  1. ڊگھو. دستي طور تي RequestStep نوڊ جي حوالي سان مينيو مان هڪ Assertion node ٺاهيو. ٺھيل Assertion node ۾، assertion of interest شامل ڪريو ۽ ڀريو فيلڊ.
  2. تڪڙو. RequestStep نوڊ جي جواب مان هڪ دعويٰ سان گڏ هڪ Assertion node ٺاهيو Context menu استعمال ڪندي

اچو ته ٻيو طريقو استعمال ڪريو. اھو اھو آھي جيڪو اسان جي ڪيس لاءِ نظر ايندو.

ٽيسٽ ميس. تيز شروعات

انهن لاءِ جيڪي نٿا سمجهن، هتي ڇا ٿي رهيو آهي:

  1. نوڊ ۾ درخواست ڪريو حاصل ڪرڻ واري پوسٽ
  2. ٽئب ۾ پيرس جواب ڏيو، حوالو مينيو کي ڪال ڪريو ۽ چونڊيو ٺهراءُ ٺاهيو -> Compare -> برابر

مبارڪون، اسان اسان جي پهرين ٽيسٽ ٺاهي آهي! سادو، آهي نه؟ هاڻي توهان مڪمل طور تي اسڪرپٽ هلائي سگهو ٿا ۽ نتيجو مزو ڪريو. باقي اهو آهي ته ان کي ٿورڙي ريفيڪٽر ڪرڻ ۽ ان کي ٻاهر ڪڍڻ title هڪ الڳ متغير ۾. پر اسان اهو توهان لاءِ گهر جي ڪم جي طور تي ڇڏينداسين)

ٿڪل

ھن ھدايت ۾، اسان ھڪڙو مڪمل منظر ٺاھيو آھي ۽ ساڳئي وقت اسان جي پراڊڪٽ جي ڪجھ خاصيتن جو جائزو ورتو. يقينن، اسان سڀ ڪارڪردگي استعمال نه ڪيو ۽ ايندڙ مضمونن ۾ اسان TestMace جي صلاحيتن جو تفصيلي جائزو فراهم ڪنداسين. ڏسندا رهو!

پي ايس انهن لاءِ جيڪي ڏاڍا سست آهن انهن سڀني مرحلن کي ٻيهر پيش ڪرڻ لاءِ، اسان مهربانيءَ سان رڪارڊ ڪيو آهي مخزن مضمون جي منصوبي سان. توهان ان سان کوليو ڪري سگهو ٿا عڪس -> اوپن پروجيڪٽ ۽ چونڊيو پروجيڪٽ فولڊر.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو