ڇو TestMace پوسٽ مين کان بهتر آهي

ڇو TestMace پوسٽ مين کان بهتر آهي

هيلو هرڪو، هتي وڃو ٽيسٽ ميس! شايد ڪيترائي ماڻهو اسان جي باري ۾ ڄاڻن ٿا اسان جو پويون مضمون. انھن لاءِ جيڪي ھاڻي شامل ٿيا آھن: اسان 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 ۾ اهو ممڪن آهي ته جواب جو هڪ ٽڪرو تفويض ڪرڻ هڪ متغير کي گرافڪ انٽرفيس استعمال ڪندي. ڏسو ته اهو ڪيترو سادو آهي:

ڇو TestMace پوسٽ مين کان بهتر آهي

۽ هاڻي هر درخواست سان هن متحرڪ متغير کي اپڊيٽ ڪيو ويندو. پر توهان اعتراض ڪري سگهو ٿا، بحث ڪيو ته پوسٽمن جو طريقو وڌيڪ لچڪدار آهي ۽ توهان کي نه صرف هڪ اسائنمينٽ ٺاهڻ جي اجازت ڏئي ٿو، پر ڪجهه اڳڀرائي ڪرڻ جي پڻ. ھتي آھي پوئين مثال کي ڪيئن تبديل ڪجي:

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

خير، هن مقصد لاءِ TestMace آهي رسم الخط node، جيڪو هن منظر کي ڍڪي ٿو. پوئين ڪيس کي ٻيهر پيدا ڪرڻ لاء، پر اڳ ۾ ئي 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 پوسٽ مين کان بهتر آهي

بهرحال، گرافڪ ايڊيٽر ۾ ٽيسٽ ٺاهڻ جو امڪان ختم نٿو ٿئي ڪوڊ ۾ ٽيسٽ لکڻ. سڀئي ساڳيون لائبريريون هتي آهن جيئن اسڪرپٽ نوڊ ۾، ۽ چاء لکڻ جي امتحان لاء.

حالتون اڪثر پيدا ٿينديون آهن جڏهن هڪ خاص سوال يا حتي هڪ پوري اسڪرپٽ کي پروجيڪٽ جي مختلف حصن ۾ ڪيترائي ڀيرا عمل ڪرڻ جي ضرورت هوندي آهي. اهڙين درخواستن جو هڪ مثال ٿي سگهي ٿو ڪسٽم ملٽي اسٽيج اختيار ڪرڻ، ماحول کي گهربل حالت ۾ آڻڻ وغيره. عام طور تي، پروگرامنگ ٻولين جي اصطلاحن ۾ ڳالهائڻ، اسان چاهيون ٿا ته افعال جيڪي ايپليڪيشن جي مختلف حصن ۾ ٻيهر استعمال ڪري سگھجن ٿيون. TestMace ۾ هي فنڪشن انجام ڏنو ويندو آهي لنڪ نوڊ اهو استعمال ڪرڻ بلڪل آسان آهي:
1) هڪ سوال يا اسڪرپٽ ٺاهيو
2) لنڪ جو هڪ نوڊ ٺاهيو
3) پيرا ميٽرز ۾، پهرين قدم ۾ ٺاهيل اسڪرپٽ جي لنڪ جي وضاحت ڪريو

وڌيڪ ترقي يافته ورزن ۾، توهان وضاحت ڪري سگھو ٿا ته اسڪرپٽ مان ڪهڙا متحرڪ متغير آهن جيڪي لنڪ جي نسبت سان اعلي سطح تي منتقل ڪيا ويا آهن. آواز مونجهارو؟ اچو ته اسان نالي سان هڪ فولڊر ٺاهيو ٺاهڻ-پوسٽ، جنهن جي اندر هڪ متحرڪ متغير هن نوڊ کي لڳايو ويو آهي postId. هاڻي لنڪ نوڊ ۾ ٺاھڻ کان پوءِ لنڪ توھان واضح طور تي بيان ڪري سگھو ٿا ته متغير postId ابن ڏاڏن کي مقرر ڪيو ويو ٺاھڻ کان پوءِ لنڪ. هي ميکانيزم (ٻيهر، پروگرامنگ ٻولي ۾) "فنڪشن" مان نتيجو واپس ڪرڻ لاء استعمال ڪري سگهجي ٿو. عام طور تي، اهو ٿڌو آهي، DRY مڪمل جھولي ۾ آهي ۽ ٻيهر ڪوڊ جي هڪ قطار کي نقصان نه پهچايو ويو آهي.

ڇو TestMace پوسٽ مين کان بهتر آهي

پوسٽمن جي طور تي، درخواستن کي ٻيهر استعمال ڪرڻ لاء هڪ خاصيت جي درخواست آهي 2015 کان پھانسي، ۽ لڳي ٿو اتي به آهي ڪجهه اشاروجيڪي هن مسئلي تي ڪم ڪري رهيا آهن. ان جي موجوده شڪل ۾، پوسٽمن، يقينا، عمل جي سلسلي کي تبديل ڪرڻ جي صلاحيت رکي ٿي، جيڪا نظريي ۾ شايد ساڳئي رويي کي لاڳو ڪرڻ ممڪن بڻائي ٿي، پر اهو واقعي ڪم ڪندڙ طريقي کان وڌيڪ گندي هيڪ آهي.

