2012-12-08 10 views
5

के लिए परीक्षण पृष्ठों मैं एक परियोजना जहां कुछ परिवर्तन कुछ दृश्यों में 500 स्थिति पैदा हो सकती है मिल गया है।Django - 500 स्थिति

यूनिट परीक्षण करने का सबसे शानदार तरीका क्या है जो सभी दृश्य/पृष्ठों (स्थिर मार्गों के साथ, उनमें बिना युद्धों के, निश्चित रूप से) 500 स्थिति लौटने के लिए जांच करेगा?

उत्तर

2

इकाई परीक्षण आप की तरह कुछ का उपयोग कर सकते (मुझे नाम की याद दिलाने के लिए @Hedde धन्यवाद।):

from django import test 
from django.core.urlresolvers import reverse 
from page.urls import urlpatterns 

class PageTest(test.TestCase): 

    def test_responses(self): 
     for url in urlpatterns: 
      response = self.client.get(reverse(url.name)) 
      self.assertEqual(response.status_code, 200) 
+0

यह पैरामीटर वाले पृष्ठों के लिए काम नहीं करेगा, मुझे विश्वास है। लेकिन उन्हें अनदेखा करने के लिए, मैं NoReverseMatch अपवाद की जांच कर सकता हूं। – DataGreed

0

सबसे पहले, 500 त्रुटियों अस्वीकार्य हैं और नई अवशेष जैसे कुछ केंद्रीकृत प्रवेश समाधान आप अपवादों की विस्तृत बैकट्रैस (जो आमतौर पर 500 त्रुटि के कारण कर रहे हैं) पेश करेंगे। या आप पुराने और सस्ते समाधान कर सकते हैं: 500 बार हर बार एक ईमेल भेजें। पाइथन में भी लिखे गए अन्य केंद्रीकृत लॉगिंग समाधान हैं, लेकिन मुझे दुर्भाग्यवश उनके नाम याद नहीं हैं।

  1. सेलेनियम/WebDriver या समकक्ष के साथ कार्यात्मक परीक्षण:

    आप अभी भी अगर पृष्ठों 500 नहीं लौटते परीक्षण करना चाहते हैं, वहाँ कई संभव तरीके हैं। मजबूत, लेकिन महत्वपूर्ण प्रयास पृष्ठों

रुक-रुक कर 500 त्रुटियों के संबंध में, आप चलाना चाहिए के HTTP स्थितियों के लिए निर्धारित जांच की जाए

  • कस्टम स्क्रिप्ट की आवश्यकता है एक पंक्ति में एक दो बार परीक्षण करती है।

    अद्यतन: ट्रैकिंग त्रुटियों के लिए यह https://github.com/getsentry/sentry/ की तरह कुछ का उपयोग करें और तुरंत उन्हें ठीक करने के बेहतर है

  • +1

    मैं संतरी की सलाह देते हैं यह एक भयानक लकड़हारा है –

    +0

    हाँ, यह है कि यह किया गया था। –

    +0

    ठीक है, सेलेनियम के साथ भाग को छोड़कर, मेरे प्रश्न के साथ इसका कोई लेना-देना नहीं है, लेकिन यह मेरे सीधा सवाल का जवाब भी नहीं देता है। – DataGreed

    संबंधित मुद्दे