ٹیسٹ میس۔ تیز شروعات

ٹیسٹ میس۔ تیز شروعات

سب کو سلام. ہم آہستہ آہستہ سائے سے نکل رہے ہیں اور اپنی مصنوعات کے بارے میں مضامین کا سلسلہ جاری رکھے ہوئے ہیں۔ کے بعد پچھلا مضمون کا جائزہ لیں، ہمیں بہت سارے تاثرات (زیادہ تر مثبت)، تجاویز اور بگ رپورٹس موصول ہوئیں۔ آج ہم دکھائیں گے۔ ٹیسٹ میس عمل میں اور آپ ہماری درخواست کی کچھ خصوصیات کی تعریف کر سکیں گے۔ مزید مکمل وسرجن کے لیے، میں آپ کو مشورہ دیتا ہوں کہ ہماری دستاویزات کا حوالہ دیں۔ http://docs-ru.testmace.com. تو چلو چلتے ہیں!

تنصیب

آئیے حرامی کے ساتھ شروع کرتے ہیں۔ ایپلیکیشن دستیاب ہے اور اصل میں تین پلیٹ فارمز پر آزمائی گئی ہے - لینکس، ونڈوز، میک او ایس۔ آپ اس OS کے لیے انسٹالر ڈاؤن لوڈ کر سکتے ہیں جس میں آپ کی دلچسپی ہے۔ ہماری ویبسائٹ. لینکس کے صارفین کے لیے انسٹال کرنا ممکن ہے۔ سنیپ پیکج. ہم واقعی امید کرتے ہیں کہ مائیکروسافٹ اسٹور اور ایپ اسٹور جلد ہی اس کے قریب پہنچ جائیں گے (کیا یہ ضروری ہے؟ آپ کا کیا خیال ہے؟)

تجرباتی منظر نامہ

ہم نے اپنے امتحانی مضمون کے طور پر درج ذیل معیاری منظر نامے کا انتخاب کیا:

  • لاگ ان: صارف - منتظم، پاس ورڈ - پاس ورڈ
  • ایک نیا اندراج شامل کریں
  • آئیے چیک کریں کہ ریکارڈ درست طریقے سے شامل کیا گیا تھا۔

ہم ٹیسٹ کریں گے۔ https://testmace-quick-start.herokuapp.com/. یہ عام بات ہے۔ json-server, ایسی ایپلی کیشنز کی جانچ کے لیے بہترین ہم نے ابھی تمام json-server روٹس پر ٹوکن کے ذریعے اجازت شامل کی ہے اور اس ٹوکن کو حاصل کرنے کے لیے لاگ ان کا طریقہ بنایا ہے۔ ہم بتدریج آگے بڑھیں گے، بتدریج اپنے پروجیکٹ کو بہتر بنائیں گے۔

ایک پروجیکٹ بنانا اور بغیر اجازت کے ایک ہستی بنانے کی کوشش کرنا

سب سے پہلے، آئیے ایک نیا پروجیکٹ بنائیں (فائل->نیا کام)۔ اگر آپ پہلی بار ایپلیکیشن لانچ کر رہے ہیں تو ایک نیا پروجیکٹ خود بخود کھل جائے گا۔ سب سے پہلے، آئیے ایک نیا ریکارڈ بنانے کی درخواست کرنے کی کوشش کریں (اگر ریکارڈ بنانا اجازت کے بغیر دستیاب ہو)۔ پروجیکٹ نوڈ سیاق و سباق کے مینو سے آئٹمز منتخب کریں۔ نوڈ شامل کریں۔ -> درخواست کا مرحلہ. نوڈ کا نام سیٹ کریں۔ تخلیق پوسٹ. نتیجتاً درخت میں ایک نیا نوڈ بن جائے گا اور اس نوڈ کے لیے ایک ٹیب کھل جائے گا۔ آئیے درج ذیل درخواست کے پیرامیٹرز مرتب کریں:

  • درخواست کی قسم: POST
  • URL: https://testmace-quick-start.herokuapp.com/posts
  • درخواست کا باڈی: قدر کے ساتھ json {"title": "New testmace quick start post"}
    اگر آپ نے سب کچھ صحیح طریقے سے کیا تو انٹرفیس اس طرح نظر آئے گا:

ٹیسٹ میس۔ تیز شروعات