ٻيا اختلاف

  • متغير جي دائري تي وڏو ڪنٽرول. سڀ کان ننڍڙو دائرو جنهن جي اندر هڪ متغير بيان ڪري سگهجي ٿو پوسٽمن ۾ جمع آهي. TestMace توهان کي ڪنهن به سوال يا فولڊر لاء متغير بيان ڪرڻ جي اجازت ڏئي ٿي. پوسٽ مين شيئر ڪليڪشن ۾ توهان کي صرف مجموعا برآمد ڪرڻ جي اجازت ڏئي ٿي، جڏهن ته TestMace شيئرنگ ڪنهن به نوڊ لاءِ ڪم ڪري ٿي
  • TestMace سپورٽ ڪري ٿو وراثت وارا هيڊر، جيڪو ڊفالٽ طور ٻارن جي سوالن ۾ متبادل ٿي سگھي ٿو. پوسٽمن کي هن بابت ڪجهه آهي: ڪم، ۽ اهو پڻ بند آهي، پر اهو هڪ حل طور پيش ڪيو ويو آهي ... اسڪرپٽ استعمال ڪريو. TestMace ۾، اهو سڀ ڪجهه GUI ذريعي ترتيب ڏنو ويو آهي ۽ اختياري طور تي مخصوص اولاد ۾ وراثت واري هيڊر کي غير فعال ڪرڻ جو اختيار آهي.
  • واپس ڪريو / ٻيهر ڪريو. ڪم صرف نه صرف نوڊس کي ايڊٽ ڪرڻ وقت، پر جڏهن حرڪت، حذف ڪرڻ، نالو تبديل ڪرڻ ۽ ٻيون آپريشنون جيڪي پروجيڪٽ جي ڍانچي کي تبديل ڪن ٿيون.
  • درخواستن سان ڳنڍيل فائلون پروجيڪٽ جو حصو بڻجي وڃن ٿيون ۽ ان سان گڏ ذخيرو ٿيل آهن، جڏهن ته پوسٽمن جي برعڪس، مڪمل طور تي هم وقت سازي ڪئي وئي آهي. (ها، توهان کي هاڻي ضرورت نه آهي ته هر وقت توهان فائلن کي دستي طور تي چونڊيو ۽ انهن کي آرڪائيوز ۾ ساٿين ڏانهن منتقل ڪيو)

خاصيتون جيڪي اڳ ۾ ئي رستي تي آهن

اسان ايندڙ رليز تي رازداري جي پردي کي کڻڻ جي لالچ جي مزاحمت نه ڪري سگهياسين، خاص طور تي جڏهن ڪارڪردگي تمام سوادج آهي ۽ اڳ ۾ ئي پري رليز پالش ڪرڻ کان گذري رهيو آهي. سو، اچو ته ملون.

ڪارڪن

جئين توهان ڄاڻو ٿا، پوسٽمن استعمال ڪري ٿو نام نهاد متحرڪ متغير قدر پيدا ڪرڻ لاء. انهن جي فهرست شاندار آهي ۽ افعال جي وڏي اڪثريت جعلي قدر پيدا ڪرڻ لاءِ استعمال ٿينديون آهن. مثال طور، هڪ بي ترتيب اي ميل ٺاهڻ لاءِ توهان کي لکڻ جي ضرورت آهي:

{{$randomEmail}}

بهرحال، جيئن ته اهي متغير آهن (جيتوڻيڪ متحرڪ)، انهن کي ڪم طور استعمال نه ٿو ڪري سگهجي: اهي پيرا ميٽرز لائق نه آهن، تنهن ڪري اهو ممڪن نه ٿيندو ته هڪ اسٽرنگ مان هيش وٺڻ.

اسان TestMace ۾ ”ايماندار“ افعال شامل ڪرڻ جو ارادو رکون ٿا. ${} جي اندر ئي اهو ممڪن ٿيندو ته نه رڳو هڪ متغير تائين رسائي، پر هڪ فنڪشن کي ڪال ڪرڻ پڻ. اهي. جيڪڏهن توهان کي بدنام جعلي اي ميل ٺاهڻ جي ضرورت آهي، اسان صرف لکنداسين

${faker.internet.email()}

ان کان علاوه حقيقت اها آهي ته اهو هڪ فنڪشن آهي، توهان کي خبر پوندي ته اهو ممڪن آهي ته ڪنهن شئي تي هڪ طريقو سڏڻ. ۽ متحرڪ متغيرن جي وڏي فليٽ لسٽ جي بدران، اسان وٽ منطقي طور تي گروپ ڪيل شيون جو هڪ سيٽ آهي.

ڇا جيڪڏهن اسان ڳڻڻ چاهيون ٿا هڪ اسٽرنگ جي هيش؟ آساني سان!

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

