Webpage এর জন্য Visual Testing

PhantomJS এর জন্য Automated Testing - ফ্যান্টমজেএস (PhantomJS) - Web Development

235

PhantomJS একটি headless ব্রাউজার, যা মূলত JavaScript-এর মাধ্যমে ওয়েব পেজের স্ক্রিনশট, ওয়েবপেজ রেন্ডারিং, এবং UI টেস্টিং করার জন্য ব্যবহৃত হয়। এটি একটি headless browser হওয়ায়, এটি GUI ছাড়াই কাজ করে এবং সার্ভার সাইড স্ক্রিপ্টিং, automation, testing, এবং rendering এর জন্য খুবই উপকারী।

PhantomJS ব্যবহার করে Visual Testing এর মাধ্যমে, আপনি ওয়েব পেজের বিভিন্ন এলিমেন্ট পরীক্ষা করতে পারেন এবং তাদের গঠন বা রেন্ডারিংয়ে কোনো সমস্যা আছে কিনা তা চিহ্নিত করতে পারেন।

PhantomJS দিয়ে Webpage এর Visual Testing:

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

PhantomJS দিয়ে Visual Testing করার জন্য পদক্ষেপ:

1. PhantomJS ইনস্টল করা:

আপনি যদি PhantomJS ইনস্টল করতে চান, তবে প্রথমে PhantomJS ইনস্টল করতে হবে।

  • MacOS বা Linux ব্যবহারকারীদের জন্য, আপনি Homebrew অথবা APT প্যাকেজ ব্যবহার করতে পারেন।
  • Windows ব্যবহারকারীদের জন্য, PhantomJS এর অফিসিয়াল সাইট থেকে ইনস্টলার ডাউনলোড করা যাবে।
# MacOS এ PhantomJS ইনস্টল করতে
brew install phantomjs

এবং npm এর মাধ্যমে PhantomJS ইনস্টল করা যায়:

npm install -g phantomjs

2. PhantomJS দিয়ে ওয়েব পেজের স্ক্রিনশট নেওয়া:

PhantomJS দিয়ে আপনি PNG, JPEG, বা PDF ফরম্যাটে স্ক্রিনশট নিতে পারেন।

Example: PhantomJS স্ক্রিনশট স্ক্রিপ্ট
// screenshot.js
var page = require('webpage').create(); // Create a new PhantomJS page
page.open('http://example.com', function(status) { // Open the URL
  if (status === "success") {
    page.render('screenshot.png'); // Capture screenshot and save as PNG
  }
  phantom.exit(); // Exit PhantomJS
});

এই স্ক্রিপ্টে PhantomJS ওয়েব পেজ খুলবে এবং screenshot.png নামে একটি স্ক্রিনশট তৈরি করবে।

Image Formats:
  • PNG (default): page.render('screenshot.png');
  • JPEG: page.render('screenshot.jpg', { format: 'jpg' });
  • PDF: page.render('screenshot.pdf', { format: 'pdf' });

3. PhantomJS দিয়ে ওয়েবপেজ রেন্ডারিং টেস্টিং:

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

var page = require('webpage').create();
page.open('http://example.com', function(status) {
  if (status === 'success') {
    // Check if page is rendered properly or perform tests
    var body = page.content;
    if (body.indexOf("Welcome") !== -1) {
      console.log('Test Passed: "Welcome" is present on the page');
    } else {
      console.log('Test Failed: "Welcome" not found on the page');
    }
  }
  phantom.exit();
});

এখানে, PhantomJS একটি ওয়েব পেজের কনটেন্ট পরীক্ষা করছে এবং "Welcome" শব্দটি পেজের মধ্যে রয়েছে কিনা তা যাচাই করছে।

4. PhantomJS দিয়ে Visual Regression Testing:

Visual Regression Testing হচ্ছে ওয়েব পেজের একটি নির্দিষ্ট সময়ে বিভিন্ন রেন্ডারিং পরীক্ষার জন্য স্ক্রিনশট নিয়ে পরে তার তুলনা করা। এতে আগের এবং বর্তমান স্ক্রিনশটের মধ্যে পার্থক্য খুঁজে বের করা যায় এবং UI তে কোনো অপ্রত্যাশিত পরিবর্তন ঘটেছে কিনা তা সনাক্ত করা যায়।

আপনি PhantomJS দিয়ে স্ক্রিনশট নেয়ার পর, একটি image comparison tool ব্যবহার করে পূর্বের স্ক্রিনশটের সঙ্গে বর্তমান স্ক্রিনশটের তুলনা করতে পারেন।

Example: Image Comparison Using PhantomJS

var page = require('webpage').create();
var fs = require('fs');
page.open('http://example.com', function(status) {
  if (status === 'success') {
    page.render('current_screenshot.png'); // Capture current screenshot
    var prevScreenshot = 'previous_screenshot.png';
    
    if (fs.exists(prevScreenshot)) {
      var currentImage = fs.read('current_screenshot.png');
      var previousImage = fs.read(prevScreenshot);
      
      if (currentImage === previousImage) {
        console.log('No visual changes detected');
      } else {
        console.log('Visual changes detected');
      }
    }
    phantom.exit();
  }
});

5. Automating Visual Testing with PhantomJS

আপনি PhantomJS দিয়ে ওয়েব পেজের automated visual testing করতে পারেন। এটি ওয়েব পেজের কনটেন্ট, লেআউট এবং ইউজার ইন্টারফেসের অংশগুলির চেক করতে খুব কার্যকরী। PhantomJS এর সাথে Jasmine বা Mocha ব্যবহার করে আপনি এই টেস্টিং প্রক্রিয়াকে অটোমেট করতে পারেন।

Example: Using Jasmine with PhantomJS for Automated Testing

var page = require('webpage').create();
var jasmine = require('jasmine');

describe("Visual Test Suite", function() {
  it("should render correctly", function() {
    page.open('http://example.com', function(status) {
      expect(status).toBe('success');
      page.render('test_screenshot.png');
      phantom.exit();
    });
  });
});

Benefits of Visual Testing with PhantomJS:

  1. Headless Testing: PhantomJS headless ব্রাউজার হওয়ায় এটি GUI ছাড়াই কম্পিউটার রিসোর্স ব্যবহার করে ওয়েব পেজের স্ক্রিনশট নিতে এবং টেস্ট করতে সক্ষম।
  2. Automated UI Testing: ওয়েব পেজের ভিজ্যুয়াল উপাদান এবং ডিজাইন অটোমেটিক্যালি পরীক্ষা করা যায়।
  3. Cross-Browser Testing: PhantomJS ব্যবহার করে আপনি ব্রাউজারের মধ্যে কোনো ভিজ্যুয়াল পার্থক্য সনাক্ত করতে পারবেন, কারণ এটি ভিন্ন ভিন্ন ডিভাইসে স্ক্রিনশট তুলতে সাহায্য করবে।
  4. Fast Execution: Headless nature এর কারণে এটি দ্রুত কাজ করে এবং কম্পিউটার রিসোর্সের কম ব্যবহার করে।

PhantomJS দিয়ে Visual Testing করতে গেলে আপনি সহজে স্ক্রিনশট নিতে, ওয়েব পেজের রেন্ডারিং পরীক্ষা করতে, এবং Visual Regression Testing করতে পারেন। এতে ওয়েব ডিজাইন, UI পারফরম্যান্স এবং রেন্ডারিংয়ের যেকোনো সমস্যা চিহ্নিত করা সম্ভব হয়। PhantomJS এ automated testing এবং image comparison টুলস ব্যবহার করে আপনি অটোমেটিক্যালি ভিজ্যুয়াল পরিবর্তন এবং অনিচ্ছাকৃত UI ইস্যুগুলি সনাক্ত করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...