সেলেনিয়াম ওয়েবড্রাইভার: টেস্ট কেস ম্যানেজমেন্ট এবং রিপোর্ট জেনারেশনের জন্য টেস্টএনজি



এই সেলেনিয়াম ওয়েবড্রাইভার টিউটোরিয়াল আপনাকে টেস্ট কেস পরিচালনা ও বিস্তারিত পরীক্ষার রিপোর্ট তৈরির জন্য সেলেনিয়ামের সাথে টেস্টএনজি ব্যবহারের প্রয়োজনীয়তা বুঝতে সাহায্য করবে।

পূর্ববর্তী ব্লগে, আমি আপনাকে শিখিয়েছি কীভাবে আপনার প্রথম সেলেনিয়াম ওয়েবড্রাইভার পরীক্ষা চালানো যায়। এই ব্লগে, আমি উন্নত সেলেনিয়াম ওয়েবড্রাইভার ধারণাগুলি কভার করব। আমি ইতিমধ্যে বেশ কয়েকবার উল্লেখ করেছি যে সেলেনিয়াম ওয়েবড্রাইভারের টেস্ট কেস ম্যানেজমেন্ট এবং টেস্ট রিপোর্ট জেনারেশনের ক্ষেত্রে সীমাবদ্ধতা রয়েছে। সুতরাং, বিকল্প কি? সেলেনিয়াম হিসাবে জনপ্রিয় একটি সরঞ্জাম অবশ্যই একটি workaround অবশ্যই থাকতে হবে? অবশ্যই আছে! এই সীমাবদ্ধতাটিকে হারাতে আমরা সেলেনিয়াম এবং টেস্টএনজির সংমিশ্রণটি ব্যবহার করতে পারি এবং এটিই এই ব্লগের আলোচনার বিষয়বস্তু হবে।

জাভা প্রিন্ট রাইটার কি

যদি আপনি সেলেনিয়ামে নতুন হন এবং মূল ধারণাগুলির পরিচিতি চান তবে আপনি এখান থেকে আপনার যাত্রা শুরু করতে পারেন: ? তবে অন্যরা এই ব্লগ থেকে সেলেনিয়ামের জন্য টেস্টএনজি দিয়ে শুরু করতে পারেন।আপনার এও জানা উচিত যে সংস্থাগুলি পেশাদারদের সাথে সক্রিয়ভাবে শিকার করছে সফ্টওয়্যার পরীক্ষকদের আয়ত্ত করার জন্য এটি একটি গুরুত্বপূর্ণ দক্ষতা তৈরি করে।





বিশ্বজুড়ে সফ্টওয়্যার বিকাশকারীরা সর্বসম্মতভাবে সম্মত হবেন যে পরীক্ষার ক্ষেত্রে লিখিত কোডগুলি তাদের ডিবাগিং সময়ের একটি ভাল অংশ সংরক্ষণ করে। কেন? এর কারণ পরীক্ষার কেসগুলি দৃust় এবং ত্রুটিমুক্ত কোড তৈরি করতে সহায়তা করে। কীভাবে তা করে? পুরো কোডটি ছোট পরীক্ষার ক্ষেত্রে বিভক্ত করে এবং তারপরে / ব্যর্থ শর্তগুলি পাস করার জন্য এই পরীক্ষার প্রতিটি ক্ষেত্রে মূল্যায়নের মাধ্যমে আমরা ত্রুটিমুক্ত কোড তৈরি করতে পারি। যেহেতু সেলেনিয়াম পরীক্ষার ক্ষেত্রে কোড প্রয়োগের পক্ষে সমর্থন করে না, তাই আমাদের একই জন্য টেস্টএনজি ব্যবহার করতে হবে। টেস্টএনজি এটিই সেলেনিয়াম কাঠামোর সাথে ফিট করে।

টেস্টএনজি জন্য দাঁড়িয়েছে পরের জেনারেশন পরীক্ষা করুন এবং এটি JUnit এবং NUnit দ্বারা অনুপ্রাণিত একটি ওপেন-সোর্স টেস্ট অটোমেশন ফ্রেমওয়ার্ক। ঠিক আছে, কেবল অনুপ্রাণিতই নয়, those দুটি ফ্রেমওয়ার্কগুলিতে একটি আপগ্রেড। সুতরাং আপনি জিজ্ঞাসা করতে পারেন এখানে আপগ্রেড কি?টেস্টএনজির সাথে আপগ্রেড হ'ল, এটি অতিরিক্ত কার্যকারিতা সরবরাহ করে: টেস্ট এনোটেশন, গ্রুপিং, অগ্রাধিকার, পরামিতি এবং কোডটিতে সিকোয়েন্সিং কৌশল যা আগে সম্ভব ছিল না।