تاہم، اگر ہم درخواست کو پورا کرنے کی کوشش کرتے ہیں، تو سرور 401 کوڈ واپس کر دے گا اور اجازت کے بغیر ہمیں اس سرور پر کچھ نہیں ملے گا۔ ٹھیک ہے، عام طور پر، جیسا کہ توقع کی جاتی ہے).

اجازت کی درخواست شامل کرنا

جیسا کہ پہلے ہی کہا گیا ہے، ہمارے پاس ایک POST اختتامی نقطہ ہے۔ /login، جو json کو فارم کی درخواست کے جسم کے طور پر لیتا ہے: {"username": "<username>", "password": "<password>"}جہاں username и password (دوبارہ، اوپر والے تعارفی پیراگراف سے) کے معنی ہیں۔ admin и password بالترتیب جواب میں، یہ اختتامی نقطہ json کی طرح لوٹاتا ہے۔ {"token": "<token>"}. ہم اسے اجازت کے لیے استعمال کریں گے۔ آئیے تخلیق کرتے ہیں۔ درخواست کا مرحلہ نام کے ساتھ نوڈ لاگ ان، ایک اجداد کے طور پر کام کرے گا۔ پروجیکٹ نوڈ ڈریگ اینڈ ڈراپ کا استعمال کرتے ہوئے، نوڈ سے اوپر درخت میں دیئے گئے نوڈ کو منتقل کریں۔ تخلیق پوسٹ. آئیے درج ذیل پیرامیٹرز کو نئی تخلیق کردہ درخواست پر سیٹ کریں:

آئیے درخواست پر عمل کریں اور جواب میں ٹوکن کے ساتھ دو سوواں کوڈ وصول کریں۔ کچھ اس طرح:

ٹیسٹ میس۔ تیز شروعات

ریفیکٹرنگ: ڈومین کی نقل کو ہٹانا

ابھی تک درخواستیں کسی ایک اسکرپٹ سے منسلک نہیں ہیں۔ لیکن یہ واحد خرابی نہیں ہے۔ اگر آپ قریب سے دیکھیں گے تو آپ دیکھیں گے کہ کم از کم ڈومین دونوں درخواستوں میں ڈپلیکیٹ ہے۔ اچھا نہیں. مستقبل کے اسکرپٹ کے اس حصے کو ری ایکٹر کرنے کا وقت ہے، اور متغیرات اس میں ہماری مدد کریں گے۔

پہلے اندازے کے لیے، متغیرات وہی کردار ادا کرتے ہیں جیسا کہ دوسرے اسی طرح کے ٹولز اور پروگرامنگ زبانوں میں ہوتا ہے - نقل کو ختم کرنا، پڑھنے کی اہلیت میں اضافہ وغیرہ۔ آپ متغیرات کے بارے میں مزید پڑھ سکتے ہیں۔ ہماری دستاویزات. اس صورت میں، ہمیں صارف کے متغیرات کی ضرورت ہوگی۔

آئیے پروجیکٹ نوڈ کی سطح پر ایک متغیر کی وضاحت کرتے ہیں۔ domain معنی کے ساتھ https://testmace-quick-start.herokuapp.com. اس کے لیے یہ ضروری ہے۔

  • اس نوڈ کے ساتھ ٹیب کو کھولیں اور اوپر دائیں جانب کیلکولیٹر آئیکن پر کلک کریں۔
  • پر کلک کریں + متغیر شامل کریں۔
  • متغیر کا نام اور قدر درج کریں۔
    ہمارے معاملے میں، اضافی متغیر کے ساتھ ڈائیلاگ اس طرح نظر آئے گا:

ٹیسٹ میس۔ تیز شروعات

ٹھیک ہے. اب، وراثت کی وجہ سے، ہم اس متغیر کو کسی بھی نیسٹنگ لیول کی اولاد میں استعمال کر سکتے ہیں۔ ہمارے معاملے میں یہ نوڈس ہیں۔ لاگ ان и تخلیق پوسٹ. ٹیکسٹ فیلڈ میں متغیر استعمال کرنے کے لیے، آپ کو لکھنا ہوگا۔ ${<variable_name>}. مثال کے طور پر، لاگ ان یو آر ایل کو تبدیل کر دیا گیا ہے۔ ${domain}/loginبالترتیب کے لئے تخلیق پوسٹ نوڈ یو آر ایل کی طرح نظر آئے گا۔ ${domain}/posts.

