PyTest দিয়ে Automated Testing করা

Testing এবং Debugging - চেরিপাই (CherryPy) - Web Development

244

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


PyTest এবং CherryPy অ্যাপ্লিকেশন টেস্টিং

PyTest হল একটি টেস্টিং ফ্রেমওয়ার্ক যা Python অ্যাপ্লিকেশন টেস্টিং সহজ করে তোলে। এটি unit tests, functional tests, এবং integration tests পরিচালনা করতে ব্যবহৃত হয়। CherryPy অ্যাপ্লিকেশনের সাথে এটি ইন্টিগ্রেট করা সহজ, এবং এটি HTTP রিকোয়েস্টের প্রতিক্রিয়া পরীক্ষা করার জন্য খুবই কার্যকর।

PyTest ইনস্টলেশন

PyTest ব্যবহার করতে প্রথমে এটি ইনস্টল করতে হবে। আপনি PyTest পিপের মাধ্যমে ইনস্টল করতে পারেন:

pip install pytest

CherryPy অ্যাপ্লিকেশন টেস্ট করার জন্য প্রস্তুতি

CherryPy অ্যাপ্লিকেশনের জন্য PyTest দিয়ে টেস্ট লিখতে হলে, আপনি CherryPy's test helper মডিউল ব্যবহার করতে পারেন, যা cherrypy.test প্যাকেজের অংশ। এটি CherryPy অ্যাপ্লিকেশনকে WSGI (Web Server Gateway Interface) অ্যাপ্লিকেশন হিসেবে টেস্ট করার সুবিধা দেয়।


উদাহরণ: CherryPy অ্যাপ্লিকেশন টেস্ট করা

  1. CherryPy অ্যাপ্লিকেশন তৈরি করা
import cherrypy

class MyApp:
    @cherrypy.expose
    def index(self):
        return "স্বাগতম CherryPy অ্যাপে!"
    
    @cherrypy.expose
    def about(self):
        return "এটি অ্যাবাউট পেজ।"

if __name__ == '__main__':
    cherrypy.quickstart(MyApp())

এটি একটি সাধারণ CherryPy অ্যাপ্লিকেশন যেখানে index এবং about পেজ রয়েছে।

  1. PyTest টেস্ট কেস তৈরি করা

CherryPy অ্যাপ্লিকেশনের জন্য PyTest টেস্ট কেস লিখতে, আপনাকে CherryPy অ্যাপ্লিকেশন চালাতে হবে এবং তার প্রতিক্রিয়া পরীক্ষা করতে হবে।

import pytest
import cherrypy
from myapp import MyApp  # আপনার CherryPy অ্যাপ্লিকেশনের মডিউল নাম

@pytest.fixture
def app():
    # CherryPy অ্যাপ্লিকেশন শুরু করা
    cherrypy.tree.mount(MyApp(), '/')
    cherrypy.config.update({'server.socket_port': 8080})
    return cherrypy

def test_index(app):
    # অ্যাপ্লিকেশনের রুট (index) পরীক্ষা করা
    response = app.request('/index')
    assert response.status == 200
    assert "স্বাগতম CherryPy অ্যাপে!" in response.body.decode('utf-8')

def test_about(app):
    # অ্যাপ্লিকেশনের অ্যাবাউট পেজ পরীক্ষা করা
    response = app.request('/about')
    assert response.status == 200
    assert "এটি অ্যাবাউট পেজ।" in response.body.decode('utf-8')

এখানে:

  • app() ফিক্সচারটি CherryPy অ্যাপ্লিকেশন শুরু করে এবং টেস্টের জন্য উপলব্ধ করে।
  • test_index() এবং test_about() ফাংশন দুটি CherryPy অ্যাপ্লিকেশনের /index এবং /about পেজের রেসপন্স পরীক্ষা করে।

CherryPy অ্যাপ্লিকেশনের HTTP রিকোয়েস্ট টেস্ট করা

PyTest এ CherryPy অ্যাপ্লিকেশনের HTTP রিকোয়েস্ট টেস্ট করতে cherrypy.test মডিউল ব্যবহার করা যেতে পারে।

উদাহরণ: HTTP রিকোয়েস্ট টেস্ট

import pytest
import cherrypy
from cherrypy.test import helper
from myapp import MyApp  # আপনার অ্যাপ্লিকেশনের মডিউল নাম

class TestMyApp(helper.CPWebCase):
    def setup_server(self):
        cherrypy.tree.mount(MyApp(), '/')
        cherrypy.config.update({'server.socket_port': 8080})

    def test_index(self):
        response = self.getPage('/')
        assert "স্বাগতম CherryPy অ্যাপে!" in response

    def test_about(self):
        response = self.getPage('/about')
        assert "এটি অ্যাবাউট পেজ।" in response

এখানে:

  • CPWebCase ক্লাসটি CherryPy অ্যাপ্লিকেশনের জন্য টেস্ট ফ্রেমওয়ার্ক।
  • getPage() ব্যবহার করে বিভিন্ন পেজের রেসপন্স পরীক্ষা করা হচ্ছে।

CherryPy অ্যাপ্লিকেশন টেস্ট করার জন্য প্যারামিটার এবং ফর্ম ইনপুট টেস্ট করা

CherryPy অ্যাপ্লিকেশনের ফর্ম ইনপুট বা প্যারামিটার টেস্ট করতে PyTest ব্যবহার করা যায়।

উদাহরণ: ফর্ম ইনপুট টেস্ট

import pytest
import cherrypy
from myapp import MyApp  # আপনার অ্যাপ্লিকেশনের মডিউল নাম

@pytest.fixture
def app():
    cherrypy.tree.mount(MyApp(), '/')
    cherrypy.config.update({'server.socket_port': 8080})
    return cherrypy

def test_form_submission(app):
    # ফর্ম সাবমিট করা
    response = app.post('/submit', {'name': 'জন ডো', 'email': 'johndoe@example.com'})
    assert response.status == 200
    assert "ধন্যবাদ!" in response.body.decode('utf-8')

এখানে app.post() ব্যবহার করে একটি ফর্ম ইনপুটের মাধ্যমে রিকোয়েস্ট পাঠানো হয়েছে এবং রেসপন্স পরীক্ষা করা হচ্ছে।


PyTest চালানো

PyTest দিয়ে টেস্ট চালাতে টার্মিনালে নিচের কমান্ডটি ব্যবহার করুন:

pytest test_myapp.py

এটি আপনার test_myapp.py ফাইলটি রান করবে এবং সকল টেস্ট ফলাফল দেখাবে।


CherryPy অ্যাপ্লিকেশনের জন্য PyTest দিয়ে অটোমেটেড টেস্টিং করা অত্যন্ত সহজ এবং কার্যকর। আপনি HTTP রিকোয়েস্ট, ফর্ম ইনপুট, রেসপন্স এবং ইউজার ইন্টারঅ্যাকশন পরীক্ষা করতে পারেন। PyTest এবং CherryPy এর সাহায্যে, আপনি আপনার অ্যাপ্লিকেশনটির কার্যকারিতা অটোমেটিক্যালি পরীক্ষা করে তার উন্নতিতে সহায়তা করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...