পরীক্ষার কেসগুলি পরিচালনা করার পাশাপাশি, টেস্টএনজি ব্যবহার করে পরীক্ষাগুলির বিস্তারিত প্রতিবেদনগুলিও পাওয়া যায়। এটি ব্যর্থ হয়েছে এমন পরীক্ষার কেসটি প্রদর্শন করে এমন একটি সংক্ষিপ্তসার উপস্থিত থাকবে, যার সাথে এটি অংশ ছিল এবং সেই শ্রেণীর অধীনে চলেছে। বাগগুলি যথাযথভাবে এর মতো অবস্থিত হতে পারে, এগুলি তত্ক্ষণাত বিকাশকারীদের ত্রাণে স্থির করা যেতে পারে। নীচের চিত্রটি টেস্টএনজির কাজ চিত্রিত করে।

টেস্টং - সেলেনিয়াম ওয়েবড্রাইভার

সুতরাং, টেস্টএনজি কীভাবে কাজটি করে? এই প্রশ্নের উত্তর দেওয়া হবেএই সেলেনিয়াম ওয়েবড্রাইভার টিউটোরিয়াল ব্লগের পরবর্তী বিভাগে, যেখানে আমি টেস্টএনজি ব্যবহার করে বিভিন্ন পরীক্ষার কেসগুলি কীভাবে পরিচালনা করব তা নিয়ে আলোচনা করব।



টেস্টএনজি সহ সেলেনিয়াম ওয়েবড্রাইভার

পরীক্ষার কেসগুলি নিম্নলিখিত উপায়গুলির মধ্যে একটি দ্বারা সংজ্ঞায়িত ও পরিচালনা করা যায়:

  1. পরীক্ষা টীকা
  2. অগ্রাধিকার
  3. পরীক্ষার কেসগুলি অক্ষম করা হচ্ছে
  4. পদ্ধতি নির্ভরতা
  5. দলবদ্ধকরণ
  6. জোর
  7. রিপোর্ট জেনারেশন

আমাকে ব্যাখ্যা শুরু করুনএই কার্যকারিতা প্রতিটি।

পরীক্ষা টীকা

সবার আগে, আসুন আমরা নিজেরাই এই প্রশ্নটি জিজ্ঞাসা করি: আমাদের টীকাগুলি ব্যবহার করার দরকার কী? আমরা কখন সেগুলি ব্যবহার করতে পারি? সেলেনিয়ামে টীকাগুলি কার্যকর করার জন্য পরবর্তী পদ্ধতিটি নিয়ন্ত্রণ করতে ব্যবহৃত হয়। পরীক্ষা কোডে প্রতিটি পদ্ধতির আগে পরীক্ষার টীকা সংজ্ঞায়িত করা হয়। যদি কোনও পদ্ধতির টীকাগুলির সাথে উপসর্গ না করা হয়, তবে সেই পদ্ধতিটিকে উপেক্ষা করা হবে এবং পরীক্ষার কোডের অংশ হিসাবে কার্যকর করা হবে না। সেগুলি সংজ্ঞায়িত করার জন্য, পদ্ধতিগুলি সহজেই বর্নিত করা উচিত ‘ @ টেস্ট ‘। উদাহরণস্বরূপ নীচের কোড স্নিপেটটি দেখুন।

প্যাকেজ টেস্টং আমদানি org.openqa.selenium.WebDriver আমদানি org.openqa.selenium.firefox.FirefoxDriver আমদানি org.testng.annotations.AfterClass আমদানি org.testng.annotations.AfterMethod আমদানি org.testng.annotations.notteClass আমদানি .BeforeMethod আমদানি org.testng.annotations.Test সর্বজনীন শ্রেণীর টেস্টঅনোটেশন {@ সর্বজনীন শূন্যস্থান myTestMethod ()। System.out.println ('অভ্যন্তরীণ পদ্ধতি: - myTestMethod') ওয়েবড্রাইভার ড্রাইভার = নতুন ফায়ারফক্সড্রাইভার () ড্রাইভার.get ('http: //www.seleniumframework.com / প্র্যাকটিসফর্ম / ') স্ট্রিং শিরোনাম = ড্রাইভার.getTitle () System.out.println (শিরোনাম) ড্রাইভার.quit () B @ মেথোডের আগে ম্যাসোড পাবলিক শূন্য () {System.out.println (' এটি কোডের টুকরোটি পদ্ধতির আগে নির্বাহ করা হয়: - মাই টেস্টমেথোড ') System.setProperty (' ওয়েবড্রাইভার.জেকো.ড্রাইভার ',' সি: ইউজারওয়ার্ড ওয়ার্কস্পেসসেসেনিয়ামপ্রজেক্টফাইলসেকোড্রাইভার.এক্সে ')} @এফটারমেথড সর্বজনীন শূন্যপরিবর্তনের পরে ম্যাথড () piece কোডটি কোডের পরে কার্যকর করা হয়: - মাই টেস্টমেথোড ')} @ বিফোরক্লাস পাবলিক শূন্যতার আগে ক্লাস () {সিস্টেম m.out.println ('শ্রেণির মৃত্যুদণ্ড কার্যকর হওয়ার আগে এই টুকরো কোডটি কার্যকর করা হবে')} @ আফটারক্লাস সর্বজনীন শূন্য পরে ক্লাস ()। System.out.println ('এই শ্রেণীর কোড কার্যকর হওয়ার পরে কার্যকর করা হবে') ' }

