2009-03-13 34 views
16

Chúng tôi đang phát triển một ứng dụng dựa trên WPF khá lớn và muốn bao gồm một số thử nghiệm giao diện người dùng tự động trong bộ thử nghiệm của chúng tôi (đã có một số xét nghiệm đơn vị).Kinh nghiệm với giao diện người dùng tự động hóa và WPF

UI Automation Framework từ Microsoft một phần có vẻ như phù hợp hoàn hảo để khởi chạy và tương tác với ứng dụng trong quá trình thiết lập thử nghiệm một cách có lập trình. Tuy nhiên, tôi đã đấu tranh để tìm tài liệu tham khảo vững chắc cho các mẫu và kinh nghiệm với công nghệ, các bài báo và các mẫu nhỏ có sẵn trên MSDN là không đủ để thuyết phục tôi rằng đó là một sự lựa chọn vững chắc.

Vì vậy, không ai có kinh nghiệm thực tế sử dụng Khung công cụ tự động hóa giao diện người dùng trong bộ thử nghiệm của họ? Những gì là các caveats và gotchas? Bất kỳ thực hành tốt nhất khi viết kịch bản thử nghiệm, bạn có thể "ghi lại và phát lại" sang định dạng có thể viết được không, bạn nên tạo điều kiện cho thử nghiệm từ ứng dụng như thế nào, bạn kết hợp nó như thế nào trong bản dựng tự động? Chúng ta có nên nhìn theo một hướng khác với Khung Tự động hóa Giao diện người dùng không?

Hãy gửi bạn những trải nghiệm ở đây hoặc liên kết với một số tài liệu tham khảo tốt tôi có thể đã bỏ lỡ

+1

Câu hỏi này không nên đóng vì câu trả lời cung cấp thông tin dựa trên trải nghiệm thực tế với công nghệ. Với thử nghiệm tự động hóa là chủ đề khá nóng ngay bây giờ tôi đặt cược thông tin này có giá trị đối với nhiều người. –

Trả lời

7

nơi tôi làm việc, chúng tôi đã chỉ mới bắt đầu để đánh giá một số công cụ kiểm tra cho hệ thống của chúng tôi. Chúng tôi đã xem một công cụ có tên là white, sử dụng Khung công cụ tự động hóa giao diện người dùng. Lưu ý rằng màu trắng cũng có một chức năng ghi mặc dù tôi nghĩ rằng nó có vẻ của các vấn đề và vẫn đang được phát triển.

Những gì chúng tôi đã cố gắng thực hiện đã được thiết lập giống như các bài kiểm tra đơn vị tức là [TestFixture] [Test] v.v. thì chúng tôi có thể chạy chúng thông qua nunit cùng lúc với các bài kiểm tra đơn vị.

Chúng tôi nhận thấy rằng có thể khó truy cập vào một số thành phần trong cửa sổ của bạn, nhưng chưa có nhiều cơ hội để điều tra lý do.

Nếu bạn không ngại trả tiền cho phần mềm thì tôi sẽ giới thiệu TestComplete.

+0

TestComplete là công cụ nhấp và phát trong khi TestStack.White là khung công tác C#. Đây là những giải pháp hoàn toàn khác nhau với các giải pháp trước đây được nhắm mục tiêu vào người thử nghiệm và người thứ hai trên các lập trình viên. –

6

Tôi đang trong quá trình thực hiện Tự động hóa giao diện người dùng của ứng dụng WPF tại nơi làm việc. Tôi đang sử dụng White và IronRuby và nó hoạt động rất tốt. Tôi đã viết lên cách tôi đã thực hiện tại đây: http://www.natontesting.com/2010/02/17/how-to-test-a-wpf-app-using-ironruby-and-white/

+0

Thực sự tốt đẹp writeup, Nat. Thumbs up from me –

+1

Đấu vật với màu trắng trở nên quá đau đớn nên tôi đã viết bewildr (https://github.com/natritmeyer/bewildr). Nó đang được sử dụng tại BBC và làm việc tuyệt vời! –

2

Ban đầu chúng tôi đã chuyển sang màu trắng và sau đó chuyển đi khỏi nó. Nó cố gắng chung chung và trừu tượng trên API Win32, Winforms, ứng dụng Java và API tự động hóa giao diện người dùng MS. API tự động hóa giao diện người dùng MS cũng đang cố gắng chung chung và trừu tượng trên win32 api và winforms và WPF, vì vậy bạn kết thúc trong một kịch bản "mẫu số thấp nhất-chung-thấp nhất-chung-mẫu số". Kết quả của việc tìm kiếm phần tử White API đơn giản là không đủ linh hoạt để tìm các phần tử giao diện người dùng khác nhau mà chúng ta cần tìm, và nó không tiết lộ đủ các yếu tố khung tự động hóa UI cơ bản để chúng ta làm bất cứ điều gì hữu ích với nó.

Chúng tôi đã kết thúc bằng một loại khung công việc tự nhiên; Chúng tôi sử dụng khung MS UIAutomation trực tiếp, nhưng có các phương thức mở rộng và các lớp trợ giúp để xử lý các kịch bản mà nó không giải quyết. (Đầu vào Bàn phím và Chuột, chủ yếu).

Lưu ý: các tập lệnh thử nghiệm và khung trang chủ của chúng tôi đều sử dụng IronRuby. Khả năng của Ruby để thêm các phương thức vào các lớp hiện có và cú pháp linh hoạt của nó (kết hợp với method_missing) là tuyệt vời cho loại điều này.

+1

Edwards, tại sao bạn không thử API Microsoft.VisualStudio.TestTools.UITesting (một cái được sử dụng trong Kiểm tra giao diện người dùng được mã hóa đằng sau hiện trường)? Tôi hỏi vì tôi vừa chuyển sang cái này từ UIA. – atiyar

+0

@Nero: Ba lý do. Thứ nhất, nó không tồn tại cho đến khi phát hành của studio hình ảnh 2010. Thứ hai, bạn cần phải mua phiên bản Premium của VS thay vì một tiêu chuẩn, đó là một bước nhảy vọt HUGE về giá, đặc biệt là ở New Zealand. Thứ ba, tôi đã xem xét công cụ kiểm tra giao diện người dùng được mã hóa trực quan và không hề thích nó. Nó quá phức tạp, không dễ sử dụng và khó gỡ lỗi. Bản thân mã API cơ bản có thể đẹp hơn so với công cụ tạo ảnh trực quan, nhưng tôi không nhìn vào lúc đó vì tôi không nhận ra bạn có thể sử dụng nó một cách độc lập –

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