اس طرح، DRY اصول کی رہنمائی میں، ہم نے منظر نامے کو قدرے بہتر کیا ہے۔

ٹوکن کو متغیر میں محفوظ کریں۔

چونکہ ہم متغیرات کے بارے میں بات کر رہے ہیں، آئیے اس موضوع کو تھوڑا بڑھاتے ہیں۔ اس وقت، کامیاب لاگ ان ہونے کی صورت میں، ہمیں سرور سے ایک اجازت نامہ موصول ہوتا ہے، جس کی ہمیں بعد کی درخواستوں میں ضرورت ہوگی۔ آئیے اس ٹوکن کو متغیر میں محفوظ کرتے ہیں۔ کیونکہ متغیر کی قدر کا تعین اسکرپٹ پر عمل کے دوران کیا جائے گا، ہم اس کے لیے ایک خاص طریقہ کار استعمال کرتے ہیں - متحرک متغیرات.

سب سے پہلے، آئیے لاگ ان کی درخواست کرتے ہیں۔ ٹیب میں تجزیہ جواب، کرسر کو ٹوکن کے اوپر لے جائیں اور سیاق و سباق کے مینو میں (جسے یا تو ماؤس کے دائیں بٹن سے کہا جاتا ہے یا بٹن پر کلک کر کے...) آئٹم کو منتخب کریں۔ متغیر کو تفویض کریں۔. ایک ڈائیلاگ درج ذیل فیلڈز کے ساتھ ظاہر ہوگا۔

  • راہ - جواب کا کون سا حصہ لیا گیا ہے (ہمارے معاملے میں یہ ہے۔ body.token)
  • موجودہ قیمت - راستے میں کیا قدر ہے (ہمارے معاملے میں یہ ٹوکن ویلیو ہے)
  • متغیر نام - متغیر کا نام جہاں موجودہ قیمت محفوظ کیا جائے گا. ہمارے معاملے میں یہ ہوگا۔ token
  • نوڈ - کس آباؤ اجداد میں متغیر بنایا جائے گا۔ متغیر نام. آئیے پروجیکٹ کو منتخب کریں۔

مکمل ڈائیلاگ اس طرح لگتا ہے:

ٹیسٹ میس۔ تیز شروعات

اب ہر بار نوڈ کو پھانسی دی جاتی ہے۔ لاگ ان متحرک متغیر token جواب سے نئی قدر کے ساتھ اپ ڈیٹ کیا جائے گا۔ اور اس متغیر کو اس میں محفوظ کیا جائے گا۔ پروجیکٹ نوڈ اور، وراثت کی بدولت، اولاد کے لیے دستیاب ہوگا۔

متحرک متغیرات تک رسائی کے لیے، آپ کو استعمال کرنا چاہیے۔ بلٹ میں متغیر $dynamicVar. مثال کے طور پر، ذخیرہ شدہ ٹوکن تک رسائی حاصل کرنے کے لیے، آپ کو کال کرنے کی ضرورت ہے۔ ${$dynamicVar.token}.

ہم اجازت کے ٹوکن کو درخواستوں میں منتقل کرتے ہیں۔

پچھلے مراحل میں ہمیں اجازت کا ٹوکن ملا اور ہمیں صرف ایک ہیڈر شامل کرنے کی ضرورت ہے۔ Authorization معنی کے ساتھ Bearer <tokenValue> تمام درخواستوں میں جن کے لیے اجازت درکار ہوتی ہے، بشمول تخلیق پوسٹ. ایسا کرنے کے کئی طریقے ہیں:

  1. ٹوکن کو دستی طور پر کاپی کریں اور دلچسپی کی درخواستوں میں ایک اجازت نامہ شامل کریں۔ یہ طریقہ کام کرتا ہے، لیکن اس کا استعمال صرف "بنائے اور پھینکے گئے" قسم کی درخواستوں تک محدود ہے۔ سکرپٹ کے بار بار عمل درآمد کے لیے موزوں نہیں ہے۔
  2. فعالیت کا استعمال کریں۔ اجازت.
  3. استعمال کرنے کے لئے پہلے سے طے شدہ ہیڈرز

