Trước hết, JMeter là một lựa chọn tốt để đưa vào CI vì nó có thể được chạy từ dòng lệnh và bạn có thể chuyển vào các biến khi bạn làm điều này. Tôi sẽ giới thiệu nó cho nhiệm vụ này.
Nói chung, tích hợp Perf. thử nghiệm vào CI là khó khăn. Bạn đã liệt kê nhiều lý do tại sao điều này là vì vậy bạn đã có một nửa cách có bởi vì bạn hiểu những hạn chế. Và đó là chà: nó có thể có Perf. xét nghiệm trong CI nhưng chỉ ở một mức độ hạn chế.
Tôi nghĩ rằng một cách tiếp cận tốt sau một số các nguyên tắc:
Bạn không thể chạy đầy tải (hoặc ngâm hoặc công suất) kiểm tra trong CI, nó không phải là thực tế. Các kết quả mang tính chủ quan và cần sự giải thích của con người và phải mất thời gian để chạy thử nghiệm. Nhưng bạn có thể chạy một bộ kiểm thử đơn giản hơn để đo thời gian phản hồi cho các yêu cầu và sau đó bạn có thể đánh giá các thời gian phản hồi này:
- Chống lại phạm vi NFR hoặc dự kiến - Tức là. Nên ít hơn 1 giây.
- Chống lại các kết quả trước đó - Tức là. Không nên lệch nhiều hơn 10% so với lần xây dựng cuối cùng.
Bạn cũng có thể chạy tải/hoàn thiện tự động. kiểm tra - ở mức tối đa - bên ngoài quá trình xây dựng. 'Semi CI'. Vì vậy, có thể bạn có thể tự động kiểm tra để chạy qua đêm và sau đó kiểm tra kết quả vào buổi sáng?
Lặp lại. Chỉ cần bắt đầu thực hiện và nhận kết quả và tinh chỉnh các bài kiểm tra và cách bạn diễn giải chúng theo thời gian. Giữ cho nó đơn giản và tập trung vào các khu vực có vẻ hữu ích. Không khởi động với một bản phô trương, giữ cho nó yên tĩnh cho đến khi bạn tự tin với quá trình và sau đó bắt đầu không xây dựng và nói với mọi người về nó - ban đầu, bạn có khả năng nhận được rất nhiều âm bản sai.
Kết quả của bạn Thực hiện việc này. Rất nhiều. CI là tất cả về thất bại sớm vì vậy nếu bạn đi mà như bạn kết thúc mục tiêu thì cách tốt nhất để đạt được nó là chạy thử nghiệm sớm và thường xuyên nhưng vấn đề với đó là bạn có nguy cơ bị chôn vùi trong dữ liệu. Vì vậy, một phương pháp hiệu quả để khủng hoảng dữ liệu và trình bày các thông tin có liên quan sẽ giúp đáng kể.
Bạn không thể tự động hóa toàn bộ quá trình xuống Cờ xanh lá cờ đỏ - nhưng bạn nên cố gắng đi xa con đường đó càng tốt.
Cuối cùng, đã có a very good talk do Perf dẫn đầu. thử nghiệm tại Google bao gồm chủ đề này. Bây giờ nó đã hơi cũ nhưng các nguyên tắc vẫn đứng vững. Ngoài ra, trong một vài tuần, tôi sẽ đến một số meetup nơi Channel4, một công ty truyền thông của Anh, sẽ nói về cách họ tiếp cận điều này - có thể bạn có thể yêu cầu một số trang trình bày.
Bạn đã xem plugin JMeter Maven chưa? Nó không phải là .net nhưng là maven dựa trên nó cắm vào máy chủ CI như Jenkins khá tốt. https://github.com/Ronnie76er/jmeter-maven-plugin – Ardesco