2012-12-08 30 views
5

Tôi đã có một dự án trong đó một số thay đổi có thể dẫn đến 500 trạng thái trong một số chế độ xem.Django - trang thử nghiệm cho 500 trạng thái

Cách thanh lịch nhất để thực hiện các bài kiểm tra đơn vị sẽ kiểm tra tất cả lượt xem/trang (với các tuyến tĩnh, không có vars trong đó) là không trả lại 500 trạng thái?

Trả lời

2

Đối với các bài kiểm tra đơn vị bạn có thể sử dụng một cái gì đó tương tự (nhờ @Hedde đã nhắc nhở tôi của tên.):

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

Điều đó sẽ không làm việc cho các trang với các thông số, tôi tin tưởng. Nhưng để bỏ qua chúng, tôi có thể kiểm tra ngoại lệ NoReverseMatch. – DataGreed

0

Trước hết, 500 lỗi là không thể chấp nhận được và một số giải pháp ghi nhật ký tập trung như Relic mới sẽ hiển thị cho bạn backtraces chi tiết về ngoại lệ (thường là nguyên nhân gây ra lỗi 500). Hoặc bạn có thể thực hiện giải pháp cũ và rẻ: gửi email mỗi lần 500 lần xảy ra. Có các giải pháp ghi nhật ký tập trung khác, cũng được viết bằng Python, nhưng tôi không nhớ tên của chúng một cách không may.

Nếu bạn vẫn muốn kiểm tra nếu các trang không gửi lại 500, có rất nhiều cách có thể:

  1. Chức năng thử nghiệm với Selenium/WebDriver hoặc tương đương. Mạnh mẽ, nhưng đòi hỏi phải nỗ lực đáng kể
  2. Custom Script để chạy kiểm tra dự kiến ​​trạng thái HTTP của trang

Về liên tục 500 lỗi, bạn nên chạy thử nghiệm một vài lần liên tiếp.

Cập nhật: Đối với các lỗi theo dõi nó tốt hơn để sử dụng một cái gì đó giống như https://github.com/getsentry/sentry/ và sửa chữa chúng ngay lập tức

+1

Tôi khuyên bạn nên sentry đó là một logger tuyệt vời –

+0

có, đó là nó. –

+0

Vâng, điều đó chẳng liên quan gì đến câu hỏi của tôi cả, ngoại trừ phần với selen, nhưng nó cũng không trả lời câu hỏi đơn giản của tôi. – DataGreed

Các vấn đề liên quan