উপরের কোডটিতে, আপনি খেয়াল করবেন যে আমি একটি ‘প্রধান’ পদ্ধতি সংজ্ঞায়িত করেছি না। তবে, আমি সংজ্ঞায়িত অন্যান্য 5 টি পদ্ধতি রয়েছে। এগুলি হ'ল 'মাই টেস্টমেথোদ', 'ম্যাথোডের আগে', 'ম্যাথোডের পরে', 'ক্লাসের আগে' এবং 'আফটারক্লাস'। এছাড়াও কোডে পদ্ধতিগুলির সংজ্ঞাটির ক্রমটি নোট করুন কারণ এগুলি একই ক্রমে কার্যকর করা হবে না।

পদ্ধতিটি ‘মাই টেস্টমেথোড’ দিয়ে বর্নিত হয়েছে @ টেস্ট , এবং এটি কোডের মূল পদ্ধতি বা টুকরা যা কার্যকর করতে হবে। এই পদ্ধতিটি কার্যকর করার আগে এবং পরে অন্যান্য টীকাগুলি কার্যকর করা হবে। যেহেতু ‘মেঠোডের আগে’ এর সাথে টিকা দেওয়া হয় পুনঃটুইট , এটি ‘মাই টেস্টমেথোদ’ কার্যকর হওয়ার আগেই কার্যকর করা হবে। একইভাবে, ‘ম্যাথোডের পরে’ দিয়ে টিকা দেওয়া হয় @ আফটারমেথোদ , এবং এভাবে এটি ‘মাই টেস্টমেথড’ এর পরে কার্যকর করা হবে।

তবে, ‘পূর্বেক্লাস’ এর সাথে টিকা দেওয়া আছে পুনঃটুইট , যার অর্থ এটি ক্লাস নিজেই সম্পাদন করার আগেই কার্যকর করা হবে। আমাদের ক্লাসের নাম এখানে টেস্টঅ্যানোটেশন , এবং এভাবে ক্লাসটি কার্যকর করা শুরু হওয়ার আগে, 'বিগ্রে ক্লাস' এর ভিতরে কোডের টুকরাটি কার্যকর করা হবে। একইভাবে, ‘আফটারক্লাস’ দিয়ে টিকা দেওয়া হয় @ আফটারমেথোদ , এবং এভাবে ক্লাসের পরে মৃত্যুদন্ড কার্যকর করা হবে টেস্টঅ্যানোটেশন মৃত্যুদন্ড কার্যকর করা হয়

যদি আপনার মৃত্যুদন্ড কার্যকর করার আদেশের বিষয়ে এখনও বিভ্রান্তি থাকে তবে নীচের স্নিপেট অবশ্যই আপনাকে সহায়তা করবে।

1.ফরডসুইট 2. আগে টেস্ট 3. বিগ ক্লাস 4. ম্যাথোডের আগে 5. পরীক্ষা 6. ম্যাথড পরে 7. ক্লাস 8. আফটার টেস্ট 9. পরে স্যুট

উপরের কোডটির আউটপুট হবে:

শ্রেণীর মৃত্যুদণ্ড কার্যকর হওয়ার আগে এই টুকরা কোডটি কার্যকর করা হয় পদ্ধতির আগে এই টুকরা কোডটি কার্যকর করা হয়: - মাই টেস্টমেথোড ইনসাইড পদ্ধতি: - মাই টেস্টমেথোড 1493192682118 গেকোড্রাইভার আইএনএফও 127.0.0.113676 এ শুনছে :: মোজপ্রোফিল :: প্রোফাইল আইএনএফও প্রোফাইল পথ ব্যবহার করে সি: ইউজারফ্ল্যাশপজমেজ_ .wGkcwvwXkl2y 1493192682729 গেকোড্রাইভার :: মেরিনেট INFO ব্রাউজার সি: প্রোগ্রাম ফাইল (x86) মোজিলা ফায়ারফক্সায়ারফক্স.এক্সে 1493192682729 গেকোড্রাইভার :: মেরিনেট আইএনএফও লোকালহোস্ট: 59792: সিআরআইআরএলিং ফাইলের সাথে সংযুক্ত হচ্ছে: জিআরইউ 6152 পাইপ WWARG /moz2_slave/m-rel-w32-000000000000000000000000 / বিল্ড / এসআরসি / ক্রোমিয়াম / এসআরসি / ক্রোম / কমোন / আইপিসি_চ্যানেল_উইন.সি.সি, লাইন 346 1493192688316 মেরিনেট INFO পোর্টে শোনা যাচ্ছে 59792 এপ্রিল 26, 2017 1:14:49 পিএম বা জিজি। openqa.selenium.remote.ProtocolHandshake createSession INFO: সনাক্ত উপভাষা: ডাব্লু 3 সি জাভাস্ক্রিপ্ট ত্রুটি: http://t.dtscout.com/i/?l=http%3A%2F%2Fwww.seleniumframework.com%2F অনুশীলন%২F&j=, লাইন 1: প্রকারের ত্রুটি: ডকুমেন্ট.জেট এলিমেন্টস বাইট্যাগনা আমার (...) [0] সেলেনিয়াম ফ্রেমওয়ার্ক অপরিজ্ঞাত অনুশীলন 1493192695134 সামুদ্রিক আইএনএফও নতুন সংযোগগুলি আর গৃহীত হবে না এপ্রিল 26, 2017 1:14:57 অপরাহ্ন org.openqa.selenium.os.UnixProcess SEVERE নষ্ট করুন: পিআইডি 676 দিয়ে প্রক্রিয়াটি মেরে ফেলতে অক্ষম এই পদ্ধতির পরে কোডটির এই অংশটি কার্যকর করা হয়েছে: - myTestMethod এই টুকরো কোডটি ক্লাসটি কার্যকর করার পরে পাস করা হবে: মাই টেস্টমেথড ================================== ============ ডিফল্ট পরীক্ষার পরীক্ষা চালানো হয়: 1, ব্যর্থতা: 0, এড়ানো: 0 ======================= =================================================== ==================== ডিফল্ট স্যুট মোট পরীক্ষাগুলি রান: 1, ব্যর্থতা: 0, এড়ানো: 0 =============== =================================

