پچھلے بلاگ میں ، میں نے آپ کو سکھایا تھا کہ اپنا پہلا سیلینیم ویب ڈرایور ٹیسٹ کیسے چلائیں۔ اس بلاگ میں ، میں اعلی سیلینیم ویب ڈرایور کے تصورات کا احاطہ کرتا ہوں۔ میں نے پہلے ہی کافی بار اس بات کا ذکر کیا ہے کہ سیلینیم ویب ڈرایور کی ٹیسٹ کیس مینجمنٹ اور ٹیسٹ رپورٹ تخلیق کے سلسلے میں کچھ حدود ہیں۔ تو ، متبادل کیا ہے؟ ایک آلے کے طور پر مقبول Selenium یقینی طور پر ایک ٹھیک کام ہونا چاہئے؟ یقینا ایسا ہوتا ہے! ہم اس حد کو مات دینے کے لئے سیلینیم اور ٹیسٹ این جی کے امتزاج کا استعمال کرسکتے ہیں اور یہ اس بلاگ کی بحث کا موضوع ہوگا۔
جاوا میں پرنٹ رائٹر کیا ہے؟
اگر آپ سیلینئم میں نئے ہیں ، اور بنیادی تصورات کا تعارف چاہتے ہیں تو ، آپ اپنا سفر یہاں سے شروع کرسکتے ہیں: ؟ تاہم ، دوسرے لوگ اس بلاگ سے سیلینیم کے لئے ٹیسٹ این جی کے ساتھ شروعات کرسکتے ہیں۔آپ کو یہ بھی معلوم ہونا چاہئے کہ تنظیمیں پیشہ ور افراد کے ساتھ سرگرمی سے شکار کر رہی ہیں ، سافٹ ویئر ٹیسٹرز کو عبور حاصل کرنے کے لئے اسے ایک اہم مہارت بنانا۔
دنیا بھر کے سافٹ ویئر ڈویلپرز متفقہ طور پر اس بات پر متفق ہوجائیں گے کہ ٹیسٹ کے معاملات میں کوڈ لکھنا ان کے ٹھیک ہونے والے وقت کا ایک اچھا حصہ بچاتا ہے۔ کیوں؟ اس کی وجہ یہ ہے کہ ٹیسٹ کیس مضبوط اور غلطی سے پاک کوڈ بنانے میں مدد کرتے ہیں۔ یہ کس طرح کرتا ہے؟ پورے کوڈ کو چھوٹے چھوٹے ٹیسٹ کیسوں میں توڑنے کے بعد ، اور پھر ان میں سے ہر ٹیسٹ کے معاملے کی جانچ پڑتال کرکے / گزرنے میں ناکام ہونے کی صورت میں ، ہم غلطی سے پاک کوڈ تشکیل دے سکتے ہیں۔ چونکہ سیلینیم ٹیسٹ کے معاملات میں کوڈ پر عمل درآمد کی حمایت نہیں کرتا ہے ، لہذا ہمیں اسی کے لئے ٹیسٹ این جی کا استعمال کرنا ہوگا۔ یہیں سے ٹیسٹین جی سیلینیم فریم ورک میں فٹ بیٹھتا ہے۔
ٹیسٹ این جی سے مراد اگلی نسل کی جانچ کریں اور یہ ایک اوپن سورس ٹیسٹ آٹومیشن فریم ورک ہے جو JUnit اور NUnit سے متاثر ہے۔ ٹھیک ہے ، نہ صرف متاثر ہوا ، بلکہ ان دو فریم ورک میں اپ گریڈ۔ تو آپ پوچھ سکتے ہیں کہ یہاں اپ گریڈ کیا ہے؟ٹیسٹ این جی کے ساتھ اپ گریڈ یہ ہے کہ ، یہ اضافی فعالیت مہیا کرتا ہے جیسے: کوڈ میں ٹیسٹ تشریحات ، گروپ بندی ، ترجیح ، پیرامیٹرائزیشن اور ترتیب کی تکنیک جو پہلے ممکن نہیں تھی۔
ٹیسٹ کیسوں کے انتظام کے علاوہ ، ٹیسٹوں کی تفصیلی رپورٹیں بھی ٹیسٹ این جی کا استعمال کرکے حاصل کی جاسکتی ہیں۔ اس گروپ کے ساتھ ، جو اس کا حصہ تھا ، اور جس کلاس کے تحت آتا ہے اس کے ساتھ ، ٹیسٹ کیس کو ظاہر کرنے کا ایک خلاصہ ہوگا۔ جب کیڑے درست طریقے سے اس طرح واقع ہوسکتے ہیں تو ، ان کو فوری طور پر ڈویلپرز کی امداد کے لئے ٹھیک کیا جاسکتا ہے۔ مندرجہ ذیل تصویر میں ٹیسٹ این جی کے کام کو دکھایا گیا ہے۔
تو ، ٹیسٹ این جی کام کیسے کرسکتا ہے؟ اس سوال کا جواب دیا جائے گااس سیلینیم ویب ڈرائور ٹیوٹوریل بلاگ کا اگلا سیکشن ، جہاں میں میں پر بات چیت کروں گا کہ ٹیسٹ این جی کا استعمال کرکے ٹیسٹ کے مختلف معاملات کا انتظام کیسے کیا جائے۔
ٹیسٹین جی کے ساتھ سیلینیم ویب ڈرایور
مندرجہ ذیل طریقوں میں سے کسی ایک کے ذریعہ جانچ کے معاملات کی وضاحت اور ان کا نظم کیا جاسکتا ہے۔
مجھے وضاحت شروع کرنے دوان خصوصیات میں سے ہر ایک.
ٹیسٹ تشریحات
سب سے پہلے ، آئیے اپنے آپ سے یہ سوال پوچھیں: ہمیں تشریحات استعمال کرنے کی ضرورت کیوں ہے؟ ہم انہیں کب استعمال کرسکتے ہیں؟ اگلے طریقہ پر عملدرآمد کے ل control کنٹرول کرنے کے لئے سیلینیم میں نوٹس استعمال کیے جاتے ہیں۔ ٹیسٹ تشریحات کو ٹیسٹ کوڈ میں ہر طریقہ سے پہلے بیان کیا جاتا ہے۔ اگر کسی طریقہ کو تشریحات کے ساتھ متعین نہیں کیا گیا ہے ، تو پھر اس طریقہ کو نظرانداز کیا جائے گا اور اس کو ٹیسٹ کوڈ کے حصے کے طور پر انجام نہیں دیا جائے گا۔ ان کی وضاحت کے لئے ، طریقوں کو آسانی سے تشریح کرنے کی ضرورت ہے ‘۔ @پرکھ ‘‘۔ مثال کے طور پر نیچے کوڈ کا ٹکڑا دیکھیں۔
پیکیج ٹسٹینگ درآمد org.openqa.selenium.WebDriver درآمد org.openqa.selenium.firefox.FirefoxDriver درآمد org.testng.annotations.AfterClass درآمد org.testng.annotations.AfterMethod درآمد org.testng.annotations.notfesCang درآمد .BeforeMethod درآمد org.testng.annotations.Test عوامی طبقے کی جانچ کی اطلاع {@ ٹسٹ پبلک باطل myTestMethod (). System.out.println ('اندر کا طریقہ: - myTestMethod') ویب ڈرائور ڈرائیور = نیا فائر فاکس ڈرایور () driver.get ('http: //www.seleniumframework.com/Pypeform/ ') سٹرنگ ٹائٹل = ڈرائیور.بیٹ ٹائٹل () سسٹم آؤٹ.پریٹلن (ٹائٹل) ڈرائیور.کوٹ ()} @ میتھوڈ سے پہلے پبلک باطل (). System.out.println (' یہ کوڈ کا ٹکڑا عمل سے پہلے پھانسی دے دیا گیا ہے: - myTestMethod ') System.setProperty (' webdriver.gecko.driver '،' C: صارفین -WardhanworkspaceSeleniumProjectfilesgeckodriver.exe ')}AfterMethod کے بعد میتھوڈ () piece Systemnout.prll ضابطہ اخلاق کے بعد عملدرآمد کیا جاتا ہے: - myTestMethod ')}BeforeClass عوامی باطل کالس سے پہلے () {سسٹم m.out.println ('کوڈ کے اس ٹکڑے کو کلاس پر پھانسی دینے سے پہلے پھانسی دی جاتی ہے')}AfterClass عوامی کالعدم afterClass (). System.out.println ('کوڈ کے اس ٹکڑے کو کلاس پھانسی کے بعد پھانسی دے دی جاتی ہے')} }
مذکورہ کوڈ میں ، آپ نے محسوس کیا ہوگا کہ میں نے ایک 'اہم' طریقہ کی وضاحت نہیں کی ہے۔ تاہم ، میرے پاس 5 دوسرے طریقے بیان ہوئے ہیں۔ وہ ’مائی ٹیسٹ میتھوڈ‘ ، ’میتھوڈ سے پہلے‘ ، ’میتھوڈ کے بعد‘ ، ’پہلے کلاس‘ اور ’بعد کللاس‘ ہیں۔ نیز ، کوڈ میں طریقوں کی تعریف کے ترتیب کو بھی نوٹ کریں کیونکہ انہیں اسی ترتیب سے پھانسی نہیں دی جائے گی۔
طریقہ 'myTestMethod' کے ساتھ بیان کیا گیا ہے @پرکھ ، اور یہ بنیادی طریقہ یا کوڈ کا ٹکڑا ہے جس پر عمل درآمد کرنا ہے۔ اس طریقہ کار پر عمل درآمد ہونے سے قبل اور اس کے بعد دیگر نووٹ شدہ طریقوں پر عمل درآمد کیا جائے گا۔ چونکہ ‘میتھوڈ سے پہلے’ کے ساتھ تشریح کی جاتی ہے ٹویٹ ایمبیڈ کریں ، اس کو ’مائی ٹیس میٹود‘ کو پھانسی دینے سے پہلے ہی پھانسی دے دی جائے گی۔ اسی طرح ، ‘میتھوڈ کے بعد’ کے ساتھ بھی تشریح کی جاتی ہے ٹویٹ ایمبیڈ کریں ، اور اس طرح اس کو ‘myTestMethod’ کے بعد پھانسی دی جائے گی۔
تاہم ، ’پہلے کلاس‘ کے ساتھ نوشتہ ہے ٹویٹ ایمبیڈ کریں ، جس کا مطلب یہ ہے کہ کلاس خود پھانسی دینے سے پہلے ہی اس پر عمل درآمد کرایا جائے گا۔ ہماری کلاس کا نام یہاں ہے ٹیسٹ ، اور اس طرح کلاس پر عمل درآمد شروع ہونے سے پہلے ، ’پہلے کلاس‘ کے اندر کوڈ کا ٹکڑا عمل میں لایا جائے گا۔ اسی طرح ، ’آفٹرکلاس‘ کے ساتھ نوشتہ ہے ٹویٹ ایمبیڈ کریں ، اور اس طرح کلاس کے بعد پھانسی دی جائے گی ٹیسٹ پھانسی دی جاتی ہے۔
اگر آپ کو ابھی تک پھانسی کے حکم کے بارے میں الجھن ہے تو ، ذیل میں اسنیپٹ یقینی طور پر آپ کی مدد کرے گا۔
1. قبلسوئٹ 2. قبل ٹیسٹ 3.بین کلاسٹ سے پہلے 4. میٹھڈ سے قبل 5. ٹیسٹ 6. میتھڈ کے بعد 7. آفٹر کلاس 8. آف ٹیسٹ 9. بعدسوئٹ
مذکورہ کوڈ کی پیداوار ہوگی:
اس کوڈ کے ٹکڑے کو کلاس پر پھانسی دینے سے پہلے ہی پھانسی دی جاتی ہے۔ کوڈ کے اس ٹکڑے کو طریقہ سے پہلے ہی پھانسی دی جاتی ہے: - myTestMethod اندر کا طریقہ: - myTestMethod 1493192682118 geckodriver INFO 127.0.0.113676 پر سن رہا ہے mozprofile :: پروفائل INFO پروفائل کے راستے کا استعمال کرتے ہوئے C_ataFalTz_MesterFalTM .wGkcwvwXkl2y 1493192682729 گیکوڈرائور :: میرینیٹ INFO برائوزر سی: پروگرام فائلیں (x86) موزیلا فائر فاکسائر فاکس.ایکس 1493192682729 گیکوڈرائور :: میرینٹ INFO لوکلہوسٹ پر ماریونٹ سے منسلک: 59792: سی پی آر 6152] /moz2_slave/m-rel-w32-000000000000000000000000 / بلڈ / ایس آر سی / کرومیم/src/chrome/common/ipc_channel_win.cc ، لائن 346 1493192688316 میریونیٹ INFO بندرگاہ پر سن رہا ہے 59792 اپریل 26 ، 2017 1:14:49 شام یا جی جی۔ openqa.selenium.remote. پروٹوکول ہینڈ شیک تخلیق سیشن INFO: کھوج کی بولی: W3C جاوا اسکرپٹ کی خرابی: http://t.dtscout.com/i/؟l=http٪3A٪2F٪2Fwww.seleniumframework.com٪2FPPress form٪2F&j=، لائن 1: ٹائپ ایرر: دستاویز. گیٹ عنصرن بائی ٹیگ این می (...) [0] سیلینیم فریم ورک کی وضاحت نہیں کی گئی ہے پریکٹسفارم 1493192695134 میریونیٹ INFO اب نئے کنکشن کو قبول نہیں کیا جائے گا 26 اپریل ، 2017 1:14:57 PM org.openqa.selenium.os.UnixProcess SEVERE کو ختم: PID 6724 کے ساتھ عمل کو ختم کرنے سے قاصر اس کوڈ کے اس ٹکڑے کو طریقہ کار کے بعد پھانسی دے دی گئی ہے: - myTestMethod اس کوڈ کے ٹکڑے کو کلاس کے نفاذ کے بعد پیسڈ کیا جاتا ہے: myTestMethod ================================= ============ طے شدہ ٹیسٹ ٹیسٹ چلتے ہیں: 1 ، ناکامیاں: 0 ، اسپرپس: 0 ======================= ================================================== ==================== پہلے سے طے شدہ سوٹ کل ٹیسٹ چلاتے ہیں: 1 ، ناکامیاں: 0 ، اسپرپس: 0 =============== =================================
جیسا کہ آپ مندرجہ بالا آؤٹ پٹ سے دیکھ سکتے ہیں ، چلائے جانے والے ٹیسٹوں کی تعداد 1 اور ناکام ہے۔ اس کا مطلب یہ ہے کہ کوڈ کامیاب ہے۔ یہاں تک کہ طریقوں پر عمل درآمد کا حکم بھی ترتیب میں ہوگامیںپہلے ذکر کیا
جب آپ اس کوڈ کو اپنی مشین پر عمل کرتے ہیں تو ، سیلینیم ویب ڈرایور آپ کے فائر فاکس براؤزر کو انسٹی ٹیٹ کرے گا ، سیلینیم فریم ورک کے پریکٹس فارم پر جائے گا ، براؤزر کی مثال بند کرے گا اور وہی آؤٹ پٹ دکھائے گا جس طرح آپ کے ایکلپسی IDE میں دکھایا گیا ہے۔
میں نے اپنے کوڈ میں صرف 5 مختلف تشریحات استعمال کیں۔ لیکن اس کے علاوہ بھی بہت سے تشریحات ہیں جن پر عمل درآمد کے ل the اگلے طریقہ کو کنٹرول کرنے کے لئے استعمال کیا جاسکتا ہے۔ تشریحات کی پوری فہرست میںٹیبلنیچے:
ٹویٹ ایمبیڈ کریں - طریقہ کے ساتھ بیان کردہ ٹویٹ ایمبیڈ کریں اس سے پہلے کہ سویٹ میں موجود تمام ٹیسٹ چلائے جائیں گے۔
AfterSuite - طریقہ کے ساتھ بیان کردہ AfterSuite سویٹ میں تمام ٹیسٹ چلانے کے بعد چلیں گے۔
ٹویٹ ایمبیڈ کریں - طریقہ کے ساتھ بیان کردہ ٹویٹ ایمبیڈ کریں کسی کلاس سے متعلق ٹیسٹ ٹیسٹ چلانے سے پہلے ہی چلے گا۔
ٹویٹ ایمبیڈ کریں - طریقہ کے ساتھ بیان کردہ ٹویٹ ایمبیڈ کریں کلاس سے متعلق ٹیسٹ کے تمام طریقے چلنے کے بعد چلیں گے۔
ٹویٹ ایمبیڈ کریں - طریقہ کے ساتھ بیان کردہ ٹویٹ ایمبیڈ کریں ہر گروپ کے چلنے سے پہلے ہی چلے گا۔
ٹویٹ ایمبیڈ کریں - طریقہ کے ساتھ بیان کردہ ٹویٹ ایمبیڈ کریں ہر گروپ کے چلانے کے بعد چلے گا۔
ٹویٹ ایمبیڈ کریں - طریقہ کے ساتھ بیان کردہ ٹویٹ ایمبیڈ کریں موجودہ کلاس میں پہلے ٹیسٹ کا طریقہ شروع کرنے سے پہلے ایک بار چلے گا۔
@کلاس کے بعد - طریقہ کے ساتھ بیان کردہ @کلاس کے بعد موجودہ کلاس میں ٹیسٹ کے تمام طریقے چلنے کے بعد ایک بار چلیں گے۔
ٹویٹ ایمبیڈ کریں - طریقہ کے ساتھ بیان کردہ ٹویٹ ایمبیڈ کریں کسی کلاس کے اندر ٹیسٹ کے طریقہ کار چلانے سے پہلے ہی چلے گا۔
ٹویٹ ایمبیڈ کریں - طریقہ کے ساتھ بیان کردہ ٹویٹ ایمبیڈ کریں کلاس کے اندر ٹیسٹ کے ہر طریقے چلانے کے بعد چلایا جائے گا۔
لینکس پر ہڈوپ انسٹال کرنے کا طریقہ
@پرکھ - طریقہ کے ساتھ بیان کردہ @پرکھ پورے پروگرام میں ٹیسٹ کا اہم طریقہ ہے۔ اس نوشتہ کے آس پاس دیگر نوٹ شدہ طریقوں پر عمل درآمد کیا جائے گا۔
ٹیسٹ این جی رپورٹ کا اسکرین شاٹ ہےذیل میں موجود: -
ترجیح
ہم نے اس کے بارے میں بتایا کہ کس طرح مختلف طریقوں کی وضاحت کی جاسکتی ہے کہ اس کے ارد گرد عملدرآمد کیا جاتا ہے @پرکھ طریقہ لیکن ، کیا ہوگا اگر آپ کے پاس ایک سے زیادہ ہیں @پرکھ طریقہ اور آپ ان دونوں کے درمیان پھانسی کے آرڈر کی وضاحت کرنا چاہتے ہو؟
اس صورت میں ، ہم کر سکتے ہیںپیانکوٹیٹڈ ٹیسٹ کیسوں میں ایک نمبر تفویض کرکے ان کو بدلاؤ۔ چھوٹی تعداد ، ترجیح زیادہ۔ ترجیح جانچ کے معاملات کی وضاحت کرتے ہوئے پیرامیٹرز کے طور پر مقرر کی جاسکتی ہے۔ لیکن ، اگر کوئی ترجیح نہیں دی گئی ہے ، تو پھر جانچ کے طریقوں کو جانچ کے حروف تہجی کے مطابق انجام دیا جائے گا۔ مندرجہ ذیل ٹکڑے میں ٹیسٹ تشریحات کے پیرامیٹرز کو دیکھیںکوڈ
@ ٹسٹ (ترجیحی = 2) عوامی جامد باطل فرسٹ ٹسٹ (). system.out.println ('یہ ترجیح # 2 کی وجہ سے ٹیسٹ کیس نمبر دو ہے')} @ ٹیسٹ (ترجیحی = 1) عوامی جامد باطل سیکنڈ ٹسٹ () { system.out.println ('یہ ترجیح # 1 کی وجہ سے ٹیسٹ کیس نمبر ایک ہے')} @ ٹسٹ پبلک اسٹیٹک باطل فائنل ٹسٹ (). system.out.println ('یہ حتمی ٹیسٹ کیس ہے کیوں کہ کوئی ترجیح نہیں ہے') )}
ٹیسٹ کیسز کو ناکارہ کرنا
میں آپ کو کچھ اور دلچسپ دکھاتا ہوں۔ کیا ہوگا اگر آپ کے پاس ایک ملین لائن پر محیط ایک کوڈ ہے ، جس میں ٹیسٹ کے سیکڑوں مقدمات شامل ہیں ، اور آپ صرف ایک ٹیسٹ کا طریقہ غیر فعال کرنا چاہتے ہیں؟ اس کے بجائے ، آپ کوڈ کے کسی بھی حصے کو حذف کرنے کی ضرورت نہیں ہے، ہم آزمائشی طریقہ کو آسانی سے غیر فعال کرسکتے ہیں۔
ٹیسٹ کیس کو ناکارہ کرنے کا کام پیرامیٹرز کے ذریعے بھی کیا جاتا ہے۔ ہم سیٹ کر سکتے ہیں فعال ’جھوٹے‘ سے منسوب۔ پہلے سے طے شدہ طور پر ، تمام ٹیسٹ کیسز قابل ہوجائیں گے ، لہذا جب بھی ہم ٹیسٹ لکھتے ہیں تو ہمیں ان کی وضاحت کرنے کی ضرورت نہیں۔ نیچے دیئے گئے ٹکڑے میں تیسرے اور چوتھے طریقوں کے پیرامیٹرز کو دیکھیںکوڈ
@ ٹسٹ (ترجیحی = 2 ، قابل = سچ) عوامی جامد باطل فرسٹ ٹسٹ (). system.out.println ('یہ ترجیح # 2 کی وجہ سے ٹیسٹ نمبر دو ہے')} @ ٹیسٹ (ترجیح = 1 ، قابل = صحیح ) عوامی جامد باطل سیکنڈ ٹسٹ (). system.out.println ('یہ ترجیح # 1 کی وجہ سے ٹیسٹ کیس نمبر ایک ہے')} @ ٹیسٹ (فعال = جھوٹا) عوامی جامد باطل اسکائپٹسٹ (). system.out.println ( 'یہ اسکاپڈ ٹیسٹ کیس ہے کیونکہ یہ غیر فعال کردیا گیا ہے')} @ ٹیسٹ (قابل = سچ) عوامی جامد باطل فائنل ٹسٹ (). system.out.println ('یہ حتمی ٹیسٹ کیس ہے ، جو قابل ہے اور اس کی کوئی ترجیح نہیں ہے) ')}
طریقہ پر انحصار
اب اگر آپ کی کوئی صورتحال ہے ، آپ چاہتے ہیں کہ کوڈ کا ایک ٹکڑا اسی صورت میں عمل میں لایا جائے جب وہ کسی شرط کو پورا کرے یا صرف اس صورت میں جب کوئی خاص طریقہ کامیابی سے چلتا ہو ، تو ہم اسے استعمال کرکے کرسکتے ہیں انحصار کرتا ہےمیتود ()۔ یہ بنیادی طور پر طریقہ انحصار کی ایک حالت ہے جہاں کسی دوسرے طریقہ پر منحصر ہو کر کوئی طریقہ عمل میں لایا جائے گا۔ اگر ہم اس کے علاوہ بھی سیٹ کرتے ہیں ہمیشہ چلائیں سچ سے منسوب ، تو اس کا انحصار اس طریقہ پر عملدرآمد کیا جائے گا قطع نظر اس کے قطع شدہ طریقہ کی ناکامی / پاس شرط کی۔ نیچے کوڈ کے ٹکڑوں میں کوڈ دیکھو۔
@ ٹسٹ پبلک جامد باطل فرسٹ ٹسٹ (). system.out.println ('اس پر عمل درآمد کرنے والا پہلا ٹیسٹ کیس ہے')} @ ٹیسٹ (انحصار کرتا ہے۔ میتھڈس = First 'فرسٹ ٹیسٹ)}) عوامی جامد باطل سیکنڈ ٹسٹ (). system.out۔ println ('یہ دوسرا ٹیسٹ کیس ہے جس پر عملدرآمد کیا جا This یہ ایک منحصر طریقہ ہے')} @ ٹیسٹ (انحصار کرتا ہے۔ میتھڈز = {'سیکنڈ ٹیسٹ'}) عوامی جامد باطل فائنل ٹیسٹ () {system.out.println ('یہ آخری ٹیسٹ ہے کیس اس کو بہر صورت پھانسی دے دی جائے گی۔ ')}
اب ، یہ ہمیں امتحان میں ایک اور اہم پہلو کی طرف لے جاتا ہےتشریحات جو ہیں گروہ بندی .
گروہ بندی
اب تک آپ کو معلوم ہونا چاہئے کہ کوڈ میں ہمارے ٹیسٹ کیس کے ایک حصے کے طور پر بہت سارے طریقے ہوں گے۔ ہم کہتے ہیں کہ ٹیسٹ کے 100 واقعات ہیں لیکن ، ہم اپنے اگلے ٹیسٹ میں صرف 20 ٹیسٹ کیسوں پر عملدرآمد کرنا چاہتے ہیں۔ کیا آپ کو لگتا ہے کہ ہم یہ کر سکتے ہیں؟ یقین ہے کہ ہم کر سکتے ہیں۔
ہم استعمال کرسکتے ہیں گروپس اس مقصد کے لئے وصف. ہم متعدد ٹیسٹ کیسوں میں گروپ کا نام تفویض کرسکتے ہیں اور بعد میں پورے کوڈ کے بجائے اس گروپ کو پھانسی دینے کا انتخاب کرسکتے ہیں۔ سمجھنے کے لئے نیچے کوڈ کا ٹکڑا دیکھیںگروپس بنانے کا طریقہ
@ ٹیسٹ (گروپس = My 'میرا گروپ'}) عوامی جامد باطل فرسٹ ٹسٹ (). system.out.println ('یہ گروپ کا ایک حصہ ہے: میرا گروپ')} @ ٹسٹ (گروپس = My 'میرا گروپ'}) عوامی جامد باطل سیکنڈٹیسٹ (). system.out.println ('یہ گروپ کا بھی ایک حصہ ہے: میرا گروپ')} @ ٹسٹ پبلک جامد باطل تھریڈیسٹ () {system.out.println ('لیکن ، یہ اس کا حصہ نہیں ہے گروپ: میرا گروپ ')}
ٹیسٹ این جی کے دعوے
اب یہ ہمیں ٹیسٹ این جی میں اگلے عنوان کی طرف لے جاتا ہے جو دعویٰ ہے۔ جیسا کہ نام سے پتہ چلتا ہے ، امتحانات کو پاس / فیل حالت کا تعین کرنے کے ل as ٹیسٹ کے طریقوں میں دعوی کیا جاسکتا ہے۔ کسی بیان کی صحیح / غلط حالت کی بنیاد پر ، ٹیسٹ پاس / فیل ہوجائیں گے۔
نیچے دیے گئے کوڈ میں میں نے ٹیسٹ کے 3 طریقے شامل کیے ہیں ، جس میں پہلے اور تیسرے طریقوں میں پاس کی شرط ہے اور دوسرے طریقہ میں ناکام حالت ہوگی۔ اپنے لئے کوڈ ملاحظہ کریں۔
پیکیج ٹسٹینگ درآمد org.testng.annotations.Test امپورٹ org.testng.annotations.BeforeMethod درآمد org.openqa.selenium.WebDriver درآمد org.openqa.selenium.firefox.FirefoxDriver درآمد org.testng.Assert درآمد org.estngfethod.annotations عوامی طبقے کے دعوے {Meodod (). System.setProperty ('webdriver.gecko.driver'، 'C: usersVardhanworkspaceSeleniumProjectfilesgeckodriver.exe')} عوامی بولین isEqual (int a = int b) {BeforeMethod عوامی باطل ) true سچ واپس لو} ورنہ false جھوٹی لوٹ آئے} @ سب سے بڑی عوامی باطل ٹیسٹ ایکوالیٹی 1 () {Assert.assertEquals (سچ ، isEqual (10 ، 10)) System.out.println ('یہ پاس کی حالت ہے')} @ ٹسٹ پبلک باطل ٹیسٹ ایکویٹی 2 () {Assert.assertEquals (سچ ، isEqual (10 ، 11)) System.out.println ('یہ ایک ناکام حالت ہے')}ٹیسٹ پبلک باطل getTitle () {WebDriver ڈرائیور = نیا فائر فاکس ڈرایور () ڈرائیور۔ get ('https://www.gmail.com') اسٹرنگ ٹائٹل = ڈرائیور.جیٹ ٹائٹل () Assert.assertEquals (ٹائٹل ، 'جی میل') سسٹم آؤٹ.پریٹلن ('یہ پھر پاس کی حالت ہے')} }
جب آپ اس پھانسی کے بعد پیدا ہونے والی اس رپورٹ کو دیکھیں گے ، تو آپ دیکھیں گے کہ تین ٹیسٹوں میں سے ایک ناکام اور دو پاس ہوئے ہیں۔ ایک اور اہم نکتہ یاد رکھیں کہ جب یہ دعوی ناکام ہوجاتا ہے تو ، اس ٹیسٹ میں کوڈ کی دیگر کمانڈز / لائنز کو چھوڑ دیا جائے گا۔ صرف اس صورت میں جب دعویٰ ایک کامیابی ہے ، تو اس امتحان میں کوڈ کی اگلی لائن نافذ ہوگی۔ ذیل میں آؤٹ پٹ چیک کریں system.out.println صرف پہلے اور تیسرے طریقوں کے لئے پھانسی دی ہے۔
1493277977348 گیکو ڈرایور INFO 127.0.0.1:47035 پر سن رہا ہے 1493277977993 mozprofile :: پروفائل INFO پروفائل کا استعمال کرتے ہوئے سی: صارفین ورڈن ایپ ڈیٹالوک ٹیمپ ust_mozprofile.Z7X9uFdKODvi 1493277977999 جیکوڈروکس انووراکورس فاریسٹ فائل: لوکلہوسٹ پر میرینیٹ سے رابطہ قائم کرنا: 50758 [GPU 6920] انتباہ: پائپ کی خرابی: 109: فائل سی: / بلڈز / moz2_slave / m-rel-w32-00000000000000000000 / build / src / ipc / chromium / src / chrome / عام / ipc_channel_win۔ سی سی ، لائن 346 1493277981742 میرینیٹ INFO بندرگاہ پر سن رہا ہے 50758 اپریل 27 ، 2017 12:56:22 PM org.openqa.selenium.remote.Protocol ہینڈشیک تخلیق سیشن INFO: کھوج کی بولی: W3C یہ ایک پاس شرط ہے جو پاس کی شرط ہے۔ getTitle PASSED: testEquality1 FailedD: testEquality2 java.lang.SsertionError: org.testng.Assert.fail (Assert.java:93) پر org.testng.Assert.failNotEquals (Assert.java:) پر توقع [غلط] لیکن [سچ] ملا۔ 512) org.testng.Assert.assertE پر org.testng.Assert.assertEquals (Assert.javaimar15) org.testng.Assert.assertEquals (Assert.java:304) پر org.testng.Assert.assertEquals (Assert.java) پر کوالیفس امپل (Assert.java कार्य 34) : 314) at testng.Assertions.testEquality2 (Assertions.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0 (آبائی طریقہ) at sun.reflect.NativeMethodAccessorImpl.invoke (نامعلوم ماخذ) at sun.reflect.AccessorImpododMododMethodododododethcod.in ماخذ) java.lang.reflect.Method.invoke (نامعلوم ماخذ) org.testng.intern.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:108) پر org.testng.intern.Invoker.invokeMethod (Invoker.java:661) پر org.testng.intern.Invoker.invokeTestMethod (Invoker.java:869) پر org.testng.intern.Invoker.invokeTestMethods (Invoker.java split193) پر org.testng.intern.TestMethodWorker.invokeTestMethodods ٹیسٹ.جیتواسٹورج ٹیسٹ ) org.testng.intern.TestMethodWorker.run (TestMethodWorker.java:109) پر org.testng.TestRunner.privateRun (TestRunner.java:744) org.testng.TestRu پر org.testng.SuiteRunner.priNer.rivSunquentially (SuiteRunner.java:375) پر org.testng.SuiteRunner.runTest (SuiteRunner.java:380) پر nner.run (TestRunner.java:602) .java: 340) org.testng.SuiteRunner.run (SuiteRunner.java 289) پر org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) پر org.testng.SuiteRunnerWakerer.run (SuiteRun..un) پر org.testng.TestNG.runSuitesSequentially (TestNG.javaimar30301) org.testng.TestNG.runSuitesLocally (TestNG.javaimar226) پر org.testng.TestNG.runSuites (TestNG.javaPoint144) پر org.test.G. org.testng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.javae332) پر org.testng.remote.RemoteTestNG.initAndRun پر (ریموٹٹیسٹ این جی.جاو:2ٹینگ.30) پر ٹیسٹ این جی.رون (ٹیسٹ این جی.جاوا واقعہ115) یا ریموٹٹیسٹی این جی.جاو:2ٹینگ.یم. .RemoteTestNG.main (RemoteTestNG.java:76) ======================================= ======== پہلے سے طے شدہ ٹیسٹ ٹیسٹ چلتے ہیں: 3 ، ناکامیاں: 1 ، اسکیپس: 0 =========================== ================================================== ================= ڈیفالٹ سویٹ کل ٹیسٹ چلتے ہیں: 3، ناکامیاں: 1، اسکیپس: 0 =================================== =============
لہذا ، یہ ٹیسٹ کیس مینجمنٹ سے متعلق تصورات کا اختتام ہے۔ ہمارے پاس ایک اور عنوان باقی ہے ، اور وہ ہے رپورٹ تیار۔ سلیینیم ویب ڈرایور ٹیوٹوریل میں رپورٹ تخلیق آخری موضوع ہے کیونکہ رپورٹوں کو صرف تمام کے بعد ہی پیدا کیا جاسکتا ہےٹیسٹ پھانسی دے دیئے جاتے ہیں۔
sqlite براؤزر کا استعمال کس طرح
رپورٹ جنریشن
آپ کو نوٹ کرنے کی سب سے اہم بات یہ ہے کہ یہ رپورٹ صرف .xML فائل کے ذریعہ تیار کی جائے گی۔ اس کا مطلب ہے ، یہ ایک طریقہ ہو ، یا یہ کلاس ہو ، یا یہ ایک گروپ ہو جس کی آپ جانچ کرنا چاہتے ہیں ، ان سب کو .xML فائل میں متعین کرنا ہوگا۔
لہذا پہلے آپ اپنے پروجیکٹ کے تحت ایک نیا فولڈر تشکیل دے سکتے ہیں ، اور اس فولڈر کے اندر ایک نئی فائل تشکیل دے سکتے ہیں اور اس فائل کو ایک نام دے سکتے ہیں اور اسے XML ایکسٹینشن سے محفوظ کرسکتے ہیں۔ آپ پیکیج ایکسپلورر پر دائیں کلک کرکے نیا فولڈر اور فائل تشکیل دے سکتے ہیں۔ ایک بار فائل بنانے کے بعد ، ونڈو کے نیچے سے سورس ٹیب پر جائیں اور کنفیگریشن درج کریں جیسا کہ ذیل میں ٹکڑوں میں درج ہے۔
پہلی لائن XML دستاویز کی قسم کی تعریف ہے۔ یہ جانچ کے تمام رپورٹس کے لئے معیاری اور لازمی ہے۔ لیکن ، دوسری لکیریں خود ہی وضاحتی ہیں۔ میں نے سوٹ ، ٹیسٹ ، کلاسوں اور کلاس کیلئے کھلے ٹیگ استعمال کیے ہیں۔ کلاس ٹیگ کے اندر ایک یا زیادہ کلاس ہوسکتی ہے۔ اس طرح ، اگر ہم ایسی رپورٹ تیار کرنا چاہتے ہیں جہاں ہم متعدد کلاسوں کی جانچ کر رہے ہیں تو اس کا استعمال کیا جاسکتا ہے۔ یہ خاص طور پر ان ڈویلپرز کے لئے کارآمد ہے جو کوڈ کے لمبے ٹکڑے کو جانچنا چاہتے ہیں۔
بہرحال ہماری رپورٹ پر واپس آنے پر ، آپ ان ٹیگس کو کھولنے کے بعد ہر سوٹ یا ٹیسٹ یا کلاس کا نام دے سکتے ہیں اور اپنے کھلے ہوئے ہر ٹیگ کو بند کرنا یاد رکھیں گے۔ میں نے اپنے سویٹ کا نام جیسے دیا ہے ٹیسٹ این جی ، ٹیسٹ نام کے طور پر پرکھ تشریحات اور کلاس کا نام testng.TestAnnotations. نوٹ کریں کہ کلاس کا نام فارمیٹ میں ہے ' packagename.classname ’ .
جب آپ اس فائل کو ٹیسٹ این جی سویٹ کے بطور چلاتے ہیں تو ، عمل درآمد شروع ہوجائے گا اور آپ کو ٹیسٹ کی تفصیلی اطلاعات ملیں گی۔ آپ کو اپنے کنسول ٹیب میں ٹیسٹ آؤٹ پٹ اور اگلے ٹیب میں ٹیسٹ سویٹ کا نتیجہ ملے گا۔ میں نے اپنے کوڈ کو عملی جامہ پہنانے کے لئے جو رپورٹ تیار کی ہے وہ ہےمیںذیل میں اسکرین شاٹ. آپ دیکھیں گے کہ اس بار ، ایک سویٹ نام ، ٹیسٹ کا نام ، کلاس کا نام اور ان میں سے ہر ایک کو پھانسی دینے میں جو وقت لیا گیا ہے۔
اگر آپ HTML رپورٹ (انڈیکس رپورٹ یا ای میل رپورٹ) دیکھنا چاہتے ہیں تو ، آپ اس سائٹ پر جا سکتے ہیں ٹیسٹ آؤٹ پٹ آپ کے کام کی جگہ میں پروجیکٹ ڈائرکٹری کے اندر فولڈر۔ ان پر کلک کرکے ، آپ رپورٹس کو بعد کے وقت پر بھی دیکھ سکتے ہیں۔ ذیل میں ان کے اسکرین شاٹس ہیں۔
انڈیکس رپورٹ : -
ای میل رپورٹ : -
تو یہ ہمارے لئے اس سیلینیم ویب ڈرایور سبق بلاگ کے اختتام تک پہنچاتا ہے۔ اب وقت آگیا ہے کہ آپ اپنے اختتام پر گرہن لگائیں ، مختلف سیلینیم پیکیجز انسٹال کریں ، ٹیسٹ این جی انسٹال کریں اور اپنے ٹیسٹ کے مقدمات لکھنے کا آغاز کریں۔
اس بلاگ میں بیان کردہ مختلف تصورات کے مظاہرے کے لئے آپ ذیل میں سیلینیم ویب ڈرایور ٹیوٹوریل ویڈیو چیک کرسکتے ہیں۔
سیلینیم ٹریننگ | سیلینیم کے لئے ٹیسٹ این جی فریم ورک | ایڈوریکا
یہ ایڈورکا سیلینیم ٹریننگ ویڈیو آپ کو سیلینیم ویب ڈرایور کی گہرائیوں سے تفصیلات لے کر آئے گا۔ یہ سیلینیم ٹیوٹوریل ویڈیو ابتدائیوں اور پیشہ ور افراد دونوں کے لئے مثالی ہے جو WebDriver کے کمانڈ کی بنیادی باتوں کو ختم کرنا چاہتے ہیں اور جانتے ہیں کہ ٹیسٹین کے مختلف معاملات کو سنبھالنے کے لئے کس طرح Selenium کے ساتھ TestNG استعمال کیا جاسکتا ہے۔
اگر آپ سیلینیم سیکھنا چاہتے ہیں اور ٹیسٹنگ ڈومین میں اپنا کیریئر بنانا چاہتے ہیں تو ہمارا انٹرایکٹو ، براہ راست آن لائن دیکھیں یہاں ، وہ آپ کے سیکھنے کی پوری مدت میں آپ کی رہنمائی کے لئے 24 * 7 سپورٹ کے ساتھ آتا ہے۔
ہمارے لئے ایک سوال ہے؟ برائے کرم اس کا تذکرہ سیکشن میں ذکر کریں اور ہم آپ کو واپس ملیں گے۔