ٹیسٹ میس پوسٹ مین سے بہتر کیوں ہے۔

ٹیسٹ میس پوسٹ مین سے بہتر کیوں ہے۔

سب کو ہیلو، یہاں تم جاؤ ٹیسٹ میس! شاید بہت سے لوگ ہمارے بارے میں جانتے ہیں۔ ہمارے پچھلے مضامین. ان لوگوں کے لیے جو ابھی شامل ہوئے ہیں: ہم TestMace API کے ساتھ کام کرنے کے لیے ایک IDE تیار کر رہے ہیں۔ مقابلہ کرنے والی مصنوعات سے TestMace کا موازنہ کرتے وقت اکثر پوچھا جانے والا سوال یہ ہے کہ "آپ پوسٹ مین سے کیسے مختلف ہیں؟" ہم نے فیصلہ کیا کہ اب اس سوال کا تفصیلی جواب دینے کا وقت آگیا ہے۔ ذیل میں ہم نے اپنے فوائد بیان کیے ہیں۔ ڈاکیا.

نوڈس میں تقسیم

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

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

انسانی پڑھنے کے قابل پروجیکٹ کی شکل

TestMace اور Postman کے درمیان ان کے ذخیرہ کرنے کے طریقے میں ایک تصوراتی فرق ہے۔ پوسٹ مین میں، تمام درخواستیں مقامی اسٹوریج میں کہیں محفوظ کی جاتی ہیں۔ اگر متعدد صارفین کے درمیان درخواستیں بانٹنے کی ضرورت ہے، تو آپ کو بلٹ ان سنکرونائزیشن استعمال کرنے کی ضرورت ہے۔ درحقیقت، یہ ایک عام طور پر قبول شدہ نقطہ نظر ہے، لیکن اس کی خرابیوں کے بغیر نہیں۔ ڈیٹا سیکیورٹی کے بارے میں کیا خیال ہے؟ بہر حال، کچھ کمپنیوں کی پالیسی تیسرے فریق کے ساتھ ڈیٹا کو ذخیرہ کرنے کی اجازت نہیں دے سکتی ہے۔ تاہم، ہمارے خیال میں TestMace میں پیش کرنے کے لیے کچھ بہتر ہے! اور اس بہتری کا نام "انسانی پڑھنے کے قابل پروجیکٹ فارمیٹ" ہے۔

آئیے اس حقیقت کے ساتھ شروع کریں کہ TestMace میں، اصولی طور پر، ایک "پروجیکٹ" ہستی ہے۔ اور ایپلیکیشن کو ابتدائی طور پر ورژن کنٹرول سسٹمز میں پروجیکٹس کو اسٹور کرنے کے لیے تیار کیا گیا تھا: پروجیکٹ ٹری فائل اسٹرکچر پر تقریباً ون آن ون پیش کیا جاتا ہے، یامل کو اسٹوریج فارمیٹ کے طور پر استعمال کیا جاتا ہے (اضافی بریکٹ اور کوما کے بغیر)، اور ہر نوڈ کی فائل کی نمائندگی کو تبصروں کے ساتھ دستاویزات میں تفصیل سے بیان کیا گیا ہے۔ لیکن زیادہ تر معاملات میں آپ وہاں نہیں دیکھیں گے - تمام فیلڈ کے ناموں کے منطقی نام ہوتے ہیں۔

یہ صارف کو کیا دیتا ہے؟ یہ آپ کو مانوس طریقوں کا استعمال کرتے ہوئے ٹیم کے کام کے بہاؤ کو بہت لچکدار طریقے سے تبدیل کرنے کی اجازت دیتا ہے۔ مثال کے طور پر، ڈویلپرز ایک پروجیکٹ کو اسی ریپوزٹری میں اسٹور کر سکتے ہیں جیسے بیک اینڈ۔ برانچوں میں، خود کوڈ بیس کو تبدیل کرنے کے علاوہ، ڈویلپر موجودہ استفسار کے اسکرپٹ اور ٹیسٹ کو درست کر سکتا ہے۔ ریپوزٹری میں تبدیلیاں کرنے کے بعد (git, svn, mercurial - جو بھی آپ کو سب سے زیادہ پسند ہے)، CI (آپ کا پسندیدہ، کسی کے ذریعے مسلط نہیں کیا گیا) ہماری کنسول یوٹیلیٹی لانچ کرتا ہے۔ testmace-cli، اور عملدرآمد کے بعد موصول ہونے والی رپورٹ (مثال کے طور پر، جونیٹ فارمیٹ میں، جو testmace-cli میں بھی معاون ہے) مناسب نظام کو بھیجی جاتی ہے۔ اور مذکورہ بالا سیکورٹی کا مسئلہ اب کوئی مسئلہ نہیں رہا۔