আপনি উপরের আউটপুট থেকে দেখতে পাচ্ছেন, চালানো পরীক্ষার সংখ্যা 1 এবং ব্যর্থ 0 হয় 0. এর অর্থ কোডটি সফল। এমনকি পদ্ধতিগুলি কার্যকর করার ক্রম হবে আদেশেআমিআগে উল্লিখিত।

আপনি যখন নিজের মেশিনে এই কোডটি কার্যকর করেন, সেলেনিয়াম ওয়েবড্রাইভার আপনার ফায়ারফক্স ব্রাউজারটি ইনস্ট্যান্ট করবে, সেলেনিয়াম ফ্রেমওয়ার্কের অনুশীলন ফর্মে নেভিগেট করবে, ব্রাউজারের উদাহরণটি বন্ধ করে দেবে এবং আপনার Eclipse IDE তে উপরে প্রদর্শিত একই আউটপুট প্রদর্শন করবে।

আমি আমার কোডটিতে কেবল 5 টি ভিন্ন টীকা ব্যবহার করেছি। তবে আরও অনেক টিকা আছে যা ব্যবহার করা যেতে পারে পরবর্তী পদ্ধতিটি নিয়ন্ত্রণ করতে। টীকাগুলির সম্পূর্ণ তালিকাটি ব্যাখ্যা করা হয়েছেটেবিলনিচে:

পছন্দ করুন - পদ্ধতিতে টীকাযুক্ত পছন্দ করুন স্যুটে সমস্ত পরীক্ষা চালানোর আগে চলবে।

@ আফটারসুইট - পদ্ধতিতে টীকাযুক্ত @ আফটারসুইট স্যুটে সমস্ত পরীক্ষা চালানোর পরে চলবে।

পছন্দ করুন - পদ্ধতিতে টীকাযুক্ত পছন্দ করুন কোনও শ্রেণীর অন্তর্ভুক্ত কোনও পরীক্ষা পদ্ধতি চালানোর আগে চলবে।

@ আফটারটেষ্ট - পদ্ধতিতে টীকাযুক্ত @ আফটারটেষ্ট কোনও শ্রেণীর অন্তর্ভুক্ত সমস্ত পরীক্ষা পদ্ধতি চালানোর পরে চলবে।

পছন্দ করুন - পদ্ধতিতে টীকাযুক্ত পছন্দ করুন প্রতিটি গ্রুপ চালানোর আগে চলবে।

@ আফটার গ্রুপ - পদ্ধতিতে টীকাযুক্ত @ আফটার গ্রুপ প্রতিটি গ্রুপ চালানোর পরে চলবে।

পুনঃটুইট - পদ্ধতিতে টীকাযুক্ত পুনঃটুইট বর্তমান শ্রেণিতে প্রথম পরীক্ষা পদ্ধতি চালুর আগে একবার চালানো হবে।

@ক্লাসের পরে - পদ্ধতিতে টীকাযুক্ত @ক্লাসের পরে বর্তমান ক্লাসে সমস্ত পরীক্ষা পদ্ধতি চালানোর পরে একবারে চলবে।

জাভা হ্যাশম্যাপ কি

পুনঃটুইট - পদ্ধতিতে টীকাযুক্ত পুনঃটুইট ক্লাসের মধ্যে যে কোনও পরীক্ষা পদ্ধতি চালানোর আগে চলবে।

@ আফটারমেথোদ - পদ্ধতিতে টীকাযুক্ত @ আফটারমেথোদ ক্লাসের ভিতরে প্রতিটি পরীক্ষার পদ্ধতি চালানোর পরে চলবে।

@ টেস্ট - পদ্ধতিতে টীকাযুক্ত @ টেস্ট পুরো প্রোগ্রামের মূল পরীক্ষা পদ্ধতি। অন্যান্য বর্ণিত পদ্ধতিগুলি এই পদ্ধতির চারপাশে কার্যকর করা হবে।

টেস্টএনজি রিপোর্টের স্ক্রিনশটটি হ'লনীচে উপস্থিত: -

অগ্রাধিকার

আমরা কীভাবে বিভিন্ন পদ্ধতির সংজ্ঞা দেওয়া যেতে পারে সেগুলি সম্পর্কে যে সেগুলি প্রায় কার্যকর করা হয় সে সম্পর্কে কথা বলেছি @ টেস্ট পদ্ধতি তবে, যদি আপনার একের বেশি থাকে তবে @ টেস্ট পদ্ধতি এবং আপনি তাদের মধ্যে কার্যকর করার আদেশ সংজ্ঞায়িত করতে চান?

সেক্ষেত্রে আমরা পারিপিটীকাগুলি পরীক্ষার ক্ষেত্রে একটি নম্বর বরাদ্দ করে তাদের রিওরাইটাইজ করুন। সংখ্যায় ছোট, অগ্রাধিকার বেশি। অগ্রাধিকার পরীক্ষার কেসগুলি সংজ্ঞায়িত করার সময় পরামিতি হিসাবে নির্ধারণ করা যেতে পারে। তবে, যদি কোনও অগ্রাধিকার নির্ধারিত না হয়, তবে পরীক্ষার বর্ণানুক্রমিক ক্রম অনুযায়ী বর্ণিত পরীক্ষার পদ্ধতিগুলি কার্যকর করা হবে। নীচের অংশে পরীক্ষার টীকাগুলির পরামিতিগুলি দেখুনকোড

@ টেস্ট (অগ্রাধিকার = 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 ('এটি কার্যকর করা প্রথম টেস্ট কেস')} @ টেস্ট (dependOnMethods = First 'ফার্স্ট টেস্ট'}) পাবলিক স্ট্যাটিক অকার্যকর দ্বিতীয়তম টেস্ট ()। System.out। println ('এটি কার্যকর করা দ্বিতীয় টেস্ট কেস এটি একটি নির্ভরশীল পদ্ধতি')} @ টেস্ট (dependOnMethods = {'সেকেন্ড টেস্ট'}) পাবলিক স্ট্যাটিক শূন্যতম ফাইনালটেষ্ট ()। system.out.println ('এটিই চূড়ান্ত পরীক্ষা কেস এটি যাইহোক কার্যকর করা হবে। ')}

এখন, এটি আমাদের পরীক্ষার আরেকটি গুরুত্বপূর্ণ বিষয়ে নিয়ে যায়টীকা যা হয় দলবদ্ধকরণ

দলবদ্ধকরণ

এতক্ষণে আপনাকে অবশ্যই জানতে হবে যে কোডে আমাদের পরীক্ষার কেস হিসাবে অনেকগুলি পদ্ধতি থাকবে। ধরা যাক 100 টি পরীক্ষার কেস রয়েছে তবে আমরা আমাদের পরবর্তী পরীক্ষায় কেবল 20 টি পরীক্ষার কেস কার্যকর করতে চাই। আপনি কি ভাবেন যে আমরা এটি করতে পারি? অবশ্যই আমরা পারব.

আমরা ব্যবহার করতে পারি দল এই উদ্দেশ্যে বৈশিষ্ট্য। আমরা কয়েকটি পরীক্ষার ক্ষেত্রে একটি গোষ্ঠীর নাম নির্ধারণ করতে পারি এবং পরে পুরো কোডের পরিবর্তে গোষ্ঠীটি কার্যকর করতে বেছে নিতে পারি। বুঝতে নীচের কোড স্নিপেট দেখুনগ্রুপ তৈরি করতে কিভাবে।

@ টেস্ট (গ্রুপগুলি = {'মাইগ্রুপ' ') পাবলিক স্ট্যাটিক অকার্যকর ফার্স্ট টেস্ট ()। System.out.println (' এটি গ্রুপের একটি অংশ: মাইগ্রুপ ')} @ টেস্ট (গ্রুপগুলি = My' মাইগ্রুপ '}) পাবলিক স্ট্যাটিক অকার্যকর সেকেন্ড টেস্ট ()। system.out.println ('এটি গ্রুপেরও একটি অংশ: মাইগ্রুপ')} @ টেস্ট পাবলিক স্ট্যাটিক অকার্যকর থার্ডটেষ্ট () {system.out.println ('তবে, এটি কোনও অংশ নয় গোষ্ঠী: মাইগ্রুপ ')}

টেস্টএনজি জোর

এটি এখন আমাদের টেস্টএনজির পরবর্তী বিষয়ের দিকে নিয়ে যায় যা জোর দেওয়া হয়। নামটি যেমন বোঝায়, পরীক্ষার পাস / ব্যর্থ শর্ত নির্ধারণের জন্য পরীক্ষার পদ্ধতিতে দৃser়তা ব্যবহার করা যেতে পারে। একটি বিবৃতিতে সত্য / মিথ্যা শর্তের ভিত্তিতে পরীক্ষাগুলি পাস / ব্যর্থ হবে।

নীচের কোডটিতে আমি তিনটি পরীক্ষার পদ্ধতি অন্তর্ভুক্ত করেছি, যেখানে প্রথম এবং তৃতীয় পদ্ধতিগুলির একটি পাসের শর্ত রয়েছে এবং দ্বিতীয় পদ্ধতিতে একটি ব্যর্থ শর্ত থাকবে। নিজের জন্য কোড দেখুন।

প্যাকেজ টেস্টং আমদানি org.testng.annotations.Test আমদানি org.testng.annotations.BeforeMethod আমদানি org.openqa.selenium.WebDriver আমদানি org.openqa.selenium.firefox.FirefoxDriver আমদানি org.testng.Assert আমদানি org.estngfethod.annotations পাবলিক ক্লাসের দাবিসমূহ {@ মেঠোড ()। সিস্টেম.setProperty ('ওয়েবড্রাইভার.জেকো.ড্রাইভার', 'সি: ইউজারস ওয়ার্ড ওয়ার্কসপেসসিলেনিয়ামপ্রজেক্টফাইলেজড্রোডাইভার.এক্সে')} পাবলিক বুলিয়ান ইক্যুয়েল (ইনট বি = ইনট্রেট বি) { ) true সত্য প্রত্যাবর্তন করুন} অন্যথায় false মিথ্যা ফিরবেন} @ সর্বশেষ পাবলিক শূন্য পরীক্ষা পরীক্ষা 1 () sert Assert.assertEquals (সত্য, isEqual (10, 10)) System.out.println ('এটি একটি পাস শর্ত') is @ সর্বজনীন অকার্যকর টেস্টএকোয়ালিটি 2 () {Assert.assertEquals (সত্য, isEqual (10, 11)) System.out.println ('এটি একটি ব্যর্থ শর্ত')} @ সর্বজনীন শূন্যস্থান getTitle () {ওয়েবড্রাইভার ড্রাইভার = নতুন ফায়ারফক্সড্রাইভার () ড্রাইভার। get ('https://www.gmail.com') স্ট্রিং শিরোনাম = ড্রাইভার.getTitle () Assert.assertEquals (শিরোনাম, 'জিমেইল') System.out.println ('এটি আবার পাসের শর্ত')} }

যখন আপনি এই মৃত্যুদন্ড কার্যকর হওয়ার পরে উত্পন্ন প্রতিবেদনটি দেখুন, তখন আপনি খেয়াল করবেন যে তিনটি পরীক্ষার মধ্যে একটি ব্যর্থ হয়েছে এবং দুটি উত্তীর্ণ হয়েছে। আরেকটি গুরুত্বপূর্ণ বিষয় লক্ষণীয় হ'ল যখন একটি দৃser়তা ব্যর্থ হয়, তখন সেই পরীক্ষার অন্যান্য কমান্ড / কোডের লাইনগুলি এড়িয়ে যায়। কেবলমাত্র দাবি যখন সফল হয় তখনই পরবর্তী পরীক্ষার কোডটি পরীক্ষায় কার্যকর হবে। নীচে আউটপুট পরীক্ষা করে দেখুন system.out.println শুধুমাত্র প্রথম এবং তৃতীয় পদ্ধতির জন্য কার্যকর করা হয়েছে।