دوسرا طریقہ استعمال کرنا واضح معلوم ہوتا ہے، لیکن اس مضمون کے تناظر میں، یہ نقطہ نظر... غیر دلچسپ ہے۔ ٹھیک ہے، واقعی: اجازت دینے کا طریقہ کار پلس مائنس آپ کو دوسرے ٹولز سے واقف ہے (چاہے ہمارے پاس ایسی چیزیں ہوں اجازت وراثت) اور سوالات اٹھانے کا امکان نہیں ہے۔

ایک اور چیز ڈیفالٹ ہیڈرز ہے! مختصراً، ڈیفالٹ ہیڈرز وراثت میں ملنے والے HTTP ہیڈر ہوتے ہیں جنہیں بطور ڈیفالٹ درخواست میں شامل کیا جاتا ہے جب تک کہ واضح طور پر غیر فعال نہ کیا جائے۔ اس فعالیت کو استعمال کرتے ہوئے، آپ، مثال کے طور پر، حسب ضرورت اجازت کو لاگو کر سکتے ہیں یا اسکرپٹ میں نقل سے چھٹکارا حاصل کر سکتے ہیں۔ آئیے اس فیچر کو ہیڈرز میں ٹوکن پاس کرنے کے لیے استعمال کریں۔

پہلے، ہم نے سمجھداری سے ٹوکن کو ایک متحرک متغیر میں محفوظ کیا تھا۔ $dynamicVar.token پروجیکٹ نوڈ کی سطح پر۔ جو کچھ باقی ہے وہ درج ذیل کرنا ہے:

  1. پہلے سے طے شدہ عنوان کی وضاحت کریں۔ Authorization معنی کے ساتھ Bearer ${$dynamicVar.token} پروجیکٹ نوڈ کی سطح پر۔ ایسا کرنے کے لیے، نوڈ کے پروجیکٹ انٹرفیس میں آپ کو پہلے سے طے شدہ عنوانات کے ساتھ ایک ڈائیلاگ کھولنے کی ضرورت ہے (بٹن ہیڈر اوپری دائیں کونے میں) اور متعلقہ عنوان شامل کریں۔ بھری ہوئی اقدار کے ساتھ ڈائیلاگ اس طرح نظر آئے گا:
    ٹیسٹ میس۔ تیز شروعات
  2. لاگ ان کی درخواست سے اس ہیڈر کو غیر فعال کریں۔ یہ قابل فہم ہے: لاگ ان کے وقت، ہمارے پاس ابھی تک کوئی ٹوکن نہیں ہے اور ہم اسے اس درخواست کے ساتھ انسٹال کریں گے۔ لہذا، ٹیب میں درخواست کے لاگ ان انٹرفیس میں ہیڈر کے علاقے میں موروثی اجازت کے ہیڈر کو غیر چیک کریں۔

بس۔ اب اجازت کا ہیڈر تمام درخواستوں میں شامل کیا جائے گا جو لاگ ان نوڈ کے علاوہ پروجیکٹ نوڈ کے بچے ہیں۔ یہ پتہ چلتا ہے کہ اس مرحلے پر ہمارے پاس پہلے سے ہی ایک اسکرپٹ تیار ہے اور ہمیں بس اسے لانچ کرنا ہے۔ آپ اسکرپٹ کو منتخب کرکے چلا سکتے ہیں۔ رن پروجیکٹ نوڈ کے سیاق و سباق کے مینو میں۔

پوسٹ تخلیق کی درستگی کی جانچ کر رہا ہے۔

اس مرحلے پر، ہمارا اسکرپٹ لاگ ان کر سکتا ہے اور، اجازت کے ٹوکن کا استعمال کرتے ہوئے، ایک پوسٹ بنا سکتا ہے۔ تاہم، ہمیں اس بات کو یقینی بنانے کی ضرورت ہے کہ نئی تخلیق شدہ پوسٹ کا صحیح نام ہو۔ یعنی، جوہر میں، جو کچھ باقی ہے وہ یہ ہے کہ درج ذیل کام کریں:

  • آئی ڈی کے ذریعے پوسٹ وصول کرنے کی درخواست بھیجیں،
  • چیک کریں کہ سرور سے موصول ہونے والا نام پوسٹ بناتے وقت بھیجے گئے نام سے میل کھاتا ہے۔

