তাদের সকলের পরীক্ষা করতে হবে: আউটসিস্টেমগুলির মোবাইল অ্যাপ্লিকেশন কীভাবে পরীক্ষা করতে হয়

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

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

আপনি কেবল ভয়ঙ্কর উপাদানটির কাছে না পৌঁছিয়েই এতগুলি পরীক্ষা করতে পারেন যা নিখুঁতভাবে নির্মিত দৃশ্যের ধ্বংস করতে পারে: একটি আসল ডিভাইস। বাস্তব ডিভাইসগুলিতে পরীক্ষা করা প্যান্ডোরার পক্ষে একটি যৌক্তিক চ্যালেঞ্জ এবং যেকোন মোবাইল বিকাশকারীদের স্বপ্নকে পিছনে ফেলে। আমার দল এবং আমি বেশ খানিকটা ঘুম হারিয়েছি। আমাদের একটি সমাধান খুঁজে বের করতে হবে, সেল ফোনের একটি পর্বতের নীচে সমাধি না দিয়ে পরীক্ষা করার একটি উপায়।

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

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

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

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

হ্যাঁ, এটি একটি দুর্দান্ত চিত্তাকর্ষক সরঞ্জাম, বিশেষত যখন আপনি দেখেন এটি কাজ করে।

আপনার হাত নোংরা করা: অ্যামাজন ডিভাইস ফার্ম এবং আউট সিস্টেম yste

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

1. মেশিন সেট আপ করুন

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

2. পরীক্ষা সেটআপ

আপনার পরীক্ষা প্রকল্প তৈরি করা শুরু করুন। আপনার সমস্ত পরীক্ষার সরঞ্জাম ফার্মে প্রেরণের আগে, আমি দৃ .়ভাবে সুপারিশ করি যে আপনি প্রথমে আপনার স্থানীয় পরীক্ষার পরিবেশে সঠিক পরীক্ষা চালান। স্থানীয়ভাবে সমস্যার মূল কারণ খুঁজে পাওয়া সহজ। এটিও সস্তা। আপনার পরীক্ষার জন্য আপনার প্রধান পরীক্ষার ফাইলে নিম্নলিখিত পছন্দসই বৈশিষ্ট্যগুলি যুক্ত করুন।

কাঙ্ক্ষিত_ক্যাপস ['platformName'] = 'অ্যান্ড্রয়েড' কাঙ্ক্ষিত_ক্যাপস ['ডিভাইসনেম'] = 'এফোন' কাঙ্ক্ষিত_ক্যাপস ['অ্যাপপ্যাকেজ'] = ' 'ઇચ્છিত_ক্যাপস [' appActivity '] = ".মেনঅ্যাক্টিভিটি"

৩. টেস্ট পরিকল্পনা এবং পর্যায়ক্রমে

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

4. পরীক্ষা পরীক্ষা

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

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

selenium.webdriver.common.by আমদানি থেকে অপিমিয়াম আমদানি ওয়েবড্রাইভার থেকে ওএস ইউনিটেট আমদানি
ক্লাস টেস্টক্লাস (ইউনিটেস্ট.টেষ্টকেস): ডিএফ সেটআপ (স্ব): সেলফ্রডিভারিও = ওয়েবড্রাইভার।রেমোট ('http://127.0.0.1:4723/wd/hub', {})
Def টেস্ট কেস (স্ব): ...
ডিফ টিয়ারডাউন (স্ব): self.driver.quit () যদি __name__ == '__main__': ইউনিটেস্ট.মাইন ()

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

প্রথম দৃশ্যে নিম্নলিখিত উদাহরণগুলিতে প্রদর্শিত একটি চিত্র সন্ধান করার চেষ্টা করা হয়েছে। আমরা এমন একটি মানের সাথে একটি অ্যাট্রিবিউট যুক্ত করেছি যা চিত্রটি উপস্থাপন করে (এই ক্ষেত্রে "सक्সিসিএমজি") এবং আমরা এটি এক্সপিএটিএইচ (// ইমজি [@ ডেটা-টেস্ট-আইডি = "সাফল্যআইএমজি"]) ব্যবহার করে অনুসন্ধান করেছি। একটি তালিকা কাজ করার সময় আমাদের অতিরিক্ত সতর্কতা অবলম্বন করা উচিত। একটি তালিকায় একটি নির্দিষ্ট আইটেম সন্ধান করার জন্য, উদাহরণস্বরূপ তৃতীয়, আমাদের নিশ্চিত করতে হবে যে আমাদের মানটির সূচক রয়েছে। এখানে "" MyAttrId-2 "মান সহ" ডেটা-টেস্ট-আইডি "বৈশিষ্ট্যটি অনুসন্ধান করতে হবে।

আমি জানি আমি জানি; নির্দিষ্ট পরিস্থিতিতে আমরা একটি ক্রোম ওয়েব ব্রাউজারে আমাদের আউটসিস্টেম মোবাইল অ্যাপ্লিকেশনটির একটি নির্দিষ্ট ফাংশনটি পরীক্ষা করতে পারি না। এগুলির বেশিরভাগ ক্ষেত্রে ঘটে থাকে কারণ কোনও নেটিভ প্লাগইনে সরাসরি নির্ভরতা থাকে যা অ্যাপ্লিকেশনটিতে ইনস্টল করা প্রয়োজন। এই নির্দিষ্ট দৃশ্যের জন্য, আমাদের মোবাইল ডিভাইসটিকে আমাদের কম্পিউটারের সাথে সংযুক্ত করতে, ক্রোম খুলতে হবে এবং URL- এ ক্রোম: // পরিদর্শন / # ডিভাইস প্রবেশ করতে হবে। এটি এমন একটি পৃষ্ঠা আনবে যা আপনার কম্পিউটারে সংযুক্ত সমস্ত ডিভাইস দেখায়।

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

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

5. পরীক্ষা বান্ডিলিং

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

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

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

৩. এখন মজা শুরু হয়: আপনি যে ডিভাইসগুলি পরীক্ষা করতে চান সেগুলি নির্বাচন করুন এবং ডিভাইসের স্থিতি (ওয়াইফাই, এনএফসি, জিপিএস, ব্লুটুথ) নির্দেশ করুন। বর্তমানে, এডাব্লুএস ডিভাইস ফার্মে 178 অ্যান্ড্রয়েড এবং 162 টি আইওএস ডিভাইস রয়েছে। অ্যান্ড্রয়েডের জন্য 139 টি আলাদা ডিভাইস রয়েছে (মটোরোলা, স্যামসাং, উইকো, ইত্যাদি) যা 23 টি পৃথক অ্যান্ড্রয়েড সংস্করণে চলে। আইওএসের জন্য 26 টি পৃথক ডিভাইস রয়েছে (আইপ্যাড 2, আইফোন 8, আইপড টাচ 6th ষ্ঠ প্রজন্ম, ইত্যাদি) 26 টি বিভিন্ন আইওএস সংস্করণ দিয়ে পরিচালনা করা যায়।

4. যাও! পরীক্ষা করুন, চালান, এবং ফলাফল দেখুন! ডিভাইস লগ, পরীক্ষার লগ, স্ক্রিনশট, ভিডিও এবং আরও অনেক কিছু দিয়ে প্রতিটি রান নিয়ে একটি প্রতিবেদন তৈরি করা হয়।

শেষ করি

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

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

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