1493277977348 গেকোড্রাইভার INFO 127.0.0.1:47035 এ শুনছে 1493277977993 মোজপ্রোফিল :: প্রোফাইল আইএনএফ প্রোফাইল পাথ সি ব্যবহার করছে: ব্যবহারকারীবার্ডনডাটাটোকলটেম্প __mozprofile.Z7X9uFdKODvi 1493277977999 জেকোডিওরক্স ইনফায়ারফোন ইনফায়ারফক্স ইনফায়ারফোন ইনফায়ারফোন ইনফায়ারফোন ইনফায়ারফোন ইনফায়ারফোন ইনফায়ারফোন ইনফায়ারফোন ইনফায়ারফোন ইনফায়ারফোন ইনফায়ারফোন ইনফ্রোয়েজ ইনফায়ারও ইনফায়ারফোন ইনফায়ারিং লোকালহোস্টে মেরিওনেটে সংযুক্ত হচ্ছে: 50758 [জিপিইউ 6920] সতর্কতা: পাইপ ত্রুটি: 109: ফাইল সি: / বিল্ডস / মোজ 2_স্লাভ / এম-রিল-ডাব্লু 32-00000000000000000000 / বিল্ড / এসসিআর / আইপিসি / ক্রোমিয়াম / এসসিআর / ক্রোম / সাধারণ / আইপিসি_চ্যানেল_উইন। সিসি, লাইন 346 1493277981742 মেরিওনেট INFO পোর্টে শুনছে 50758 এপ্রিল 27, 2017 12:56:22 পিএম org.openqa.selenium.remote.Protocol হ্যান্ডশেক তৈরি সেশন ইনফো: সনাক্ত করা উপভাষা: ডাব্লু 3 সি এটি আবার পাসের শর্ত এটি পাসের শর্ত: getTitle PASSED: testEquality1 FAILED: 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.javaae3434) : ৩১৪) টেস্টং এ.অ্যাসেসরেশন.টেষ্টএকুয়ালিটি ২ (জবানবন্দি.জভা ৩৮৮) সূর্য.রেফलेक्ट.নেটিভ মেথোডঅ্যাকসেসরআইএমপিএল.নোভেক0 (নেটিভ মেথড) এ সান.রেফ্লেট.নেটিমেথোডঅ্যাকসেসরআইএমপিএল.কম (অজানা উত্স) সোর্স) at java.lang.reflect.Method.invoke (অজানা উত্স) at org.testng.internal.MethodInvocationHelper.invokeMethod (মেথডআইনওভোকেশনহেল্পার.জভা ১০০৮) at org.testng.intern.Invoker.invokeMethod (Invoker.java:661) এ org.testng.intern.Invoker.invokeTestMethod (Invoker.java:869) at org.testng.internal.Invoker.invokeTestMethods (Invoker.javauthor193) at or..teng.intern.TestMethodWorker.invokeTestMethodods টেস্টম্যাথোডর্স টেস্টম্যাথোডর্স্কে ) org.testng.intern.TestMethodWorker.run (TestMethodWorker.java:109) at org.testng.TestRunner.privateRun (TestRunner.java:744) at org.testng.TestRu এ org.testng.SuiteRunner.pranger.riunSequentially (SuiteRunner.java:375) এ org.testng.SuiteRunner.java:380) এ nner.run (TestRunner.java:602) .java: 340) org.testng.SuiteRunner.run (SuiteRunner.java 2899) at org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWakerer.run.run (SuiteRunun.run) এ org.testng.TestNG.runSuitesSequentially (TestNG.javaimar30301) org.testng.TestNG.runSuitesLocally (TestNG.javaimar226) at org.testng.TestNG.runSuites (TestNG.javaimar144) at org.test। Org.testng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.javaext32) at org.testng.remote.RemoteTestNG.initAndRun (রিমোটটেষ্টএনজি.জ্যাভাটিঞ্জার.30) বা টেস্টএনজি.আরুন (টেস্টএনজি.জাভা 1111) .RemoteTestNG.main (RemoteTestNG.java:76) ========================================= ======== ডিফল্ট পরীক্ষার পরীক্ষা: 3, ব্যর্থতা: 1, এড়িয়ে যান: 0 =========================== =================================================== ================= ডিফল্ট স্যুট মোট পরীক্ষাগুলি রান: 3, ব্যর্থতা: 1, এড়িয়ে যান: 0 ==================================== =============

সুতরাং, এটি টেস্ট কেস ম্যানেজমেন্ট সম্পর্কিত ধারণাগুলির সমাপ্তি। আমরা আরও একটি বিষয় রেখেছি, এবং এটি প্রতিবেদন প্রজন্ম। রিপোর্ট জেনারেশন এই সেলেনিয়াম ওয়েবড্রাইভার টিউটোরিয়ালের শেষ বিষয় কারণ প্রতিবেদনগুলি সমস্ত কিছু পরে তৈরি করা যেতে পারেপরীক্ষা চালানো হয়।

কিভাবে একটি ডাটাবেস পরীক্ষা করতে

রিপোর্ট জেনারেশন

আপনার সবচেয়ে গুরুত্বপূর্ণ বিষয়টি লক্ষ্য করা দরকার যে প্রতিবেদনটি শুধুমাত্র একটি .xML ফাইলের মাধ্যমে তৈরি করা হবে generated এর অর্থ, এটি কোনও পদ্ধতি হোক বা শ্রেণি হোক, বা এটি এমন একটি গোষ্ঠী হোক যা আপনি পরীক্ষা করতে চান, সেগুলি সমস্ত .xML ফাইলে নির্দিষ্ট করতে হবে।

সুতরাং প্রথমে আপনি আপনার প্রকল্পের আওতায় একটি নতুন ফোল্ডার তৈরি করতে পারেন এবং সেই ফোল্ডারের অভ্যন্তরে একটি নতুন ফাইল তৈরি করতে পারেন এবং ফাইলটিকে একটি নাম দিন এবং এটি এক্সএক্সএল এক্সটেনশন দিয়ে সংরক্ষণ করতে পারেন। আপনি প্যাকেজ এক্সপ্লোরার ডান ক্লিক করে নতুন ফোল্ডার এবং ফাইল তৈরি করতে পারেন। আপনি ফাইলটি তৈরি করার পরে, উইন্ডোর নীচ থেকে উত্স ট্যাবে যান এবং নীচের স্নিপেটে উল্লিখিত কনফিগারেশনগুলি প্রবেশ করুন।

 