آئیے پہلے قدم کو دیکھتے ہیں۔ چونکہ آئی ڈی ویلیو کا تعین اسکرپٹ پر عمل درآمد کے دوران ہوتا ہے، اس لیے آپ کو ایک متحرک متغیر بنانے کی ضرورت ہے (آئیے اسے کال کریں postId) نوڈ سے تخلیق پوسٹ پروجیکٹ نوڈ کی سطح پر۔ ہم پہلے ہی جانتے ہیں کہ یہ کیسے کرنا ہے، صرف سیکشن کا حوالہ دیتے ہیں ٹوکن کو متغیر میں محفوظ کریں۔. بس اس آئی ڈی کا استعمال کرتے ہوئے پوسٹ وصول کرنے کی درخواست کرنا باقی ہے۔ ایسا کرنے کے لیے، آئیے ایک RequestStep بنائیں حاصل پوسٹ مندرجہ ذیل پیرامیٹرز کے ساتھ:

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

دوسرے مرحلے کو لاگو کرنے کے لئے، ہمیں اس سے واقف ہونے کی ضرورت ہے دعوی گرہ Assertion node ایک ایسا نوڈ ہے جو آپ کو مخصوص درخواستوں کے لیے چیک لکھنے کی اجازت دیتا ہے۔ ہر اسسرشن نوڈ میں کئی دعوے (چیک) ہوسکتے ہیں۔ آپ ہمارے ہر قسم کے دعووں کے بارے میں مزید پڑھ سکتے ہیں۔ دستاویزات. ہم استعمال کریں گے۔ Compare آپریٹر کے ساتھ دعوی equal. دعوے بنانے کے کئی طریقے ہیں:

  1. لمبی۔ RequestStep نوڈ کے سیاق و سباق کے مینو سے دستی طور پر ایک Assertion node بنائیں۔ بنائے گئے اسسرشن نوڈ میں، دلچسپی کا دعوی شامل کریں اور فیلڈز کو پُر کریں۔
  2. تیز. سیاق و سباق کے مینو کا استعمال کرتے ہوئے RequestStep نوڈ کے جواب سے ایک دعوے کے ساتھ ایک Assertion node بنائیں

آئیے دوسرا طریقہ استعمال کریں۔ یہ ہمارے کیس کی طرح نظر آئے گا۔

ٹیسٹ میس۔ تیز شروعات

ان لوگوں کے لئے جو نہیں سمجھتے ہیں، یہاں کیا ہو رہا ہے:

  1. نوڈ میں درخواست کریں۔ حاصل پوسٹ
  2. ٹیب میں تجزیہ جواب دیں، سیاق و سباق کے مینو کو کال کریں اور منتخب کریں۔ دعویٰ بنائیں -> کا موازنہ کریں -> برابر

مبارک ہو، ہم نے اپنا پہلا ٹیسٹ تیار کر لیا ہے! سادہ، ہے نا؟ اب آپ اسکرپٹ کو مکمل طور پر چلا سکتے ہیں اور نتیجہ سے لطف اندوز ہو سکتے ہیں۔ بس جو باقی رہ جاتا ہے اسے تھوڑا سا ری فیکٹر کرنا اور اسے باہر نکالنا ہے۔ title ایک الگ متغیر میں۔ لیکن ہم اسے آپ کے لیے ہوم ورک کے طور پر چھوڑ دیں گے)

حاصل يہ ہوا

اس گائیڈ میں، ہم نے ایک مکمل منظر نامہ بنایا اور ساتھ ہی اپنی مصنوعات کی کچھ خصوصیات کا جائزہ لیا۔ بلاشبہ، ہم نے تمام فعالیت کا استعمال نہیں کیا اور اگلے مضامین میں ہم TestMace کی صلاحیتوں کا تفصیلی جائزہ فراہم کریں گے۔ دیکھتے رہنا!

PS ان لوگوں کے لیے جو تمام مراحل کو دوبارہ پیش کرنے میں بہت سست ہیں، ہم نے مہربانی سے ریکارڈ کیا ہے۔ ذخیرہ مضمون کے منصوبے کے ساتھ۔ آپ اسے کے ساتھ کھول سکتے ہیں۔ فائل -> پروجیکٹ کھولیں اور پروجیکٹ فولڈر کو منتخب کریں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں