ক্যাস্পেরজ / ফ্যান্টমজে বনাম সেলেনিয়াম


150

আমরা আমাদের UIপরীক্ষাটি স্বয়ংক্রিয় করতে সেলেনিয়াম ব্যবহার করছি । সম্প্রতি আমরা আমাদের বেশিরভাগ ব্যবহারকারীর ক্রোম ব্যবহার করতে দেখেছি। সুতরাং আমরা জানতে চেয়েছিলাম - ফ্যান্টমজেএস বনাম সেলেনিয়াম ব্যবহারের পক্ষে এবং কৌশলগুলি:

  • পারফরম্যান্সের ক্ষেত্রে কি প্রকৃত সুবিধা রয়েছে, যেমন পরীক্ষার কেসগুলি কার্যকর করতে সময় নেওয়া হয়?
  • সেলেনিয়ামের চেয়ে ফ্যান্টমজেএসকে কখন পছন্দ করা উচিত?

উত্তর:


183

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

যদি আপনার ওয়েব অ্যাপ্লিকেশনটি বিভিন্ন ওয়েব ব্রাউজারে চালানোর প্রয়োজন হয় তবে কেবল ফ্যান্টমজেএস দিয়ে ইউআই টেস্টিং চালানো সর্বাধিক পরীক্ষার কভারেজ দেয় না। তবে, গভীরতার পরীক্ষা করার আগে ফ্যান্টমজেএস চালু করা এবং কিছু বেসিক স্যানিটি চেক অনুশীলন করা পুরোপুরি ঠিক। এমন কোনও ফিনান্স অ্যাপ্লিকেশনটির পরীক্ষার উন্মাদনাটি কল্পনা করুন যেখানে লগইন স্ক্রিনটি অনিচ্ছাকৃতভাবে ভাঙ্গা এবং অ-কার্যকরী!

নোট করুন যে সর্বশেষতম ফ্যান্টমজেএস-এ সাম্প্রতিক ওয়েবড্রাইভার সমর্থন নিয়ে দুজনের মধ্যে লাইনটি কিছুটা ঝাপসা হয়ে যায়। প্রথমে ফ্যান্টমজেএস ব্যবহার করে দ্রুত পরীক্ষা চালানো সম্ভব এবং তারপরে (ধরে নেওয়া কোনও গুরুতর ত্রুটির মুখোমুখি নয়) সেলেনিয়াম সেটআপে একই পরীক্ষাগুলি পুঙ্খানুপুঙ্খভাবে চালিয়ে যাওয়া চালিয়ে যাওয়া সম্ভব।


উত্তরের জন্য ধন্যবাদ। যে কোনও লিঙ্কটি আমাকে বুঝতে সাহায্য করতে পারে যে লোকেরা কীভাবে একটি বাস্তব বিশ্ব উত্পাদন অ্যাপ্লিকেশনটিতে পারফরম্যান্স সম্পর্কিত পরিসংখ্যান সংগ্রহ করতে ফ্যান্টমজ ব্যবহার করছে।
স্পিরিট 3189

34
আরিয়া হিদায়েত ফ্যান্টমজেসের স্রষ্টা বলে মনে হচ্ছে
সেবাস্তিয়ান প্যাটেন

দেখে মনে হচ্ছে আপনার ফ্যান্টমজেএস দিয়ে টেস্ট লিখতে শুরু করার বর্ণিত ওয়ার্কফ্লো তখন সেলেনিয়াম ব্যবহার করে মোট পরীক্ষার পুনর্লিখন ধরে ... আপনি কি ফ্যান্টমজেএস স্ক্রিপ্টগুলি সরাসরি সেলেনিয়ামের সাথে ব্যবহার করতে পারবেন?
লাজার

1
দুর্দান্ত আড়ম্বরপূর্ণ ফ্যান্টম জেএসের জন্য ধন্যবাদ, @ আরিয়াহাইডাত! :)
রিনোগো

49

সাম্প্রতিক ওয়েবড্রাইভার একীকরণের সাথে (যেমন আরিয়া উল্লেখ করেছে), আপনি এখন ফ্যান্টমজেএস চালাতে সেলেনিয়াম ব্যবহার করতে পারেন।

এটি অত্যন্ত শক্তিশালী।

আপনি প্রতিটি চেক ইন একটি হেডলেস ইউনিক্স সার্ভারে আপনার সিআই এর মাধ্যমে সম্পূর্ণ স্বয়ংক্রিয় সেলেনিয়াম পরীক্ষার (ফ্যান্টমজেএসকে ওয়েবড্রাইভার বাস্তবায়ন হিসাবে ব্যবহার করে) চালাতে পারেন। তারপরে আপনি যদি ব্রাউজারের সামঞ্জস্যতা পরীক্ষা করতে চান তবে অন্তর্নিহিত ওয়েবড্রাইভার বাস্তবায়নটিকে ক্রোম, ফায়ারফক্স ইত্যাদিতে পরিবর্তন করে স্থানীয়ভাবে আপনার পরীক্ষা চালাতে পারেন


41

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

                    Failures    Time (secs) 
HtmlCleaner         0           82  
HtmlUnit            169         102 
Google Chrome       38          562 
Firefox             46          1159    
PhantomJS           40          575

কিছু মন্তব্য:

  • কিছু ক্ষেত্রে "ব্যর্থতা" একেবারে ব্যর্থতা নাও হতে পারে, এটি হতে পারে যে এক্সট্রাক্টররা ব্যর্থ হচ্ছেন কারণ জাভাস্ক্রিপ্টটি ডিওএম-কে আবার লিখছে। আমি কারণ খুঁজে পেতে ব্যর্থতা বিশ্লেষণ প্রক্রিয়ায় আছি।

  • বলেছিল, এইচটিএমএলইনিট দ্রুততম সেলেনিয়াম ড্রাইভার তবে এটি অবিশ্বস্তও। এই অবিশ্বাস্যতা কেবল জাভাস্ক্রিপ্টকে উদ্বেগ করে না, "অগোছালো, নোংরা, বাস্তব-জগত" এইচটিএমএল প্রসেস করতে সমস্যা রয়েছে কারণ ট্যাগ ভারসাম্যকরণ অ্যালগরিদমকে কিছু ভেঙে গেছে বলে মনে হচ্ছে। এ নিয়ে বেশ কয়েকটি ইস্যু উত্থাপিত হয়েছে তবে সেগুলি ঠিক করা হয়নি - এইচটিএমএল-ইউএনআইটি 1423 এবং এইচটিএমএল-ইউএনআইটি 1046 দেখুন

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

  • ফ্যান্টমজেএস ফায়ারফক্সের চেয়ে আরও ভাল নির্ভুলতা অর্জন করে যা ক্রোমের চেয়ে কিছুটা কম, তবে ফায়ারফক্সের প্রায় অর্ধেক সময়ের মধ্যে। আরও কী, আমি এটি আমার ডেভ বাক্সে চালাতে পারি, এটি একাধিক ব্রাউজার চালু করে "আমার মেশিনের উপরে নেওয়া" দেয় না যাতে আমি কাজ করে যেতে পারি।

আমি খুব খুব ফ্যান্টমজেএস সুপারিশ করব।


1
ফ্যান্টমজেএস দিয়ে আপনার টেস্ট স্যুটটি চালাতে 9 মিনিট সময় লাগে? এটিকে অবশ্যই চিরদিনের মতো মনে হবে ...
কেভিন

@ কেভিন হ্যাঁ :) - তবে এইচটিএমএল ক্লিনারটি হ'ল স্ট্যান্ডার্ড টেস্ট, আমি অন্যান্য পরীক্ষাগুলিকে alচ্ছিক হিসাবে চিহ্নিত করতে JUnit বিভাগগুলি ব্যবহার করে চিহ্নিত করি যাতে তারা মানক ইউনিটের পরীক্ষার অংশ না হয়
মার্ক বাটলার

ধন্যবাদ। হ্যাঁ আমি পূর্ণ-জেএস পরীক্ষায় কাজ করছি এবং তারা এত হিমশীতল - যেমন কয়েকটি পৃষ্ঠার পরীক্ষার জন্য 15-20 সেকেন্ড। সম্ভবত আমার 'হিমবাহ' এর স্কেল সামঞ্জস্য করা দরকার যদিও তিনি হেই :) যদিও আমি এটি ম্যানুয়ালি এটি করি তবে ফর্মগুলি ক্লিক করতে এটি কেবল ~ 5 সেকেন্ড সময় নেয়।
কেভিন

1
@ লুকাশাস্পক্স হ্যাঁ! এবং এর মধ্যে অন্যান্য প্রচুর প্রকল্প। আমি উপরে যেমন ব্যাখ্যা করছি সেখানে কোনও সঠিক পছন্দ নেই choice সেই সময়ে, আমি এইচটিএমএল ক্লিনার ব্যবহার করেছি, তবে ফ্যান্টমজেএস ব্যবহার করার জন্য একটি বিকল্প যুক্ত করেছি, যদি পৃষ্ঠাটি বের করার দরকার হয় তবে।
মার্ক বাটলার