প্রথম লাইনটি এক্সএমএল নথি প্রকারের সংজ্ঞা। এটি সমস্ত পরীক্ষার রিপোর্টের জন্য মানক এবং বাধ্যতামূলক। তবে, অন্যান্য লাইনগুলি বেশ স্ব-বর্ণনামূলক। আমি স্যুট, পরীক্ষা, ক্লাস এবং ক্লাসের জন্য উন্মুক্ত ট্যাগগুলি ব্যবহার করেছি। ক্লাস ট্যাগ এর ভিতরে এক বা একাধিক ক্লাস থাকতে পারে। সুতরাং যেখানে আমরা একাধিক ক্লাস পরীক্ষা করে দেখছি এমন একটি প্রতিবেদন তৈরি করতে চাইলে এটি ব্যবহার করা যেতে পারে। এটি বিশেষত বিকাশকারীদের পক্ষে কার্যকর যারা লম্বা কোডের টুকরো পরীক্ষা করতে চান for

যাইহোক আমাদের প্রতিবেদনে ফিরে আসার পরে, আপনি এই ট্যাগগুলি খোলার পরে প্রতিটি স্যুট বা পরীক্ষা বা শ্রেণীর নাম রাখতে পারেন এবং আপনার খোলার প্রতিটি ট্যাগ বন্ধ করে দেওয়ার কথা মনে রাখতে পারেন। আমি আমার স্যুট নামটি দিয়েছি টেস্টএনজি , পরীক্ষার নাম হিসাবে পরীক্ষা টিকা এবং শ্রেণীর নাম হিসাবে testng.TestAnnotations। মনে রাখবেন যে শ্রেণীর নামটি ফর্ম্যাটে রয়েছে ' প্যাকেজ নাম.ক্লাসনাম ’

আপনি যখন এই ফাইলটিকে টেস্টএনজি স্যুট হিসাবে চালান, তখন কার্যকর করা শুরু হবে এবং আপনি বিশদ পরীক্ষার রিপোর্ট পাবেন। আপনি আপনার কনসোল ট্যাবে পরীক্ষার ফলাফল এবং পরের ট্যাবে পরীক্ষার স্যুট ফলাফল পাবেন। আমি আমার কোডটি কার্যকর করার জন্য যে প্রতিবেদন তৈরি করেছি তা হ'লভিতরেনীচের স্ক্রিনশট। আপনি খেয়াল করবেন যে এবার স্যুইট নাম, পরীক্ষার নাম, শ্রেণীর নাম এবং তাদের প্রত্যেকের মৃত্যুদন্ড কার্যকর করার জন্য নেওয়া সময় রয়েছে।

আপনি যদি এইচটিএমএল প্রতিবেদনটি দেখতে চান (সূচী প্রতিবেদন বা ইমেলযোগ্য-প্রতিবেদন), আপনি এই ওয়েবসাইটে যেতে পারেন পরীক্ষা-আউটপুট আপনার কর্মক্ষেত্রে প্রকল্প ডিরেক্টরি ভিতরে ফোল্ডার। তাদের ক্লিক করে, আপনি পরবর্তী সময়ে এমনকি প্রতিবেদনগুলি দেখতে পারেন। নীচে তাদের স্ক্রিনশট দেওয়া আছে।

সূচী প্রতিবেদন : -

ইমেলযোগ্য রিপোর্ট : -

সুতরাং এটি আমাদের এই সেলেনিয়াম ওয়েবড্রাইভার টিউটোরিয়াল ব্লগের শেষে নিয়ে আসে। আপনার সময়টি আপনার শেষে গ্রহপ সেটআপ করার, বিভিন্ন সেলেনিয়াম প্যাকেজ ইনস্টল করার, টেস্টএনজি ইনস্টল করার এবং আপনার পরীক্ষার কেসগুলি লিখতে শুরু করার সময় এসেছে।

এই ব্লগে বর্ণিত বিভিন্ন ধারণার একটি প্রদর্শনীর জন্য আপনি নীচের সেলেনিয়াম ওয়েবড্রাইভার টিউটোরিয়াল ভিডিওটি দেখতে পারেন।

সেলেনিয়াম প্রশিক্ষণ | সেলেনিয়ামের জন্য টেস্টএনজি ফ্রেমওয়ার্ক | এডুরেকা

এই এডুরেকা সেলেনিয়াম প্রশিক্ষণ ভিডিওটি আপনাকে সেলেনিয়াম ওয়েবড্রাইভারের গভীরতার বিবরণে নিয়ে যাবে। এই সেলেনিয়াম টিউটোরিয়াল ভিডিওটি প্রাথমিকভাবে এবং পেশাদারদের উভয়ের জন্যই আদর্শ, যারা ওয়েবড্রাইভার কমান্ডের মূল বিষয়গুলি ব্রাশ করতে চান এবং বিভিন্ন টেস্টের কেসগুলি পরিচালনার জন্য কীভাবে টেস্টএনজি সেলেনিয়ামের সাথে ব্যবহার করতে পারেন তা শিখতে পারেন।

আপনি যদি সেলেনিয়াম শিখতে এবং পরীক্ষার ডোমেনে ক্যারিয়ার গড়তে চান তবে আমাদের ইন্টারেক্টিভ, লাইভ-অনলাইন দেখুন check এখানে, এটি আপনার পড়াশোনার পুরো সময় জুড়ে আপনাকে গাইড করার জন্য 24 * 7 সমর্থন সহ আসে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।