جیسا کہ آپ دیکھ سکتے ہیں، TestMace اپنے ماحولیاتی نظام اور تمثیل کو مسلط نہیں کرتا ہے۔ اس کے بجائے، یہ قائم شدہ عمل میں آسانی سے فٹ بیٹھتا ہے۔

متحرک متغیرات

TestMace بغیر کوڈ کے تصور کی پیروی کرتا ہے: اگر کوڈ استعمال کیے بغیر کوئی مسئلہ حل کیا جا سکتا ہے، تو ہم یہ موقع فراہم کرنے کی کوشش کرتے ہیں۔ متغیرات کے ساتھ کام کرنا بالکل اسی قسم کی فعالیت ہے جہاں زیادہ تر معاملات میں آپ پروگرامنگ کے بغیر کر سکتے ہیں۔

مثال: ہمیں سرور سے جواب موصول ہوا، اور ہم جواب کے کچھ حصے کو متغیر میں محفوظ کرنا چاہتے ہیں۔ پوسٹ مین میں، ایک ٹیسٹ اسکرپٹ میں (جو اپنے آپ میں عجیب ہے) ہم کچھ اس طرح لکھیں گے:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

لیکن ہماری رائے میں، اس طرح کے سادہ اور کثرت سے استعمال ہونے والے منظر نامے کے لیے اسکرپٹ لکھنا بے کار لگتا ہے۔ لہذا، TestMace میں گرافیکل انٹرفیس کا استعمال کرتے ہوئے ایک متغیر کو جواب کا ایک ٹکڑا تفویض کرنا ممکن ہے۔ دیکھو یہ کتنا آسان ہے:

ٹیسٹ میس پوسٹ مین سے بہتر کیوں ہے۔

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

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

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

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

جیسا کہ آپ دیکھ سکتے ہیں، نوڈس کی ساخت یہاں بھی اچھی طرح سے کام کرتی ہے۔ اور اس طرح کے ایک سادہ کیس کے لیے جیسا کہ اوپر بیان کیا گیا ہے، آپ آسانی سے اظہار تفویض کر سکتے ہیں۔ ${crypto.MD5($response.data)} متغیر GUI کے ذریعے بنایا گیا!

GUI کے ذریعے ٹیسٹ بنانا

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

تاہم، حقیقت اکثر ایسی ہوتی ہے (ہم ایسے نہیں ہیں، زندگی ایسی ہے) کہ ایک ٹیسٹر کے پاس پروگرامنگ کی مہارت نہیں ہوتی، لیکن وہ اس وقت ٹیم کو فائدہ پہنچانا چاہتا ہے۔ اس طرح کے معاملات کے لیے، بغیر کوڈ کے تصور کی پیروی کرتے ہوئے، TestMace آپ کو اسکرپٹ لکھنے کا سہارا لیے بغیر GUI کے ذریعے آسان ٹیسٹ بنانے کی اجازت دیتا ہے۔ یہاں، مثال کے طور پر، مساوات کے لیے اقدار کا موازنہ کرنے والا ٹیسٹ بنانے کا عمل اس طرح لگتا ہے:

ٹیسٹ میس پوسٹ مین سے بہتر کیوں ہے۔

تاہم، گرافیکل ایڈیٹر میں ٹیسٹ بنانے سے امکان ختم نہیں ہوتا کوڈ میں ٹیسٹ لکھنا. تمام وہی لائبریریاں یہاں ہیں جیسا کہ اسکرپٹ نوڈ میں ہے، اور چا تحریری ٹیسٹ کے لیے۔

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

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

ٹیسٹ میس پوسٹ مین سے بہتر کیوں ہے۔

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

دیگر اختلافات

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

وہ خصوصیات جو پہلے ہی راستے میں ہیں۔

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

افعال

جیسا کہ آپ جانتے ہیں، پوسٹ مین اقدار پیدا کرنے کے لیے نام نہاد متحرک متغیرات کا استعمال کرتا ہے۔ ان کی فہرست متاثر کن ہے۔ اور زیادہ تر افعال جعلی اقدار پیدا کرنے کے لیے استعمال ہوتے ہیں۔ مثال کے طور پر، ایک بے ترتیب ای میل بنانے کے لیے آپ کو لکھنا ہوگا:

{{$randomEmail}}

تاہم، چونکہ یہ متغیرات ہیں (متحرک ہونے کے باوجود)، انہیں فنکشنز کے طور پر استعمال نہیں کیا جا سکتا: وہ پیرامیٹرز کے قابل نہیں ہیں، اس لیے سٹرنگ سے ہیش لینا ممکن نہیں ہوگا۔

ہم TestMace میں "ایماندار" افعال شامل کرنے کا ارادہ رکھتے ہیں۔ ${} کے اندر نہ صرف متغیر تک رسائی ممکن ہوگی بلکہ فنکشن کو کال کرنا بھی ممکن ہوگا۔ وہ. اگر آپ کو بدنام زمانہ جعلی ای میل بنانے کی ضرورت ہے تو ہم صرف لکھیں گے۔