توھان کي خبر پوندي ته توھان به پاس ڪري سگھوٿا متغيرن کي پيٽرول جي طور تي! هن موقعي تي، هڪ تحقيقي پڙهندڙ کي شڪ ٿي سگھي ٿو ته ڪجهه غلط آهي ...

ايڪسپريس ۾ JavaScript استعمال ڪندي

... ۽ سٺي سبب لاء! جڏهن افعال جون گهرجون پوريون ٿي رهيون هيون، تڏهن اوچتو اسان ان نتيجي تي پهتاسين ته صحيح جاوا اسڪرپٽ کي اظهار ۾ لکڻ گهرجي. تنهنڪري هاڻي توهان اظهار لکڻ لاء آزاد آهيو جهڙوڪ:

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

۽ هي سڀ بغير لکت جي، صحيح ان پٽ فيلڊن ۾!

جيئن پوسٽمن لاءِ، هتي توهان صرف متغير استعمال ڪري سگهو ٿا، ۽ جڏهن توهان ٿورو اظهار لکڻ جي ڪوشش ڪندا آهيو، تصديق ڪندڙ لعنت ڪندو آهي ۽ ان کي ڳڻڻ کان انڪار ڪندو آهي.

ڇو TestMace پوسٽ مين کان بهتر آهي

ترقي يافته خودڪار مڪمل ڪرڻ

في الحال TestMace وٽ ھڪڙو معياري خودڪار مڪمل آھي جيڪو ھن وانگر ڏسڻ ۾ اچي ٿو:

ڇو TestMace پوسٽ مين کان بهتر آهي

هتي، خودڪار مڪمل لائن جي اضافي ۾، اهو اشارو ڪيو ويو آهي ته هي لائن ڪهڙي آهي. هي ميکانيزم صرف ان اظهار ۾ ڪم ڪري ٿو جن جي چوڌاري بریکٹس ${} آهن.

جيئن توهان ڏسي سگهو ٿا، بصري نشان شامل ڪيا ويا آهن جيڪي ظاهر ڪن ٿا متغير جي قسم (مثال طور، اسٽرنگ، نمبر، صف، وغيره). توھان پڻ تبديل ڪري سگھوٿا خودڪار مڪمل ٿيڻ جا طريقا (مثال طور، توھان منتخب ڪري سگھوٿا خودڪار مڪمل ٿيڻ سان متغيرن يا هيڊرز). پر اهو به سڀ کان اهم شيء ناهي!

پهريون، خودڪار مڪمل ٿيڻ به اظهار ۾ ڪم ڪري ٿو (جتي ممڪن هجي). اھو اھو آھي جيڪو ڏسڻ ۾ اچي ٿو:

ڇو TestMace پوسٽ مين کان بهتر آهي

۽ ٻيو، خودڪار مڪمل ٿيڻ هاڻي اسڪرپٽ ۾ موجود آهي. هڪ نظر وٺو اهو ڪيئن ڪم ڪري ٿو!

ڇو TestMace پوسٽ مين کان بهتر آهي

پوسٽمن سان هن ڪارڪردگي جي مقابلي ۾ ڪو به نقطو نه آهي - خودڪار مڪمل ٿيڻ صرف متغير، هيڊر ۽ انهن جي قيمتن جي جامد فهرستن تائين محدود آهي (جيڪڏهن مون کي ڪجهه وساريو ته مون کي درست ڪريو). اسڪرپٽ خودڪار نه آهن :)

ٿڪل

آڪٽوبر اسان جي پيداوار جي ترقي جي شروعات کان وٺي هڪ سال جي نشاندهي ڪئي وئي آهي. هن عرصي دوران، اسان ڪيتريون ئي شيون ڪرڻ ۾ ڪامياب ٿي ويا ۽، ڪجهه احترام ۾، اسان جي مقابلي ۾ پڪڙيو. پر اهو ٿي سگهي ٿو، اسان جو مقصد APIs سان ڪم ڪرڻ لاء هڪ واقعي آسان اوزار ٺاهڻ آهي. اسان کي اڃا تائين تمام گهڻو ڪم ڪرڻو آهي، هتي ايندڙ سال لاءِ اسان جي پروجيڪٽ جي ترقيءَ لاءِ هڪ ٿلهو منصوبو آهي: https://testmace.com/roadmap.

توهان جي راءِ اسان کي خاصيتن جي گهڻائي کي بهتر انداز ۾ نيويگيٽ ڪرڻ جي اجازت ڏيندو، ۽ توهان جي حمايت اسان کي طاقت ۽ اعتماد ڏئي ٿي ته اسان صحيح ڪم ڪري رهيا آهيون. ائين ٿئي ٿو ته اڄ اسان جي پروجيڪٽ لاء هڪ اهم ڏينهن آهي - جنهن ڏينهن TestMace شايع ڪيو ويو هو شين جي شين جي. مهرباني ڪري اسان جي منصوبي جي حمايت ڪريو، اهو اسان لاء تمام ضروري آهي. ان کان علاوه، اڄ اسان جي پي ايڇ پيج تي هڪ پرجوش پيشڪش آهي، ۽ اهو محدود آهي

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

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