1
@ আইকনোক্লাস্ট নং - দুর্ভাগ্যক্রমে - পূর্ববর্তী নিয়োগকর্তার আইপি রয়েছে।
মার্ক বাটলার

2

সেলেনিয়াম এবং ফ্যান্টমজেএস ফ্যান্টমজেএস উভয়রই পাওয়ার অবদানের শিরোনামহীন ব্রাউজারের ক্ষমতা রয়েছে, অতএব এটি সেলেনিয়াম সহ ব্রাউজারগুলির মধ্যে একটি হিসাবে ব্যবহার করা ভাল (আই, ক্রোম ইত্যাদির মতো traditional তিহ্যবাহী ব্রাউজারগুলি ছাড়াও) এই পদ্ধতির সুবিধা:

  1. সিআই-তে ওয়েব অ্যাপ্লিকেশনগুলির জন্য স্যানিটি করার জন্য ব্যবহার করা যেতে পারে (যদিও এজেন্ট মেশিনগুলির আইই বা ক্রোম নেই) পরীক্ষাগুলি কার্যকরভাবে চলবে।
  2. কিছু উন্নয়ন দল দ্রুত ফলাফল পেতে এই পদ্ধতির ব্যবহার করে এবং সময় এবং সংস্থান কম পরিমাণে গ্রাস করে।
  3. ফ্যান্টম জেএসের সর্বাধিক বৈশিষ্ট্যটি হল পর্দা ক্যাপচার, মাল্টি থ্রেডিং ব্যবহার করে সমান্তরাল পরীক্ষা চালানো, যা আপনার মৃত্যুদন্ডের সময়টিকে অবিচ্ছিন্নভাবে হ্রাস করবে।

1

ফ্যান্টমজেএস ব্যবহার করার সময় আমি যে চ্যালেঞ্জগুলির মুখোমুখি হয়েছিলাম:

আমার অ্যাপ্লিকেশনটি ওয়েব অ্যাপ্লিকেশনটির মূল্য নির্ধারণ করছিল:

  1. কিছু সময় ক্রোম ব্রাউজারে সূক্ষ্মভাবে কাজ করা লোকেশনগুলি ফ্যান্টমজেএস-এ কাজ করছে না।
  2. কখনও কখনও সেলেনিয়াম দ্বারা ডাবল ক্লিক বা কনটেক্সট ক্লিক করার সময় আমাকে অপারেশনস কোজ যাচাইয়ের জন্য প্রথমে যাচাই করার জন্য একটি অতিরিক্ত চেক রাখতে হবে।
  3. ক্যাশে এবং কুকিজ অধ্যবসায়। লগ আউট করার পরে এবং লগ ইন করার পরে ডেটা ক্যাশে থাকে। | তাই আমরা ক্রোমের উপর পরীক্ষা করি।
  4. সবচেয়ে গুরুত্বপূর্ণ সমস্যাটির মধ্যে একটিতে আমি "ফাইল আপলোডের সমস্যা" পেয়েছি। আমরা আমাদের অ্যাপ্লিকেশনটিতে ফ্যান্টমজে ব্রাউজারে কোনও ফাইল আপলোড করতে পারি না। আমরা জাভাস্ক্রিপ্টেক্সটেক্টর, জ্যাকুইরিগুলি অনেকগুলি চেষ্টা করেছিলাম কিন্তু সেগুলির কোনওটিতেই কাজ হয়নি। সুতরাং আমরা ক্রোমেও এই পরীক্ষাটি করি। দ্রষ্টব্য: ফ্যান্টমজেএস-এর জন্য ওয়েব উপাদানটির সাথে ইন্টারঅ্যাক্ট করার জন্য আমরা আমাদের ফ্রেমওয়ার্কে জাভাস্ক্রিপ্ট ফাংশনগুলি ব্যাপকভাবে ব্যবহার করেছি। একটি জিনিস নিশ্চিত যে ফ্যান্টমজেএস এ কার্যকর করার সময় খুব কম। সুতরাং এটি ক্লায়েন্টের অগ্রাধিকারের উপর নির্ভর করে যে তিনি কার্যকারিতা / পারফরম্যান্স চান তারপরে এটি নিয়ে যান। আপনি যদি শেষ থেকে শেষের পরিস্থিতি পরীক্ষা করতে চান তবে ক্রোমে যান।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.