সুচিপত্র:
- লেখক John Day [email protected].
- Public 2024-01-30 08:02.
- সর্বশেষ পরিবর্তিত 2025-01-23 14:36.
ওয়েব ড্রাইভার আইও টিউটোরিয়াল একটি লাইভ ওয়েব সাইট এবং কাজের উদাহরণ ব্যবহার করে
শেষ আপডেট: 2015-26-07
(আমি আরও বিশদ এবং উদাহরণ সহ এই নির্দেশাবলী আপডেট করার সময় প্রায়শই ফিরে দেখুন)
পটভূমি
আমার কাছে সম্প্রতি একটি আকর্ষণীয় চ্যালেঞ্জ ছিল। আমার খুব কম প্রযুক্তিগত অভিজ্ঞতা এবং কোন প্রোগ্রামিং ব্যাকগ্রাউন্ড নেই এমন একটি Q/A বিভাগে স্বয়ংক্রিয় পরীক্ষা চালানোর প্রয়োজন ছিল।
এটি সত্যিই দুটি (2) পৃথক চ্যালেঞ্জ ছিল। প্রথমটি ছিল স্বয়ংক্রিয় পরীক্ষা করার প্রযুক্তি চিহ্নিত করা। দ্বিতীয়টি ছিল Q/A বিভাগকে প্রশিক্ষণ দেওয়া।
নিবন্ধটি কেবল ব্যবহৃত প্রযুক্তিগুলি এবং এই প্রক্রিয়ায় আমি যা শিখেছি তা সম্বোধন করবে।
প্রযুক্তিগুলি ভালভাবে কাজ করেছিল কিন্তু আমাকে সত্যিই তথ্য অনুসন্ধান করতে হয়েছিল এবং সমস্যাগুলি খুঁজে বের করতে অনেক ঘন্টা ব্যয় করতে হয়েছিল।
একসাথে কাজ করা এই প্রযুক্তিগুলি সম্পর্কে ইন্টারনেটে তথ্য খুঁজে পেতে আমার খুব কষ্ট হয়েছিল।
আমি এই তথ্যটি ভাগ করতে চেয়েছিলাম, তাই আমি এই নিবন্ধটি কাজের উদাহরণ পরীক্ষার স্ক্রিপ্ট এবং স্ক্রিপ্টগুলির বিরুদ্ধে চালানোর জন্য একটি পরীক্ষার ওয়েব সাইট সহ লিখেছিলাম।
সমস্ত পরীক্ষার স্ক্রিপ্টগুলি গিথুব এ পাওয়া যেতে পারে এবং ওয়ার্কিং টেস্ট সাইটটি ওয়েব ড্রাইভার আইও টিউটোরিয়াল টেস্ট সাইটে অবস্থিত
আশা করি এটি আপনার কাজে লাগবে। যদি আপনি করেন, দয়া করে আমাকে জানান।
উদ্দেশ্য প্রযুক্তি ব্যবহার করুন:
- ওয়েব সাইটের কার্যকারিতা পরীক্ষা করুন
- জাভাস্ক্রিপ্ট কার্যকারিতা পরীক্ষা করুন
- ম্যানুয়ালি চালানো যাবে
- স্বয়ংক্রিয়ভাবে চালানো যাবে
-
নন প্রোগ্রামারদের জন্য ভাষা শেখা সহজ
এইচটিএমএল এবং জাভাস্ক্রিপ্টের মৌলিক জ্ঞান নিয়ে প্রশ্ন/ক কর্মী
- শুধুমাত্র ওপেন সোর্স সফটওয়্যার ব্যবহার করুন
প্রযুক্তি
আমার বেছে নেওয়া প্রযুক্তির তালিকা:
- মোচা - পরীক্ষা রানার - পরীক্ষার স্ক্রিপ্টগুলি চালায়
- shouldjs - দাবি গ্রন্থাগার
- ওয়েবড্রাইভারিও - ব্রাউজার নিয়ন্ত্রণ বাঁধাই (ভাষা বাইন্ডিং)
- সেলেনিয়াম - ব্রাউজার বিমূর্ততা এবং চলমান কারখানা
-
ব্রাউজার/মোবাইল ড্রাইভার + ব্রাউজার
- ফায়ারফক্স (শুধুমাত্র ব্রাউজার)
- ক্রোম (ব্রাউজার এবং ড্রাইভার)
- IE (ব্রাউজার এবং ড্রাইভার)
- সাফারি (ব্রাউজার এবং ড্রাইভার প্লাগ-ইন)
ধাপ 1: সফ্টওয়্যার ইনস্টলেশন
শুরু করার জন্য আপনাকে নোড জেএস, ওয়েব ড্রাইভার আইও, মোচা, উচিত এবং সেলেনিয়াম একা একা সার্ভার ইনস্টল করতে হবে।
এখানে উইন্ডোজ 7 এর জন্য ইনস্টলেশন নির্দেশাবলী রয়েছে।
(আমি একজন Mac/Linux ব্যবহারকারী তথ্য।)
একটি ব্রাউজার থেকে:
- NPM (নোড প্যাকেজ ম্যানেজার) সহ নোড ইনস্টল করুন
-
https://nodejs.org/ এ যান
- ইনস্টল ক্লিক করুন
- ফাইল সংরক্ষণ করুন এবং চালান
- পাথ এবং ভেরিয়েবল সেট করুন (NODE_PATH)
-
কন্ট্রোল প্যানেল-> সিস্টেম এবং সিকিউরিটি-> সিস্টেম এ যান
- উন্নত সিস্টেম সেটিংস
-
পরিবেশ সেটিং (ব্যবহারকারীর ভেরিয়েবল)
-
PATH এ যোগ করুন
C: / Users {USERNAME} AppData / Roaming / npm;
-
NODE_PATH (সিস্টেম ভেরিয়েবল) যোগ করুন
C: / Users {USERNAME} AppData / Roaming / npm / node_modules
-
দ্রষ্টব্য: আমি নীচের সমস্ত সফ্টওয়্যার এনপিএম গ্লোবাল বিকল্প (-জি) ব্যবহার করে ইনস্টল করেছি। এটি সাধারণত সুপারিশ করা হয় না কিন্তু এই ইনস্টলেশনের জন্য আমাকে বিশ্বব্যাপী ইনস্টল করতে হবে কারণ এটি একাধিক প্রকল্পে ব্যবহার করা হবে।
কমান্ড প্রম্পট খুলুন (cmd):
(স্থানীয় ব্যবহারকারী প্রশাসক)
-
সেলেনিয়াম "ওয়েব ড্রাইভার আইও" ইনস্টল করুন
-
npm webdriverio -g ইনস্টল করুন
এটি আপনার মেশিনে বিশ্বব্যাপী ওয়েব ড্রাইভার IO ইনস্টল করবে
-
-
"মোচা" টেস্ট রানার সফটওয়্যার ইনস্টল করুন
-
npm mocha -g ইনস্টল করুন
এটি আপনার মেশিনে বিশ্বব্যাপী মোচা ইনস্টল করবে
-
-
"উচিত" দাবি লাইব্রেরি ইনস্টল করুন
-
npm install -g হওয়া উচিত
এটি আপনার মেশিনে বিশ্বব্যাপী "উচিত" ইনস্টল করবে
-
-
সেলেনিয়াম একা একা সার্ভার ইনস্টল করুন
- Http://www.seleniumhq.org/download/ এ যান
- জার ফাইলটি ডাউনলোড করুন এবং "সেলেনিয়াম" ডিরেক্টরিতে যান।
-
পরীক্ষা করার জন্য ব্রাউজার এবং ব্রাউজার ড্রাইভার ইনস্টল করুন
-
Cmd প্রম্পট থেকে:
- "সেলেনিয়াম" ডিরেক্টরি তৈরি করুন
- C: / Users {USERNAME} সেলেনিয়াম
-
কমান্ড:
- cd C: / Users {USERNAME}
- mkdir সেলেনিয়াম
-
ফায়ারফক্স
- ফায়ারফক্স ব্রাউজার ইন্সটল না করলে ইন্সটল করুন।
- কমান্ড প্রম্পট (cmd) থেকে ফায়ারফক্স শুরু করার জন্য পাথ সেট করতে হবে।
-
কন্ট্রোল প্যানেল-> সিস্টেম এবং সিকিউরিটি-> সিস্টেম
- উন্নত সিস্টেম সেটিংস
- পরিবেশ সেটিংস
- পাথ ভেরিয়েবলে যোগ করুন (সেমি কোলন ব্যবহার করুন)
- C: / Program Files (x86) Mozilla Firefox
- ফায়ারফক্সের জন্য কোন বিশেষ ওয়েব ড্রাইভারের প্রয়োজন নেই।
-
ক্রোম
- ক্রোম ব্রাউজার ইনস্টল করুন, যদি ইতিমধ্যে ইনস্টল করা না থাকে।
- পাথ কমান্ড প্রম্পট (cmd) থেকে ক্রোম শুরু করার জন্য সেট করা হতে পারে।
- প্রথমে পরীক্ষা করুন: কমান্ড প্রম্পট থেকে chrome.exe (cmd)
- ক্রোম শুরু না হলে:
-
কন্ট্রোল প্যানেল-> সিস্টেম এবং সিকিউরিটি-> সিস্টেম
- উন্নত সিস্টেম সেটিংস
- পরিবেশ সেটিংস
- পাথ ভেরিয়েবলে যোগ করুন (সেমি কোলন ব্যবহার করুন)
- C: / Program Files (x86) Google / Chrome / Application / chrome.exe
-
ক্রোমের জন্য একটি বিশেষ ওয়েব ড্রাইভার প্রয়োজন।
Chromium.org এ যান এবং "সেলেনিয়াম" ডিরেক্টরিতে 32 বিট ড্রাইভার আনজিপ করুন।
-
ইন্টারনেট এক্সপ্লোরার (শুধুমাত্র উইন্ডোজের জন্য - অন্য প্ল্যাটফর্মে কাজ করবে না)
-
IE এর জন্য একটি বিশেষ ওয়েব ড্রাইভার প্রয়োজন।
- Http://www.seleniumhq.org/download/ এ যান
- "সেলেনিয়াম" ডিরেক্টরিতে 64 বিট ড্রাইভার ডাউনলোড এবং আনজিপ করুন।
-
-
ধাপ 2: বেসিক টেস্ট স্ক্রিপ্ট
কিছু বেসিক দিয়ে শুরু করা যাক।
এখানে একটি সহজ মোচা স্ক্রিপ্ট যা একটি ওয়েব সাইট খুলবে এবং শিরোনাম যাচাই করবে।
// tutorial1.js
// // এটি একটি ওয়েবসাইট খোলার এবং // শিরোনাম যাচাই করার জন্য একটি সহজ পরীক্ষা স্ক্রিপ্ট। // প্রয়োজনীয় লাইব্রেরি var webdriverio = required ('webdriverio'), should = need ('should'); // একটি টেস্ট স্ক্রিপ্ট ব্লক বা স্যুট বর্ণনা করে ('ওয়েব ড্রাইভার আইও -টিউটোরিয়াল টেস্ট পেইজ ওয়েবসাইটের জন্য টাইটেল টেস্ট', ফাংশন () {// টাইমআউট 10 সেকেন্ড এই.টাইমআউট (10000); var ড্রাইভার = {}; // পরীক্ষার আগে চালানোর জন্য হুক (ফাংশন (সম্পন্ন) {// ব্রাউজারের ড্রাইভার লোড করুন একটি পরীক্ষা বৈশিষ্ট - "স্পেসিফিকেশন" এটি ('সঠিক পৃষ্ঠা এবং শিরোনাম লোড হওয়া উচিত', ফাংশন () {// লোড পৃষ্ঠা, তারপর ফাংশন () রিটার্ন ড্রাইভার.url ('https://www.tlkeith.com/WebDriverIOTutorialTest.html ') // শিরোনাম পান, তারপর শিরোনামটি ফাংশন ().getTitle () তে পাস করুন। তারপর (ফাংশন (শিরোনাম) {// যাচাই করুন শিরোনাম (শিরোনাম).should.be.equal ("ওয়েব ড্রাইভার আইও - টিউটোরিয়াল টেস্ট পেজ "); // কনসোল ডিবাগ // কনসোল.লগ ('বর্তমান পৃষ্ঠা শিরোনাম:' + শিরোনাম);});});) {driver.end (সম্পন্ন);});});
পর্যবেক্ষণ:
- আপনার প্রথমে লক্ষ্য করা উচিত পরীক্ষার স্ক্রিপ্ট জাভাস্ক্রিপ্টে লেখা আছে (.js এক্সটেনশনে শেষ হয়)।
-
মৌলিক কাঠামো সব পরীক্ষার স্ক্রিপ্টের জন্য প্রায় অভিন্ন।
- হেডার মন্তব্য (//)
- প্রয়োজনীয় গ্রন্থাগার
- অপশন সেট করুন (alচ্ছিক)
- হুক: লোড ব্রাউজার ড্রাইভার
- টেস্ট স্যুট (বর্ণনা করুন)
- পরীক্ষার স্পেস (একটি স্যুটে অনেক স্পেস হতে পারে)
- হুক: পরিষ্কার করুন
-
টেস্ট স্যুটটি একটি বর্ণনা ফাংশন দিয়ে শুরু হয় যা দুটি পরামিতি নেয়:
-
স্ট্রিং - টেস্ট স্যুট এর বর্ণনা
- "যথাযথ শব্দগুলির জন্য পৃষ্ঠাটি পরীক্ষা করুন"
- "রেডিও বোতাম অপারেশন যাচাই করুন"
-
ফাংশন - চালানোর জন্য কোড ব্লক
বর্ণনা ('টেস্ট স্যুট এর বর্ণনা', ফাংশন () {});
-
- টেস্ট স্যুটটিতে 1 বা ততোধিক পরীক্ষার স্পেস থাকবে (স্পেসিফিকেশন)
-
স্পেসগুলি এর ফাংশন দিয়ে শুরু হয় যা দুটি পরামিতি নেয়:
-
স্ট্রিং - পরীক্ষার স্পেসিফিকেশনের বর্ণনা
- "সঠিক লিঙ্ক পাঠ্য এবং লিঙ্ক URL হওয়া উচিত"
- "সঠিক ক্রিয়াপদ থাকা উচিত (কপি ডেক)
- ফাংশন - চালানোর জন্য কোড ব্লক
- এটি ('পরীক্ষার স্পেসিফিকেশনের বর্ণনা', ফাংশন () {});
-
- একটি বৈশিষ্ট্যে এক বা একাধিক প্রত্যাশা থাকে যা কোডের অবস্থা পরীক্ষা করে
-
এগুলোকে বলা হয় দাবী
"উচিত" লাইব্রেরি দাবি প্রদান করে
-
প্রায় সব ক্ষেত্রে, আপনাকে একটি নির্বাচক ব্যবহার করে এক বা একাধিক উপাদান সনাক্ত করতে হবে তারপর উপাদানগুলির উপর কিছু অপারেশন করুন
-
উদাহরণ:
- একটি পৃষ্ঠায় পাঠ্য খুঁজুন এবং পাঠ্যটি যাচাই করুন
- একটি ফর্ম পূরণ করুন এবং জমা দিন
- একটি উপাদানের CSS যাচাই করুন
-
আসুন মন্তব্যের সাথে উদাহরণটি ঘনিষ্ঠভাবে দেখি।
প্রয়োজনীয় লাইব্রেরি লোড করুন: ওয়েব ড্রাইভার আইও এবং উচিত।
// প্রয়োজনীয় লাইব্রেরি
var webdriverio = প্রয়োজন ('webdriverio'), should = need ('should');
টেস্ট স্যুট নির্ধারণ করুন। এই স্যুটটিকে বলা হয়: "ওয়েব ড্রাইভার আইও -এর জন্য টাইটেল টেস্ট - টিউটোরিয়াল টেস্ট পেজ ওয়েবসাইট"
// একটি পরীক্ষা স্ক্রিপ্ট ব্লক বা স্যুট
বর্ণনা করুন ('ওয়েব ড্রাইভার আইও -এর জন্য টাইটেল টেস্ট - টিউটোরিয়াল টেস্ট পেজ ওয়েবসাইট', ফাংশন () {…});
সময়সীমা 10 সেকেন্ডে সেট করুন যাতে পৃষ্ঠাটি লোড করার সময় স্ক্রিপ্ট টাইমআউট না হয়।
// 10 সেকেন্ড সময়সীমা সেট করুন
this.timeout (10000);
স্পেসিফিকেশন "স্পেক্স" চালানোর আগে ব্রাউজার ড্রাইভার লোড করার জন্য হুক। এই উদাহরণে ফায়ারফক্স ড্রাইভার লোড করা হয়েছে।
// পরীক্ষার আগে চালানোর জন্য হুক
এর আগে (ফাংশন (সম্পন্ন) {// ব্রাউজার ড্রাইভার = webdriverio.remote ({wantedCapilities: {browserName: 'firefox'}}) এর জন্য ড্রাইভার লোড করুন; driver.init (সম্পন্ন);});
পরীক্ষার স্পেসিফিকেশন সংজ্ঞায়িত করুন।
// একটি পরীক্ষার স্পেস - "স্পেসিফিকেশন"
এটি ('সঠিক পৃষ্ঠা এবং শিরোনাম লোড করা উচিত', ফাংশন () {…});
ওয়েবসাইটের পাতা লোড করুন
.url ('https://www.tlkeith.com/WebDriverIOTutorialTest.html')
শিরোনাম পান, তারপর শিরোনামটি ফাংশনে পাস করুন ()
.getTitle ()। তারপর (ফাংশন (শিরোনাম) {
… });
Should assertion লাইব্রেরি ব্যবহার করে শিরোনামটি যাচাই করুন।
(শিরোনাম).should.be.equal ("ওয়েব ড্রাইভার আইও - টিউটোরিয়াল টেস্ট পেজ");
কাজ শেষ করার পর হুক ছাড়তে হবে এবং ড্রাইভারকে পরিষ্কার করতে হবে।
// এই ব্লকের সমস্ত পরীক্ষার পরে চালানোর জন্য একটি "হুক"
পরে (ফাংশন (সম্পন্ন) {driver.end (সম্পন্ন);});
ধাপ 3: টেস্ট স্ক্রিপ্ট চালান
এখন দেখা যাক পরীক্ষার স্ক্রিপ্ট রান করা হলে কি করে।
প্রথমে সেলেনিয়াম স্ট্যান্ড অ্যালোন সার্ভার শুরু করুন:
-
উইন্ডোজের জন্য কমান্ড লাইন (cmd) ব্যবহার করুন:
- java -jar
- # java -jar সেলেনিয়াম-সার্ভার-স্বতন্ত্র-2.46.0.jar
-
ম্যাক বা লিনাক্সের জন্য, টার্মিনাল খুলুন:
- জাভা -জার
- $ java -jar selenium-server-standalone-2.46.0.jar
- উপরের স্ক্রিনশট দেখুন
পরবর্তী পরীক্ষা স্ক্রিপ্ট চালান:
-
উইন্ডোজের জন্য কমান্ড লাইন (cmd) ব্যবহার করুন:
- মোচা
- # mocha tutorial1.js
-
ম্যাক বা লিনাক্সের জন্য, টার্মিনাল খুলুন:
- মোচা
- $ mocha tutorial.js
- উপরের স্ক্রিনশট দেখুন
তাহলে কি হল?
মোচা "tutorial1.js" স্ক্রিপ্ট আহ্বান করে। ড্রাইভার ব্রাউজার (ফায়ারফক্স) শুরু করেছে, পৃষ্ঠাটি লোড করেছে এবং শিরোনামটি যাচাই করেছে।
ধাপ 4: উদাহরণ ওয়েব সাইট
সমস্ত উদাহরণ এই সাইটের বিরুদ্ধে চালানো হয়।
উদাহরণ ওয়েব সাইটটি এখানে অবস্থিত: ওয়েব ড্রাইভার আইও টিউটোরিয়াল টেস্ট পেজ
সমস্ত পরীক্ষার স্ক্রিপ্টগুলি গিথুব থেকে ডাউনলোড করা যায়।
ধাপ 5: নির্দিষ্ট উদাহরণ
সমস্ত কোড github- এ পাওয়া যায়: github- এ ওয়েব ড্রাইভার IO টিউটোরিয়াল
-
একটি অনিয়ন্ত্রিত তালিকায় লিঙ্ক এবং লিঙ্ক পাঠ্য যাচাই করুন - "linkTextURL1.js"
- অনিয়ন্ত্রিত তালিকার একটি আছে এবং লিঙ্কটি 4th র্থ তালিকা আইটেম।
- ইউআরএল হওয়া উচিত "https://tlkeith.com/contact.html"
// যাচাই করুন আমাদের সাথে যোগাযোগ করুন লিঙ্ক পাঠ্য
এটি ('আমাদের সাথে যোগাযোগ করুন লিঙ্ক পাঠ্য থাকা উচিত', ফাংশন () {return driver.getText ("// ul [@id = 'mylist']/li [4]/a")। তারপর (ফাংশন (লিঙ্ক) {কনসোল.log ('লিঙ্ক পাওয়া গেছে:' + লিঙ্ক); (লিঙ্ক).should.equal ("আমাদের সাথে যোগাযোগ করুন");});}); // যাচাই করুন আমাদের সাথে যোগাযোগ করুন ইউআরএল এটি ('আমাদের সাথে যোগাযোগ করুন । তারপর (ফাংশন (লিঙ্ক) {(লিঙ্ক).should.equal ("https://tlkeith.com/contact.html");
-
কপিরাইট টেক্সট যাচাই করুন - "Copyright1.js"
-
কপিরাইট পাদলেখ আছে এই উদাহরণ কপিরাইট পাঠ্য সনাক্ত করার 2 টি ভিন্ন উপায় দেখায়:
- উপাদান নির্বাচক হিসাবে
- উপাদান নির্বাচক হিসাবে xpath ব্যবহার করে
-
// উপাদান নির্বাচক হিসাবে আইডি ব্যবহার করে কপিরাইট পাঠ্য যাচাই করুন
এটি ('কপিরাইট টেক্সট থাকা উচিত', ফাংশন () {return driver.getText ("#কপিরাইট")। তারপর (ফাংশন (লিঙ্ক) {console.log ('কপিরাইট পাওয়া গেছে:' + লিঙ্ক); (লিঙ্ক)। সমান ("টনি কিথ - tlkeith.com @ 2015 - সমস্ত অধিকার সংরক্ষিত।");});}); // উপাদান নির্বাচনকারী হিসেবে xpath ব্যবহার করে কপিরাইট টেক্সট যাচাই করুন ('কপিরাইট টেক্সট থাকা উচিত', ফাংশন () {রিটার্ন ড্রাইভার। 'কপিরাইট পাওয়া গেছে:' + লিঙ্ক); (লিঙ্ক).should.equal ("Tony Keith - tlkeith.com @ 2015 - সমস্ত অধিকার সংরক্ষিত।"
-
ফর্ম ক্ষেত্রগুলি পূরণ করুন এবং জমা দিন - "formFillSubmit1.js"
- প্রথম নাম, শেষ নাম পূরণ করুন এবং জমা দিন, তারপর ফলাফলের জন্য অপেক্ষা করুন।
-
এই উদাহরণটি প্রথম নাম ইনপুট ক্ষেত্র পূরণ করার 3 টি পদ্ধতি দেখায়:
- আইডি দ্বারা
- ইনপুট থেকে xpath দ্বারা
- ফর্ম-> ইনপুট থেকে xpath দ্বারা
- এছাড়াও দেখায় কিভাবে একটি ইনপুট ক্ষেত্র পরিষ্কার করতে হয়
// আইডি ব্যবহার করে প্রথম নাম সেট করুন: টনি
এটি ('প্রথম নাম টনিতে সেট করা উচিত', ফাংশন () {return driver.setValue ("#fname", "Tony").getValue ("#fname")। তারপর (function (e) {(e).should.be.equal ("টনি"); console.log ("প্রথম নাম:" + ই);});}); // আইডি ব্যবহার করে প্রথম নামটি সাফ করুন.should.be.equal (""); console.log ("প্রথম নাম:" + e);});}); // ইনপুট থেকে xpath ব্যবহার করে প্রথম নাম সেট করুন: টনি ইট ('টনিকে প্রথম নাম সেট করা উচিত', ফাংশন () {return driver.setValue ("// ইনপুট [@নাম = 'fname']", "টনি")। + ই);});}); // ইনপুট থেকে xpath ব্যবহার করে প্রথম নামটি সাফ করুন @নাম = 'fname'] ")। তারপর // ফর্ম থেকে xpath ব্যবহার করে প্রথম নাম সেট করুন: টনি ইট ('টনিকে প্রথম নাম সেট করা উচিত', ফাংশন () {return driver.setValue ("// form [@id = 'search-form']/ইনপুট [1] "," টনি ").getValue (" // form [@id = 'search-form']/input [1] ")। তারপর (function (e) {(e).should.be.equal ("টনি"); console.log ("প্রথম নাম:" + ই);});}); // আইডি ব্যবহার করে শেষ নাম সেট করুন: কিথ ইট ('কিথের শেষ নাম সেট করা উচিত', ফাংশন () {return driver.setValue ("#lname", "Keith").getValue ("#lname") তারপর। (ফাংশন (e) {(e).should.be.equal ("Keith"); console.log ("শেষ নাম:" + e);});}); // ফর্ম জমা দিন এবং সার্চ ফলাফলের জন্য অপেক্ষা করুন ('ফর্ম জমা দিতে হবে এবং ফলাফলের জন্য অপেক্ষা করতে হবে', ফাংশন () {return driver.submitForm ("#search-form")। তারপর (ফাংশন (e) {console.log (' '
-
দেখান/লুকান বাটন ক্লিক করুন এবং পাঠ্য যাচাই করুন - "showHideVerify1.js"
- লেখাটি একটি শো/হাইড এলিমেন্টে আছে। বোতামটি রাষ্ট্রকে নিয়ন্ত্রণ করে।
-
এই উদাহরণ দেখায়:
- প্রসারিত করতে বোতামে ক্লিক করুন
- উপাদানটি দৃশ্যমান হওয়ার জন্য অপেক্ষা করুন (প্রসারিত)
- পাঠ্য যাচাই করুন (ডেক কপি করুন)
// "আরো তথ্য" বোতামে ক্লিক করুন এবং সম্প্রসারিত উপাদানটিতে পাঠ্য যাচাই করুন
এটি ('আরো তথ্য বাটনে ক্লিক করুন এবং পাঠ্য যাচাই করুন', ফাংশন () {রিটার্ন ড্রাইভার। "(আরো#ইনফো") ক্লিক করুন। তারপর ("#collapseExample", 5000).getText ("// div [@id = 'collapsExample']/div")। তারপর (ফাংশন (e) {console.log ('পাঠ্য:' + e); (e).should.be.equal ("সব ভাল জিনিস এখানে যান!");});});
-
ফর্ম ফিল্ড ত্রুটি যাচাই করুন - "formFieldValidation.js"
- সঠিক ত্রুটির বার্তাগুলি যাচাই করার জন্য পরীক্ষার স্ক্রিপ্টগুলি ব্যবহার করুন।
-
এই উদাহরণ দেখায়:
ত্রুটি পাঠ্য বার্তাগুলি যাচাই করুন এবং অবস্থান যাচাই করুন (তালিকাভুক্ত তালিকার অবস্থান)।
এটি ('5 টি ত্রুটি থাকা উচিত: প্রথম/শেষ/ঠিকানা/শহর/রাজ্য', ফাংশন () {
return driver.getText ("// ul [@class = 'alert alert-danger']/li [1]") তারপর) {console.log ('ত্রুটি পাওয়া গেছে:' + e); (e).should.be.equal ('দয়া করে শেষ নাম লিখুন');})। ']/লি [3] ")। তারপর (ফাংশন (ই) {console.log (' ত্রুটি পাওয়া গেছে: ' + ই); (ই)। getText ("// ul [@class = 'alert alert-danger']/li [4]")। তারপর (function (e) {console.log ('Error found:' + e); (e).should.be.equal ('অনুগ্রহ করে শহরে প্রবেশ করুন';) ('ত্রুটি পাওয়া গেছে:' + ই); (ই).should.be.equal ('দয়া করে রাজ্যে প্রবেশ করুন');}); });
-
URL লিংক/টেক্সট/পেজ যাচাই করতে লুপিং ডেটা - "LoopDataExample1.js"
-
এই উদাহরণটি দেখায়: লিঙ্ক এবং নাম সংরক্ষণ করতে JSON ডেটার একটি অ্যারে ব্যবহার করুন, তারপর পুনরাবৃত্তি করুন
- প্রতিটি URL পাঠ্য এবং লিঙ্ক যাচাই করুন
- লিঙ্কে ক্লিক করুন এবং পৃষ্ঠাটি লোড করুন
-
// লিঙ্ক ডেটা - লিঙ্ক এবং টেক্সট
var linkArray = [{"link": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/tutorial1.js", "name": "tutorial1.js"}, {"link": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/linkTextURL1.js "," name ":" linkTextURL1.js "}, {" link ":" https://github.com/onewithhammer/WebDriverIOTutorial/blob/ master/copyright1.js "," name ":" copyright1.js "}, {" link ":" https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/formFillSubmit1.js "," name ":" formFillSubmit1.js "}, {" link ":" https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/showHideVerify1.js "," name ":" showHideVerify1.js "}, {" link ":" https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/dynamicBrowser.js "," name ":" dynamicBrowser.js "}, {" link ":" https://github.com/onewithhammer/WebDriverIOTutorial/ blob/master/callbackPromise.js "," name ":" callbackPromise.js "}, {" link ":" https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/debugExample1.js "," নাম ": "দেবু gExample1.js "}, {" link ":" https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/formFieldValidation.js "," name ":" formFieldValidation.js "}, {" link ":" https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/common/commonLib.js "," name ":" commonLib.js "}, {" link ":" https://github.com/onewithhammer/ WebDriverIOTutorial/blob/master/dataLoopExample1.js "," name ":" dataLoopExample1.js "}]; … // প্রতিটি লিংকের মাধ্যমে লুপ করুন Array linkArray.forEach (ফাংশন (ডি) {এটি ('টেক্সট/লিঙ্ক থাকা উচিত তারপর গোটো পেজ -' + d.name, ফাংশন () {রিটার্ন ড্রাইভার // নিশ্চিত করুন যে আপনি শুরু পৃষ্ঠায় আছেন.url ('https://www.tlkeith.com/WebDriverIOTutorialTest। টিউটোরিয়াল টেস্ট পেজ ");}) // ইউআরএল খুঁজুন.getAttribute ('a =' + d.name," href ")। তারপর console.log ('URL পাওয়া গেছে:' + d.link);}) // ইউআরএল পৃষ্ঠায় যান এবং যাচাই করুন এটি বিদ্যমান। ক্লিক করুন ('a =' + d.name)। ধারক ", 10000)। তারপর (ফাংশন () {console.log ('Github পৃষ্ঠা পাওয়া');});});});
-
লুপিং স্ট্যাটিক ডেটা ফর্ম ফিল্ডগুলি পূরণ করতে - "loopDataExample2.js"
-
এই উদাহরণ দেখায়: প্রথম/শেষ নাম সংরক্ষণ করতে JSON ডেটার একটি অ্যারে ব্যবহার করুন
- ফর্ম ক্ষেত্রগুলি পূরণ করতে ডেটার মাধ্যমে লুপ করুন, তারপরে ফর্ম জমা দিন
- ফলাফলের পৃষ্ঠার জন্য অপেক্ষা করুন
- ফলাফলের পৃষ্ঠায় প্রথম / শেষ নাম যাচাই করুন
-
// ডেটা অ্যারে - firstName এবং lastNamevar dataArray = [{"firstName": "Tony", "lastName": "Keith"}, {"firstName": "John", "lastName": "Doe"}, {"firstName ":" জেন "," শেষ নাম ":" Doe "}, {" firstName ":" Don "," lastName ":" জনসন "}]; … // প্রতিটি dataArray dataArray.forEach এর মাধ্যমে লুপ করুন /www.tlkeith.com/WebDriverIOTutorialTest.html ').getTitle ()। তারপর (ফাংশন (শিরোনাম) {// শিরোনাম (শিরোনাম)).setValue ("#fname", d.firstName).getValue ("#fname")। তারপর নাম: " + e);}).setValue ("#lname ", d.lastName).getValue ("#lname ")। তারপর (ফাংশন (e) {(e)); console.log ("শেষ নাম:" + e);}).submitForm ("#search-form")। তারপর "#সার্চ-ফলাফল", 10000) তারপর 'পাঠ্য পাওয়া গেছে:' + লিঙ্ক); (লিংক)।
-
CSS প্রোপার্টি যাচাই করুন - "cssValidation1.js"
-
এই উদাহরণটি দেখায় কিভাবে:
-
নিম্নলিখিত CSS বৈশিষ্ট্যগুলি যাচাই করুন:
- রঙ
- প্যাডিং (উপরে, নীচে, ডান, বাম)
- পেছনের রঙ
-
-
এটি ('ত্রুটি পাঠ্যের সঠিক রঙ থাকা উচিত', ফাংশন () {রিটার্ন ড্রাইভার। ফাংশন (ফলাফল) {console.log ('রঙ পাওয়া গেছে:' + result.parsed.hex + "বা" + result.value); });});
এটি ('টেবিল সেলে সঠিক প্যাডিং থাকা উচিত', ফাংশন () {
রিটার্ন ড্রাইভার // প্যাডিং: উপরের ডান নীচে বাম.getCssProperty ("// টেবিল [@আইডি = 'ফাইললিস্ট']/থ্যাড/টিআর [1]/টিডি [1]", "প্যাডিং-টপ")। তারপর (ফাংশন (result) {console.log ('padding-top found:' + result.value); (result.value).should.be.equal ('10px');}).getCssProperty ("// table [@id = 'filelist']/thead/tr [1]/td [1] "," প্যাডিং-বটম ") তারপর (ফাংশন (ফলাফল) {console.log ('প্যাডিং-বটম পাওয়া গেছে:' + ফলাফল result.value).should.be.equal ('10px');}).getCssProperty ("// table [@id = 'filelist']/thead/tr [1]/td [1]", "প্যাডিং- তারপর "// টেবিল [@id = 'filelist']/thead/tr [1]/td [1]", "প্যাডিং-বাম")। তারপর (ফাংশন (ফলাফল) {console.log ('প্যাডিং-বাম পাওয়া গেছে: ' + result.value); (result.value).should.be.equal (' 5px ');}); });
এটি ('টেবিল হেডারে সঠিক ব্যাকগ্রাউন্ড কালার থাকা উচিত', ফাংশন () {
return driver.getCssProperty ("// table [@id = 'filelist']/thead", "background-color")। তারপর হেক্স); (result.parsed.hex).should.be.equal ('#eeeeee');}); });
ধাপ 6: টিপস এবং কৌশল
-
ডিবাগিং:
-
আরও ডিবাগ এবং লগ তৈরি করতে ড্রাইভার লেভেলে লগিং চালু করুন।
- LogBevel 'verbose' এ সেট করুন
- ডিরেক্টরি নাম লগ আউটপুট সেট করুন ('লগ')
-
driver = webdriverio.remote (loglevel: 'verbose', logOutput: 'logs', {वांछित क्षमता: {browserName: 'firefox'}});
-
ডিবাগ করতে console.log (), ডিবাগ (), getText () ব্যবহার করুন।
- console.log () - অবস্থা নির্ধারণ করতে তথ্য প্রদর্শন করতে ব্যবহার করুন।
- ডিবাগ () - কমান্ড লাইনে এন্টার চাপানো পর্যন্ত বিরতি ব্রাউজার/স্ক্রিপ্ট ব্যবহার করুন।
-
getText () - আপনি সঠিক উপাদানটির সাথে ইন্টারঅ্যাক্ট করছেন তা যাচাই করতে ব্যবহার করুন।
এক্সপ্যাথ এক্সপ্রেশনগুলির সাথে বিশেষভাবে সহায়ক।
// তালিকা থেকে আইটেম 3 এ ক্লিক করুন
এটি ('তালিকা থেকে আইটেম 3 এ ক্লিক করা উচিত', ফাংশন () {// getText () ব্যবহার করে যাচাই করতে এলিমেন্ট রিটার্ন ড্রাইভারের জন্য xpath সঠিক কিনা। getText ("// ul [@id = 'mylist']/li [3]/div/div/a ") তারপর। ("আইটেম 3");}) // ব্রাউজারে কি ঘটছে তা দেখার জন্য ডিবাগ () ব্যবহার বন্ধ করতে ব্যবহার করুন। তারপর/function/) (e) {console.log ('অনুসন্ধান ফলাফল পাওয়া গেছে');});});
-
ব্রাউজারকে গতিশীলভাবে পরিবর্তন করতে পরিবেশ পরিবর্তনশীল ব্যবহার করুন:
- প্রতিবার পরীক্ষার স্ক্রিপ্ট পরিবর্তন না করে একটি ভিন্ন ব্রাউজার চালু করতে এনভায়রনমেন্ট ভেরিয়েবল SELNIUM_BROWSER ব্যবহার করুন।
- সমর্থন করার জন্য সামান্য কোডিং পরিবর্তন প্রয়োজন।
কোড পরিবর্তন:
// ব্রাউজারের জন্য ড্রাইভার লোড করুন
ড্রাইভার = webdriverio.remote ({desireCapilities: {browserName: process.env. SELENIUM_BROWSER || 'chrome'}});
সমর্থিত ব্রাউজার:
-
ইন্টারনেট এক্সপ্লোরার - IE 8+ (শুধুমাত্র উইন্ডোজ)
Celenium_BROWSER = অর্থাৎ মোচা
-
ফায়ারফক্স 10+ (উইন্ডোজ/ম্যাক্স/লিনাক্স)
সেলেনিয়াম_ব্রাউজার = ফায়ারফক্স মোচা
-
ক্রোম 12+ (উইন্ডোজ/ম্যাক্স/লিনাক্স)
সেলেনিয়াম_ব্রাউজার = ক্রোম মোচা
-
অপেরা 12+
সেলেনিয়াম_ব্রাউজার = অপেরা মোচা
-
সাফারি
সেলেনিয়াম_ব্রাউজার = সাফারি মোচা
পরীক্ষামূলক:
-
উইন্ডোজের জন্য git bash shell ব্যবহার করুন:
- সেলেনিয়াম_ব্রাউজার = ক্রোম মোচা
- $ Celenium_BROWSER = chrome mocha DynamicBrowser.js
-
ম্যাক বা লিনাক্সের জন্য, টার্মিনাল খুলুন:
- সেলেনিয়াম_ব্রাউজার = ক্রোম মোচা
- $ Celenium_BROWSER = chrome mocha DynamicBrowser.js
-
প্রতিক্রিয়াশীল পরীক্ষা:
- প্রকল্প বা কাঠামোর (অর্থাৎ বুটস্ট্র্যাপ) উপর ভিত্তি করে ব্রেকপয়েন্ট নির্ধারণ করুন।
-
প্রতিটি ব্রেকপয়েন্টের জন্য পরিবেশের ভেরিয়েবল সংজ্ঞায়িত করুন:
- ডেস্কটপ - 1200 পিক্সেল
- টেবিল - 992 পিক্সেল
- মোবাইল - 768 পিক্সেল
-
এনভায়রনমেন্ট ভেরিয়েবল পড়তে এবং ব্রাউজারের সাইজ সেট করতে পুনরায় ব্যবহারযোগ্য কমান্ড তৈরি করুন।
নীচের উদাহরণ দেখুন।
- আপনার পরীক্ষার স্ক্রিপ্টে পুনরায় ব্যবহারযোগ্য কমান্ডটি কল করুন।
// পুনরায় ব্যবহারযোগ্য কোড - লাইব্রেরি // কোড স্নিপেট যদি (bp == "ডেস্কটপ") {obj.width = 1200; obj.height = 600; obj.name = bp; } অন্যথায় যদি (bp == "TABLET") {obj.width = 992; obj.height = 600; obj.name = bp; } অন্যথায় যদি (bp == "মোবাইল") {obj.width = 768; obj.height = 400; obj.name = bp; }
// টেস্ট স্ক্রিপ্ট
আগে ফাংশন (সম্পন্ন) {// শুধুমাত্র প্রস্থের ব্যাপার ড্রাইভার.setWindowSize (winsize.width, winsize.height, function () {})।
-
পুনরায় ব্যবহারযোগ্য কমান্ড (কাস্টম কমান্ড):
- ওয়েব ড্রাইভার আইও সহজেই বাড়ানো যায়।
- আমি একটি লাইব্রেরিতে সমস্ত পুনusব্যবহারযোগ্য কমান্ড রাখতে চাই। (সম্ভবত এটি পুরানো স্কুল কিন্তু এটি কাজ করে!)
common/commonLib.js
// verifyLastNameCheckError ()
// // বিবরণ: // শেষ নাম ফর্ম যাচাইকরণ ত্রুটি বার্তা যাচাই করে var idx = আর্গুমেন্ট [0], কলব্যাক = আর্গুমেন্ট [যুক্তি। দৈর্ঘ্য - 1]; এই.getText ("// ul [@class = 'alert alert-danger']/li [" + idx + "]", ফাংশন (err, e) {console.log ('ত্রুটি পাওয়া গেছে:' + e); (e).should.be.equal ('দয়া করে শেষ নাম লিখুন');})। কল (কলব্যাক); }; // ফাংশন module.exports.verifyLastNameCheckError = verifyLastNameCheckError রপ্তানি করুন;
পুনর্ব্যবহারযোগ্য ফাংশন কল করার জন্য এখানে নির্দিষ্ট পরিবর্তনগুলি প্রয়োজন
সম্পূর্ণ কাজের উদাহরণের জন্য formFieldValidation.js দেখুন
// পুনর্ব্যবহারযোগ্য কমান্ড প্রয়োজন - CommonLib
common = প্রয়োজন ('./ Common/CommonLib'); … // কমান্ড চালককে চালান driver.addCommand ('verifyLastNameError', common.verifyLastNameCheckError.bind (ড্রাইভার)); এটি ('2 টি ত্রুটি থাকা উচিত: প্রথম/শেষ নাম', ফাংশন () {// পুনরায় ব্যবহারযোগ্য ফাংশন ড্রাইভারকে কল করুন। verifyFirstNameError (1);.verifyLastNameError (2);});
-
প্রকল্প ফাইল/ডিরেক্টরি কাঠামো:
-
এখানে সাধারণ প্রকল্প কাঠামো:
-
"প্রকল্প" - প্রধান প্রকল্প ডিরেক্টরি
- README.md - বৈশ্বিক প্রকল্পের জন্য readme
-
"সাধারণ" - সমস্ত প্রকল্পের সাধারণ বৈশ্বিক ফাংশনের জন্য ডিরেক্টরি
- common -lib.js - গ্লোবাল ফাংশন লাইব্রেরি
- README.md - গ্লোবাল ফাংশনের জন্য readme
-
"পণ্য 1" - পণ্য 1 এর জন্য ডিরেক্টরি
- test-script1.js
- test-script2.js
-
"সাধারণ" - প্রকল্পের স্থানীয় ফাংশনের জন্য ডিরেক্টরি 1
- prod1 -lib.js - প্রকল্প 1 এর জন্য স্থানীয় ফাংশন লাইব্রেরি
- README.md - প্রকল্প 1 এর স্থানীয় ফাংশনগুলির জন্য readme
-
"Product2"-পণ্য 2test-script1.jstest-script2.js এর জন্য ডিরেক্টরি
-
"সাধারণ" - প্রকল্পের স্থানীয় ফাংশনগুলির জন্য ডিরেক্টরি 2
- prod2 -lib.js - প্রকল্প 2 এর জন্য স্থানীয় ফাংশন লাইব্রেরি
- README.md - 2 প্রকল্পে স্থানীয় ফাংশনগুলির জন্য readme
-
-
-
-
পরীক্ষার স্ক্রিপ্টগুলিকে একাধিক ফাইলে বিভক্ত করুন:
-
এখানে একাধিক ফাইল ব্যবহারের একটি নমুনা:
- স্যানিটি চেক - সবকিছু যাচাই করার জন্য মৌলিক পরীক্ষার স্ক্রিপ্ট কাজ করছে
- স্ট্যাটিক উপাদান এবং পাঠ্য যাচাইকরণ - সমস্ত উপাদান এবং পাঠ্য যাচাই করুন
- ফর্ম/পৃষ্ঠা ত্রুটি যাচাইকরণ - ত্রুটি যাচাইকরণ
- অনুসন্ধান ফলাফল - গতিশীল সামগ্রী পরীক্ষা করুন
-
-
কলব্যাক VS. প্রতিশ্রুতি:
-
ওয়েব ড্রাইভার আইও এর সংস্করণ 3 কলব্যাক এবং প্রতিশ্রুতি উভয় সমর্থন করে।
প্রতিশ্রুতিগুলি পছন্দসই পদ্ধতি কারণ এটি ত্রুটি হ্যান্ডলিং কোড হ্রাস করে। কলব্যাক এবং প্রতিশ্রুতি ব্যবহার করে লেখা একই উদাহরণ নিচে দেখুন।
-
কলব্যাক
// কলব্যাক ব্যবহার করে প্রথম/শেষ নাম সেট/যাচাই করুন
এটি ('কলব্যাক ব্যবহার করে প্রথম/শেষ নাম সেট/যাচাই করা উচিত', ফাংশন (সম্পন্ন) {driver.setValue ("#fname", "Tony", function (e) {driver.getValue ("#fname", function (err, e) {(e).should.be.equal ("Tony"); console.log ("প্রথম নাম:" + e); driver.setValue ("#lname", "Keith", function (e) { driver.getValue ("#lname", function (err, e) {(e).should.be.equal ("Keith"); console.log ("শেষ নাম:" + e); সম্পন্ন ();});});});});});
প্রতিশ্রুতি
// প্রতিশ্রুতি ব্যবহার করে প্রথম/শেষ নাম সেট/যাচাই করুন
এটি ('প্রতিশ্রুতি দিয়ে প্রথম/শেষ নাম সেট/যাচাই করা উচিত', ফাংশন () {return driver.setValue ("#fname", "Tony").getValue ("#fname")। তারপর (ফাংশন (e) {(e).should.be.equal ("Tony"); console.log ("প্রথম নাম:" + e);}).setValue ("#lname", "Keith").getValue ("#lname")। তারপর (ফাংশন (e) {(e).should.be.equal ("Keith"); console.log ("শেষ নাম:" + e);});});
ধাপ 7: আরো সম্পদ
আপনার রেফারেন্সের জন্য এখানে কিছু অতিরিক্ত সম্পদ রয়েছে:
-
আলোচনা গ্রুপ (গিটার)
- ওয়েব ড্রাইভার আইও আলোচনা গ্রুপ
- মোচা আলোচনা গ্রুপ
-
অন্যান্য আকর্ষণীয় প্রকল্প
- সুপারটেস্ট - HTTP দাবি
- চা - দাবী
ধাপ 8: উপসংহার
আমি আমার প্রকল্পের জন্য ব্যবহার করার প্রযুক্তিগুলি নিয়ে কিছু সময় ব্যয় করেছি। আমি মূলত সেলেনিয়াম ওয়েব ড্রাইভার দিয়ে শুরু করেছিলাম কিন্তু ওয়েব ড্রাইভার আইও ব্যবহার করতে শুরু করেছি। ওয়েব ড্রাইভার আইও ব্যবহার করা সহজ এবং প্রসারিত করা অনেক সহজ বলে মনে হয়েছিল (অন্তত প্রসারিত করার জন্য ডকুমেন্টেশন - পুনusব্যবহারযোগ্য কমান্ডগুলি ভাল ছিল)।
যখন আমি প্রথম প্রযুক্তির দিকে তাকাতে শুরু করি তখন আমি এমন কিছু ভাল উদাহরণ খুঁজে পাওয়া কঠিন ছিল যা আমি করার চেষ্টা করছিলাম। এই কারণেই আমি আপনার সাথে এই তথ্য এবং জ্ঞান শেয়ার করতে চেয়েছিলাম।
প্রযুক্তিগুলি আমার প্রত্যাশার চেয়ে অনেক ভাল কাজ করেছিল তবে সেখানে শেখার বক্রতা জড়িত ছিল। একবার আমি বুঝতে পারলাম কিভাবে সমস্ত উপাদান একসাথে কাজ করে, আমি খুব অল্প সময়ে জটিল পরীক্ষার স্ক্রিপ্ট লিখতে সক্ষম হয়েছি। সবচেয়ে কঠিন স্ক্রিপ্ট ছিল জাভাস্ক্রিপ্ট ভিত্তিক উপাদান যেমন একটি তারিখ বাছাইকারী এবং মোডাল নির্বাচক।
আমি কখনো নিজেকে জাভাস্ক্রিপ্ট ডেভেলপার হিসেবে লেবেল করিনি এবং আমিও জাভাস্ক্রিপ্ট এক্সপার্ট হতে চাইনি, কিন্তু এই টেকনোলজির ব্যবহার আমাকে অবশ্যই আমার জেএস দক্ষতা তীক্ষ্ণ করতে অনুপ্রাণিত করেছে।
আমি আশা করি এই নিবন্ধটি দরকারী এবং উদাহরণগুলি স্পষ্ট এবং তথ্যবহুল।
আপনার কোন প্রশ্ন বা মন্তব্য থাকলে দয়া করে আমাকে জানান।
ধন্যবাদ, টনি কিথ
প্রস্তাবিত:
MSP432 লঞ্চপ্যাড এবং পাইথন ব্যবহার করে একটি তাপমাত্রা সেন্সর (TMP006) এর লাইভ ডেটা প্লট করা: 9 টি ধাপ
MSP432 লঞ্চপ্যাড এবং পাইথন ব্যবহার করে একটি তাপমাত্রা সেন্সর (TMP006) এর লাইভ ডেটা প্লট করা: TMP006 হল একটি তাপমাত্রা সেন্সর যা বস্তুর সাথে যোগাযোগের প্রয়োজন ছাড়াই একটি বস্তুর তাপমাত্রা পরিমাপ করে। এই টিউটোরিয়ালে আমরা পাইথন ব্যবহার করে বুস্টারপ্যাক (TI BOOSTXL-EDUMKII) থেকে লাইভ তাপমাত্রার তথ্য চক্রান্ত করব
ESP8266 এবং OLED ব্যবহার করে লাইভ কোভিড 19 ট্র্যাকার - রিয়েলটাইম কোভিড 19 ড্যাশবোর্ড: 4 টি ধাপ
ESP8266 এবং OLED ব্যবহার করে লাইভ কোভিড 19 ট্র্যাকার | রিয়েলটাইম কোভিড ১ D ড্যাশবোর্ড: টেকট্রনিক হার্শ ওয়েবসাইট দেখুন: http: //techtronicharsh.com সর্বত্রই নভেল করোনা ভাইরাস (কোভিড ১)) এর একটি বিশাল প্রাদুর্ভাব রয়েছে। বিশ্বে কোভিড -১ এর বর্তমান প্রেক্ষাপটে নজর রাখা জরুরি হয়ে পড়েছে। সুতরাং, বাড়িতে থাকাকালীন, এটি ছিল পি
হোম অটোমেশন গুগল অ্যাসিস্ট্যান্ট এবং অ্যাডাফ্রুট আইও ব্যবহার করে: 3 টি ধাপ
গুগল অ্যাসিস্ট্যান্ট এবং অ্যাডাফ্রুট আইও ব্যবহার করে হোম অটোমেশন: গুগল সহকারী হল এআই (কৃত্রিম বুদ্ধিমত্তা) ভিত্তিক ভয়েস কমান্ড পরিষেবা। ভয়েস ব্যবহার করে, আমরা গুগল সহকারীর সাথে যোগাযোগ করতে পারি এবং এটি ইন্টারনেটে অনুসন্ধান, ইভেন্টের সময়সূচী, অ্যালার্ম সেট করা, যন্ত্রপাতি নিয়ন্ত্রণ ইত্যাদি করতে পারে।
আইওটি হাইড্রোপনিক্স - ইসি, পিএইচ এবং তাপমাত্রা লগিংয়ের জন্য অ্যাডাফ্রুট আইও ব্যবহার করা: 6 টি ধাপ
আইওটি হাইড্রোপোনিক্স - ইসি, পিএইচ এবং তাপমাত্রা লগিংয়ের জন্য অ্যাডাফ্রুট আইও ব্যবহার করা: এই নির্দেশাবলী দেখাবে কিভাবে হাইড্রোপনিক্স সেটআপের ইসি, পিএইচ এবং তাপমাত্রা পর্যবেক্ষণ করা যায় এবং অ্যাডাফ্রুট এর আইও পরিষেবাতে ডেটা আপলোড করা হয়। Adafruit IO শুরু করার জন্য বিনামূল্যে। এখানে অর্থ প্রদানের পরিকল্পনা রয়েছে, তবে এই প্রকল্পের জন্য বিনামূল্যে পরিকল্পনা যথেষ্ট বেশি
Esp32 পাইথন এবং জেরিন্থ আইডিই ব্যবহার করে তাপমাত্রা এবং আর্দ্রতা ওয়েব সার্ভার: 3 টি ধাপ
পাইপথন এবং জেরিন্থ আইডিই ব্যবহার করে Esp32 তাপমাত্রা এবং আর্দ্রতা ওয়েব সার্ভার: Esp32 একটি দুর্দান্ত মাইক্রো-কন্ট্রোলার, এটি একটি Arduino এর মতো শক্তিশালী কিন্তু আরও ভাল! এতে ওয়াইফাই সংযোগ রয়েছে, যা আপনাকে IOT প্রকল্পগুলি সস্তায় এবং সহজে বিকাশ করতে সক্ষম করে। ডিভাইসগুলি হতাশাজনক, প্রথমে এটি স্থিতিশীল নয়, সেকন
