2008-09-18 42 views
14

Có ai tìm thấy cách chạy thử nghiệm Selenium RC/Selenium Grid, viết bằng C# song song không?Có ai tìm thấy một cách để chạy thử nghiệm C# Selenium RC song song không?

Tôi hiện có một bộ thử nghiệm khá lớn được viết bằng trình điều khiển C# của Selenium RC. Chạy toàn bộ bộ thử nghiệm mất hơn một giờ để hoàn thành. Tôi thường không phải chạy toàn bộ bộ phần mềm vì vậy nó không phải là một mối lo ngại cho đến bây giờ, nhưng đó là điều mà tôi muốn có thể làm thường xuyên hơn (ví dụ như một phần của bản dựng tự động)

Tôi đã dành một số thời gian gần đây poking xung quanh với các dự án Selenium Grid có mục đích cơ bản là để cho phép các xét nghiệm để chạy song song. Thật không may, có vẻ như các plugin TestDriven.net mà tôi đang sử dụng chạy các bài kiểm tra serially (ví dụ, cái khác). Tôi giả định rằng NUnit sẽ thực hiện các bài kiểm tra trong một thời trang tương tự, mặc dù tôi đã không thực sự thử nghiệm điều này.

Tôi đã nhận thấy rằng NUnit 2.5 beta đang bắt đầu nói về chạy thử nghiệm song song với pNUnit, nhưng tôi chưa thực sự làm quen với dự án để biết chắc chắn liệu điều này có hiệu quả hay không.

Một tùy chọn khác mà tôi đang cân nhắc là tách bộ thử nghiệm thành các thư viện khác nhau, đồng thời cho phép tôi chạy thử nghiệm từ mỗi thư viện một cách đồng thời, nhưng tôi muốn tránh điều đó nếu có thể vì tôi không tin điều này là hợp lệ lý do cho việc chia tách bộ thử nghiệm.

Trả lời

0

Tôi không biết nếu không có câu trả lời đếm như một câu trả lời nhưng tôi muốn nói rằng bạn đã nghiên cứu tất cả mọi thứ và bạn thực sự đã đưa ra 2 giải pháp khả thi ...

  • thử nghiệm Suite chạy thử nghiệm song song
  • Chia bộ thử nghiệm thành

Tôi đang thua lỗ cho bất kỳ điều gì khác.

1

Tôi đã viết PNUnit như một phần mở rộng cho NUnit gần ba năm trước và tôi rất vui khi thấy nó cuối cùng đã được tích hợp vào NUnit.

Chúng tôi sử dụng nó hàng ngày để kiểm tra phần mềm của chúng tôi theo các bản phân phối và kết hợp khác nhau. Chỉ cần đưa ra một ví dụ: chúng tôi đã thử nghiệm các bài kiểm tra nặng (bài kiểm tra dài) với khoảng 210 bài kiểm tra. Mỗi người trong số họ thiết lập một máy chủ và chạy một khách hàng trong dòng lệnh chạy một số hoạt động (lên đến 210 kịch bản). Vâng, chúng tôi sử dụng cùng một bộ để chạy các bài kiểm tra trên các kết hợp Linux khác nhau và các biến thể cửa sổ, cũng như các kết hợp như máy chủ cửa sổ với máy khách linux, windows xp, vista, bộ kiểm soát miền, ngoài miền và Sớm. Chúng tôi sử dụng cùng một tệp nhị phân và sau đó chỉ có "tác nhân" được khởi chạy ở một vài hộp.

Chúng tôi sử dụng cùng một nền tảng cho: cân bằng tải tải thử nghiệm -> Ý tôi là, chạy theo khối nhanh hơn. Chạy nhiều kết hợp cùng một lúc và điều tôi nghĩ thú vị hơn: xác định các kịch bản đa khách hàng: hai khách hàng đợi máy chủ khởi động, sau đó khởi chạy các hoạt động, đồng bộ với nhau và cứ tiếp tục như vậy. Chúng tôi cũng sử dụng PNUnit để kiểm tra tải (hàng trăm hộp đối với một máy chủ đơn lẻ).

Vì vậy, nếu bạn có bất kỳ câu hỏi nào về cách thiết lập (điều đó không đơn giản, tôi sợ), đừng ngần ngại hỏi.

Ngoài ra tôi đã viết một bài báo từ lâu về nó tại DDJ: http://www.ddj.com/architect/193104810

Hy vọng nó giúp

5

tôi đang làm việc trên điều này rất và đã tìm thấy Gallio xét nghiệm mới nhất có thể lái xe mbUnit song song. Bạn có thể điều khiển chúng trên một trung tâm Selenium Grid duy nhất, có thể có một số máy chủ điều khiển từ xa đang nghe.

Tôi đang sử dụng latest nightly from Gallio để nhận được ParallelizableAttributeDegreeOfParallelismAttribute.

Điều gì đó tôi đã nhận thấy là tôi không thể dựa vào TestSetTestTeardown được phân tách các thử nghiệm song song. Bạn sẽ cần phải xét nghiệm để tìm một cái gì đó như thế này:

[Test] public void Foo(){ 
    var s = new DefaultSelenium("http://grid", 4444, "*firefox", 
           "http://server-under-test"); 
    s.Start(); 
    s.Open("mypage.aspx"); 
    // Continue 
    s.Stop(); 

} 

Sử dụng thuộc tính [SetUp] để bắt đầu phiên Selenium đã gây ra các xét nghiệm để không nhận được phiên từ xa từ s.Start().

+0

Cảm ơn bạn đã trả lời. Tôi đã rời khỏi dự án này trong thời gian này, nhưng khi tôi quay lại, tôi sẽ đưa ra giải pháp của bạn một shot! –

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