2009-05-05 37 views
9

Chúng tôi sử dụng UI Automation và Nunit để tạo kiểm tra giao diện người dùng cho ứng dụng WPF. Chúng tôi đã tạo các thử nghiệm hoạt động tốt khi bạn chạy chúng từ máy cục bộ. Những thử nghiệm không bao giờ chạy thành công trên máy chủ xây dựng của chúng tôi (sử dụng TeamCity). Xây dựng luôn treo sau khi mở cửa sổ ứng dụng. Nhưng nếu tôi đăng nhập (từ xa máy tính để bàn), trên máy chủ xây dựng của chúng tôi tất cả các bài kiểm tra tự động hóa giao diện người dùng cũng chạy thành công. Vì vậy, tôi đoán rằng nó có thể có một cái gì đó để làm với chạy phiên cửa sổ đang hoạt động. Bất kỳ ý tưởng làm thế nào để thuyết phục máy chủ xây dựng của chúng tôi để tạo phiên cửa sổ hoạt động hoặc bất kỳ giải pháp khác để làm cho những thử nghiệm chạy trên máy chủ xây dựng?Chạy kiểm tra tự động hóa giao diện người dùng trên máy chủ xây dựng

Trả lời

3

Bạn không có nhiều tùy chọn. Tôi sẽ liệt kê hai tôi biết, tùy chọn ưa thích nhất như:

  • Thiết lập một máy ảo về xây dựng máy chủ của bạn. Các bản dựng của bạn được thực thi trong máy ảo. Bạn có thể khóa máy chủ (aka buildserver của bạn) giữ mọi thứ an toàn.
  • Luôn để người khác đăng nhập. Lỗi này tạo ra sự cố bảo mật. Bạn có thể giảm bớt vấn đề này một chút bằng cách loại bỏ chuột, bàn phím và màn hình và chỉ truy cập buildserver thông qua RDP hoặc một cái gì đó tương tự.

Sửa

Hãy xem TestComplete FAQ mục này: TestComplete có thể thực hiện các kịch bản khi máy tính bị khóa?

+1

Chúng tôi thực hiện tất cả các bản dựng trong máy ảo trên máy chủ xây dựng của chúng tôi. Và tất cả các thử nghiệm đều chạy dưới tài khoản cục bộ (không phải hệ thống). Nó không giải quyết được vấn đề. Giữ người nào đó đăng nhập mọi lúc không phải là một lựa chọn. Như tôi đã nói chúng ta có 3 máy ảo, nơi mà bản build này có thể chạy. Vì vậy, mỗi lần xây dựng, hãy chọn vm nhanh nhất có sẵn. Người dùng cục bộ trên vm thường đăng nhập, nhưng chúng tôi không thể chắc chắn rằng nó không bị khóa. Và chúng tôi thực sự muốn tự động hóa quy trình này nhiều nhất có thể, vì vậy việc đăng nhập thủ công là tùy chọn ít hấp dẫn nhất. – andreja

+0

@andreja, tôi đã cập nhật câu trả lời bằng liên kết tới phần Hỏi & đáp của Testcomplete. Tôi nghi ngờ có bất kỳ cách nào khác xung quanh điều này. Bạn phải giữ một người nào đó đăng nhập. Tôi không thấy nơi này đặt ra một vấn đề an ninh khi máy ảo của bạn được "mở khóa" và máy chủ lưu trữ là "bị khóa" (nhưng tôi không phải là quản trị viên hệ thống). –

+0

@andreja: Nếu bạn muốn tự động đăng nhập, bạn có thể đặt một vài giá trị khóa đăng ký và người dùng xây dựng của bạn sẽ được đăng nhập sau khi máy ảo xây dựng được khởi động. Nếu bạn muốn, tôi có thể tra cứu các phím reg theo. –

1

OK, tôi chỉ đoán ở đây.

Hãy thử và chạy dịch vụ TeamCity với người dùng máy chủ xây dựng cục bộ thay vì tài khoản hệ thống. Có thể bạn phải đăng nhập bằng tài khoản đó một lần, trước khi bắt đầu xây dựng mới.

+0

Chúng tôi đã thử điều đó.Khi tôi nói nếu tôi đăng nhập (máy tính từ xa), trên máy chủ của chúng tôi, tất cả các kiểm tra Tự động hóa Giao diện người dùng cũng chạy thành công, tôi đã đăng nhập với tư cách người dùng đó và tất cả các thử nghiệm đang chạy dưới người dùng đó. Vấn đề là, thứ hai khi người dùng này bị khóa kiểm tra thất bại. Họ cũng thất bại nếu tôi chạy chúng trên máy địa phương và khóa máy tính trong khi chạy. – andreja

1

Nó definatley âm thanh như bạn cần chạy thử nghiệm của bạn với một phiên tương tác như trái ngược với một dịch vụ. Việc thêm "Cho phép dịch vụ tương tác với máy tính để bàn" có thể hữu ích, nhưng điều này không được hỗ trợ trong Vista rõ ràng hơn.

Nếu bạn có thể chạy các bản dựng tương tác của mình như một dòng lệnh, không phải là một serivice cũng nên hoạt động.

Chúng tôi đã sử dụng thử nghiệm UIAutomation của chúng tôi bằng cách sử dụng đại lý tải trực quan studo 2008 để phân phối chúng, chạy như một công cụ dòng lệnh trên máy ảo không có vấn đề gì.

Tôi cũng đồng ý rằng bạn có lẽ không nên chạy thử nghiệm giao diện người dùng trên máy chủ xây dựng là một phần của bản dựng hàng ngày của bạn.

+1

Cảm ơn bạn nhưng khi bạn đề cập đến các dịch vụ không còn được phép tương tác với máy tính để bàn của người dùng trong Vista và Windows Server 2008. Chúng tôi sử dụng máy chủ Windows 2008. Chạy như người dùng bàn điều khiển cũng khóa máy tính để bàn và xây dựng không thành công. – andreja

0

Xây dựng luôn treo sau khi mở cửa sổ ứng dụng.

Thử nghiệm khởi tạo giao diện người dùng? Điều đó sẽ không hoạt động, ví dụ: nếu bạn nhận được một hộp thoại phương thức, bản dựng sẽ treo. Đây là lý do mẫu MVP được phát minh, để cô lập mã trình bày hoạt động từ một khung nhìn cụ thể.

Bạn có đang sử dụng chế độ xem giả trong các thử nghiệm tự động của mình không?

+0

Tôi không tin vào sẽ không làm việc :) Chúng tôi không sử dụng chế độ xem giả. – andreja

+1

Mặc dù việc thiết kế mã giao diện người dùng của bạn có thể thử nghiệm giải quyết nhiều vấn đề, vẫn có một số trường hợp bạn muốn kiểm tra những thứ đơn giản yêu cầu môi trường tương tác để thử nghiệm có ý nghĩa. (Không nhất thiết phải kiểm tra đơn vị, nhưng bạn cũng muốn tự động hóa các bài kiểm tra tích hợp của mình, phải không?) –

+0

Đôi khi bạn chỉ muốn kiểm tra xem việc nhấp vào nút có mở hộp thoại thích hợp không. (nghĩa là bạn muốn kiểm tra giao diện người dùng). – BrainSlugs83

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