2010-03-09 46 views
38

Tôi đã xây dựng kịch bản lệnh "kiểm tra sức khỏe" dựa trên PHP cho một số dự án trong quá khứ, nhưng chúng luôn được đặt làm cho dịp này và không được viết cho trừu tượng như một sản phẩm độc lập. Tôi muốn biết liệu một giải pháp như vậy có tồn tại hay không.Bạn có kiểm tra sức khỏe trong ứng dụng web hoặc trang web của mình không?

Những gì tôi meam bằng cách "kiểm tra sức khỏe" là một trang web được bảo vệ có chức năng giống như một bộ kiểm tra đơn vị, nhưng trên một cấp độ hoạt động nhiều hơn, thể hiện màu đỏ/vàng/trạng thái màu xanh lá cây cho những thứ như

  • Các thư mục bộ nhớ cache có thể ghi được không?
  • Phiên bản PHP có đúng không, các tiện ích bắt buộc có được cài đặt không?
  • Máy chủ cơ sở dữ liệu có thể truy cập được không?
  • Các bảng cần thiết có tồn tại trong cơ sở dữ liệu không?
  • Có đủ dung lượng đĩa không?
  • Trang đầu của trang có thể truy cập và hiển thị đầy đủ (= không có lỗi PHP) không?
  • Kiểm tra MD5 của thư viện của dự án có khớp với bản gốc không?
  • Đầu ra của trang đầu tiên có vượt qua trình xác thực W3C không?

Bạn có làm điều này - hoặc một phần của nó - trong các ứng dụng và trang web của bạn không?

Có công cụ chuẩn nào cho việc này mang theo tất cả các chức năng để thực hiện các thử nghiệm (lý tưởng là bổ trợ), và chỉ cần được cấu hình cho phù hợp?

Tôi đang nói về một giải pháp gọn nhẹ có thể chạy ngay cả trên các gói web nhỏ nhất dựa trên PHP mà không có tiện ích mở rộng và quyền truy cập máy chủ.

Có, có thể, một cách để thiết lập điều này bằng cách sử dụng một trong các khung kiểm tra Đơn vị có sẵn cho PHP (tốt hơn là PHPUnit)? Nếu vậy, bạn có biết bất kỳ tài nguyên/hướng dẫn nào nêu rõ cách thức không?

Cập nhật: Có vẻ như không phải là một giải pháp làm sẵn phổ biến cho điều này, nếu không, với hơn 100 điểm, Tôi chắc rằng có thể đã có một số đề cập đến nó. Xem như có một số lợi ích ban đầu trong việc xây dựng một công cụ như một dự án mã nguồn mở, xin vui lòng đăng một giải pháp lý tưởng cho bạn sẽ trông như thế nào, và những tính năng nào cần phải có.

+0

Một công cụ phổ biến cho việc này với một tệp XML có thể là cấu hình thực sự thú vị. – Franz

+1

@Franz vâng hoàn toàn, với các plugin cho các hoạt động tệp (tồn tại, có thể ghi, md5), mySQL và trình khách web để tìm nạp và xác thực các trang. Sẽ thực sự đáng giá! .... –

+0

Bạn sẽ làm gì nếu kiểm tra sức khỏe cho thấy có vấn đề? Gửi cho bạn một số email? – Mawg

Trả lời

0

Kiểm tra Nagios. Nó có thể được cấu hình để thăm dò các URL và quét tìm sự hiện diện/vắng mặt của các chuỗi, tìm kiếm các mã phản hồi nhất định và khá nhiều thứ khác. Nếu bạn phơi bày những thứ bạn muốn tìm kiếm trong một URL, Nagios có thể làm phần còn lại.

@Franz Nagios hỗ trợ chi phí tiền, nhưng phần mềm theo dõi lõi là miễn phí. Đó là kinda mô hình Redhat.

+0

Sậy nó một lần nữa, anh ta không nói điều đó, nhưng tôi tin rằng một thứ gì đó không thương mại sẽ tốt hơn (và điều này sẽ chỉ giúp với một phần anyways) :-( – Franz

+0

@trenton Chúc mừng, tôi biết Nagios và trong khi nó nhiều hơn các trận đấu Tôi đang tìm kiếm một cái gì đó để thả vào một trang web hoặc ứng dụng hiện có, thậm chí có thể chạy trên một gói lưu trữ được chia sẻ nhỏ, mà Nagios không thể làm. câu hỏi để làm cho điểm đó rõ ràng hơn nhiều. –

3

Câu hỏi thú vị, nhưng điều này khá rộng. Tôi đã không nhìn thấy một công cụ kiểm tra đơn vị nào mà tất cả các phụ trợ, midend và kiểm tra lối vào cùng một lúc. Tôi đã kiểm tra this list, nhưng không ai làm tất cả. Tuy nhiên, có một cách tiếp cận chung, xUnit (thử nghiệm hoàn toàn tự động).

Trình chặn chính là thử nghiệm phụ trợ là nền tảng/DB cụ thể và thử nghiệm đồng hồ đó là ngôn ngữ lập trình cụ thể. Và sau đó chưa kết hợp những hạn chế đó với thử nghiệm lối vào.Công cụ này sau đó sẽ phải hỗ trợ gần như tất cả các ngôn ngữ và nền tảng mà thế giới biết. Tôi không nghĩ rằng công cụ như vậy sẽ có sẵn trong thế giới nguồn mở. Đó là một điều không tưởng.

Về mặt lý thuyết, thực tế có thể có khung kiểm tra với khả năng của plugin, có thể dựa trên hệ tư tưởng xUnit, nhưng vẫn chưa viết/phát minh/mở nó. Bạn? Nó thực sự là một lỗ trên thị trường.

Bất kỳ cách nào, đối với thử nghiệm đơn vị giao diện người dùng (HTML/CSS/JS/biểu mẫu), tôi sẽ giới thiệu Selenium hoặc nếu bạn có tiền, TestComplete. Tôi đã thấy nó được sử dụng ở IBM vài năm trước, thật tuyệt vời khi thấy nó hoạt động và những người thử nghiệm rất hài lòng với điều này.

Để kiểm tra đơn vị midend (mã lập trình, logic nghiệp vụ), chỉ cần tiếp tục với các công cụ kiểm tra đơn vị ngôn ngữ lập trình cụ thể như PHPUnit cho PHP và JUnit cho Java.

Về kiểm tra đơn vị phụ trợ (DB, hệ thống tệp), tôi đã sử dụng PGTap cho PostgreSQL, nhưng cũng có các công cụ DB chung có sẵn cho số này như SQLUnit (tuy nhiên lần cuối được cập nhật gần 4 năm trở lại ...). Đối với các điều kiện hệ thống tệp đĩa cục bộ, bạn sẽ phải lấy các ngôn ngữ kịch bản lệnh cụ thể trên nền tảng.

0

Bạn có thể thực hiện tất cả các thao tác này với CruiseControl và phpUnderControl. Nhưng tất nhiên, bạn cần phải xác định tất cả các tác vụ bạn muốn thực thi để dự án của bạn vượt qua tất cả các kiểm tra.

http://topecoders.blogspot.com/2010/04/how-to-install-cruisecontrol.html

Với CruiseControl, bạn có thể thêm nhiều nhiệm vụ cần thực hiện cho mỗi xây dựng của dự án.

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