${faker.internet.email()}

اس حقیقت کے علاوہ کہ یہ ایک فنکشن ہے، آپ دیکھیں گے کہ کسی چیز پر میتھڈ کو کال کرنا ممکن ہے۔ اور متحرک متغیرات کی ایک بڑی فلیٹ فہرست کے بجائے، ہمارے پاس منطقی طور پر گروپ کردہ اشیاء کا ایک سیٹ ہے۔

اگر ہم سٹرنگ کے ہیش کا حساب لگانا چاہتے ہیں تو کیا ہوگا؟ آسانی سے!

${crypto.MD5($dynamicVar.data)}

آپ دیکھیں گے کہ آپ متغیرات کو بھی پیرامیٹرز کے طور پر پاس کر سکتے ہیں! اس مقام پر، ایک متجسس قاری کو شبہ ہو سکتا ہے کہ کچھ غلط ہے...

اظہار میں جاوا اسکرپٹ کا استعمال

... اور اچھی وجہ سے! جب افعال کے تقاضے بن رہے تھے، ہم اچانک اس نتیجے پر پہنچے کہ درست جاوا اسکرپٹ کو اظہار میں لکھا جانا چاہیے۔ تو اب آپ اظہار لکھنے کے لیے آزاد ہیں جیسے:

${1 + '' + crypto.MD5('asdf')}

اور یہ سب اسکرپٹ کے بغیر، سیدھے ان پٹ فیلڈز میں!

جہاں تک پوسٹ مین کا تعلق ہے، یہاں آپ صرف متغیرات کا استعمال کر سکتے ہیں، اور جب آپ ذرا سا اظہار لکھنے کی کوشش کرتے ہیں، تو تصدیق کنندہ لعنت بھیجتا ہے اور اس کا حساب کرنے سے انکار کرتا ہے۔

ٹیسٹ میس پوسٹ مین سے بہتر کیوں ہے۔

اعلی درجے کی خودکار تکمیل

فی الحال TestMace میں ایک معیاری خودکار تکمیل ہے جو اس طرح نظر آتی ہے:

ٹیسٹ میس پوسٹ مین سے بہتر کیوں ہے۔

یہاں، خود کار طریقے سے مکمل ہونے والی لائن کے علاوہ، یہ اشارہ کیا گیا ہے کہ یہ لائن کس سے تعلق رکھتی ہے۔ یہ طریقہ کار صرف بریکٹ ${} سے گھرے اظہار میں کام کرتا ہے۔

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

سب سے پہلے، خودکار تکمیل اظہار میں بھی کام کرتی ہے (جہاں ممکن ہو)۔ یہ ایسا لگتا ہے:

ٹیسٹ میس پوسٹ مین سے بہتر کیوں ہے۔

اور دوسری بات، خودکار تکمیل اب اسکرپٹ میں دستیاب ہے۔ یہ کیسے کام کرتا ہے پر ایک نظر ڈالیں!

ٹیسٹ میس پوسٹ مین سے بہتر کیوں ہے۔

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

حاصل يہ ہوا

اکتوبر کو ہماری مصنوعات کی ترقی کے آغاز کے بعد ایک سال کا نشان لگا دیا گیا ہے۔ اس وقت کے دوران، ہم نے بہت سی چیزیں کرنے میں کامیاب کیا اور، کچھ معاملات میں، اپنے حریفوں کے ساتھ پھنس گئے۔ لیکن جیسا بھی ہو، ہمارا مقصد APIs کے ساتھ کام کرنے کے لیے واقعی ایک آسان ٹول بنانا ہے۔ ہمارے پاس ابھی بہت سا کام باقی ہے، آنے والے سال کے لیے ہمارے پروجیکٹ کی ترقی کے لیے ایک موٹا منصوبہ یہ ہے: https://testmace.com/roadmap.

آپ کے تاثرات ہمیں خصوصیات کی کثرت کو بہتر طریقے سے نیویگیٹ کرنے کی اجازت دیں گے، اور آپ کی حمایت سے ہمیں طاقت اور اعتماد ملتا ہے کہ ہم صحیح کام کر رہے ہیں۔ ایسا ہوتا ہے کہ آج ہمارے پروجیکٹ کے لیے ایک اہم دن ہے - جس دن TestMace شائع ہوا تھا۔ پروڈکٹ ہنٹ. براہ کرم ہمارے پروجیکٹ کو سپورٹ کریں، یہ ہمارے لیے بہت اہم ہے۔ مزید برآں، آج ہمارے PH صفحہ پر ایک پرکشش پیشکش ہے، اور یہ محدود ہے۔

ماخذ: www.habr.com

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