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 অ্যাপ্লিকেশন টেস্ট করা
- 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 পেজ রয়েছে।
- 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 এর সাহায্যে, আপনি আপনার অ্যাপ্লিকেশনটির কার্যকারিতা অটোমেটিক্যালি পরীক্ষা করে তার উন্নতিতে সহায়তা করতে পারবেন।
Read more