2009-07-13 42 views
5

Tôi đã làm việc trên một thành phần Flex và tôi muốn viết một số thử nghiệm tự động cho nó. Vấn đề là, các công cụ kiểm tra giao diện người dùng mà tôi đã xem (FlexMonkeySelenium Flex API) không mô phỏng "đủ":Flex: Kiểm tra các thành phần giao diện người dùng ở cấp nhấp chuột?

Hầu hết các lỗi phát sinh liên quan đến cách giao dịch Flex kéo và thả , những thư viện này không thể mô phỏng đủ chính xác. Ví dụ, tôi cần kiểm tra trường hợp có sự kiện "thả" xuất hiện ở nửa dưới của một thành phần - FlexMonkey và Selenium Flex API không thể thực hiện điều đó (chúng có thể mô phỏng sự kiện chuột, nhưng chúng sẽ không bao gồm tọa độ).

Vì vậy, có cách nào "tốt" để tự động hóa loại thử nghiệm đó không?

Chỉnh sửa: Sau nhiều nghiên cứu, có vẻ như phần mềm duy nhất có thể thực hiện điều này là iMacros, chỉ có Windows và giao diện là ... Thiếu. Vì vậy, tôi sẽ là viết của riêng tôi. Về cơ bản, nó sẽ đặt một giao diện HTTP trên java.awt.Robot để mã (bằng bất kỳ ngôn ngữ nào) có thể mô phỏng các sự kiện chuột/bàn phím. Nếu bạn quan tâm, hãy PM tôi và tôi sẽ cập nhật cho bạn.

Chỉnh sửa 2: Tôi đã xuất bản phiên bản đầu tiên của khung tôi đã viết, Blunderbuss, qua tại BitBucket: http://bitbucket.org/wolever/blunderbuss/. Bạn sẽ cần Jython để chạy nó (http://www.jython.org/), nhưng sau đó ví dụ flex-client sẽ hoạt động.

Video của blunderbuss sống qua tại Vimeo:

Tại thời điểm này vẫn là một bằng chứng của khái niệm, như tôi đã không có chu kỳ để làm sạch nó và làm cho nó dễ sử dụng hơn ... Nhưng có lẽ đủ người làm phiền tôi sẽ cho tôi thời gian đó :)

Trả lời

4

Tôi đã sử dụng Eggplant để kiểm tra các ứng dụng Flash và AIR mà không phải thêm bất kỳ móc nào vào mã. Đó là một công cụ tuyệt vời nhưng nó khá đắt. Nó mô phỏng một người dùng thực sự bằng cách VNC-ing vào một hệ thống và sử dụng nhận dạng hình ảnh - trong số những thứ khác - để tương tác với các ứng dụng.

+0

hay quá cảm ơn. –

1

Tôi không bao giờ phải sử dụng nó trong Flex nhưng gần đây tôi đã tình cờ gặp một số thông tin về các gói tự động trong MS Surface SDK ... sau khi xem xét các hành vi người dùng tự động lớp đó có thể được sử dụng để kiểm tra tức là di chuyển chuột giả điểm này, thực hiện hành động này. Khi bạn đang sử dụng Flex mx.automation packages and classes. Đoán của tôi (và hy vọng) là bạn có thể đạt được những gì bạn muốn bằng cách sử dụng các lớp này.

+0

Rất tiếc, gói mx.automation không thể thực hiện những gì tôi cần. Nó dựa vào các thành phần nói với nó những gì đã xảy ra (ví dụ, nút sẽ nói "Tôi đã được nhấp"), nhưng tôi cần phải nhận được ở mức thấp hơn thế. –

+0

oh well .. đáng để thử –

1

Bạn cũng có thể thử tự động phím nóng - chương trình tương tự như chương trình chỉnh sửa macro nhưng đã được chứng minh là rất hiệu quả và bạn có thể viết tập lệnh và thiết lập rất dễ dàng.

+0

Thật không may là nó chỉ dành cho Windows ... :( –

2

Tôi chắc chắn quan tâm đến lớp Java tùy chỉnh của bạn và (mặc dù tôi không phải là giỏi nhất ở Java (chưa ...)), tôi sẵn sàng trợ giúp nếu bạn đang nghĩ đến việc cộng tác này.

Đối với Flash MouseEvents. Thật không may, có thực sự không phải là một cách chính xác để mô phỏng kinh nghiệm kéo/thả trong Flash. MouseEvents, khi được tạo bởi chuột, được xử lý theo cách rất khác so với các sự kiện thông thường và trong khi bạn có thể mô phỏng hành động bằng cách chuyển các sự kiện vào các chức năng xử lý hoặc bằng cách đặt trình điều khiển kích hoạt DragEvent mới (DragEvent.DRAG_DROP ..., nó sẽ không giống như việc người dùng tương tác với nó Và đối với một số chức năng (như truy cập vào clipboard), không có gì bên trong Flash sẽ đạt được mục tiêu của bạn.

Thành thật mà nói, có lẽ bạn đang đi đúng hướng - sử dụng thứ gì đó không được viết bằng Flash để điều khiển các sự kiện chuột giả có lẽ là cách tốt nhất của bạn.

+0

Cảm ơn bạn đã bình luận, Christopher Tôi đã cập nhật câu hỏi với một liên kết đến Blunderbuss, khung kiểm tra mà tôi đã bắt đầu –

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