2014-05-08 23 views
7

Ví dụ: tôi muốn thử nghiệm tính năng trò chuyện giữa hai người dùng đã đăng nhập được triển khai bằng AngularJS.Có thể sử dụng thước đo góc để thử nghiệm nhiều tương tác phiên trình duyệt không?

Kiểm tra cần xác minh hai hoặc nhiều bộ hành động trình duyệt riêng biệt xảy ra theo trình tự thích hợp. Ví dụ, người dùng A đăng nhập, người dùng B đăng nhập, người dùng A thấy B được đăng nhập, người dùng A gửi văn bản trò chuyện của người dùng B, người dùng B nhận được văn bản trò chuyện. người dùng B trả lời người dùng A.

Đây có phải là thứ có thể được thực hiện bằng thước đo góc không? Nếu không, có cách nào khác để tự động kiểm tra nhiều luồng công việc phiên trình duyệt không?

+0

Điều này có thể giúp bạn http://stackoverflow.com/questions/20692008/protractor-run-multiple-tests-in-allel-on-different-browsers –

+0

Tôi không tin chỉ chạy một hoặc nhiều thông số kỹ thuật song song sẽ đáp ứng yêu cầu này. Tôi đã thêm một luồng công việc mẫu vào câu hỏi để làm rõ các yêu cầu. – softweave

Trả lời

10

CẬP NHẬT Tính năng này cuối cùng đã bị added thấy example usage and docstests here hoặc xem dưới đây:

browser.get('http://www.angularjs.org'); 

// To create a new browser with url as 'http://www.angularjs.org': 
var browser2 = browser.forkNewDriverInstance(true); 

// Interaction in the first browser 
element(by.model(...)).click(); 

// Interaction in the second browser 
browser2.$('.css').click(); 

Lưu ý rằng trình duyệt IE và Safari sẽ không cô lập cookie hoặc bộ nhớ cache vì vậy đừng mong đợi có thể đăng nhập với những người dùng khác nhau cùng một lúc trừ khi nhà cung cấp selenium của bạn là một lưới luôn sử dụng một phiên sạch như SauceLabs hoặc BrowserStack.

+0

Tính năng hỗ trợ nhiều phiên bản trình duyệt trong một thử nghiệm là một phần của Protractor 1.5.1. – softweave

+0

Cảm ơn bạn đã chỉ ra! Câu trả lời được cập nhật;) –

+1

Ngoài ra còn có một trình cắm thêm thước đo góc để tạo ảnh chụp màn hình cho từng trường hợp trình duyệt và cung cấp hình ảnh đẹp về kết quả - https://github.com/azachar/protractor-screenshoter-plugin. Disclaimer, tôi là tác giả của nó. – Andrej

4

Bạn có thể mở các cửa sổ bổ sung trong thử nghiệm và thực thi các hành động và xác nhận trong các cửa sổ đó. Bạn thực hiện việc này bằng API webdriverjs chuẩn:

browser.getAllWindowHandles().then(function (handles) { 

    // handle of first window 
    var originalHandle = handles[0]; 

    // open new window 
    browser.executeScript('window.open("https://angularjs.org/", "second-window")'); 

    // switch to new window 
    browser.switchTo().window('second-window'); 

    // do something within context of new window 

    // switch to original window 
    browser.switchTo().window(originalHandle); 

    // do something within context of original window 

    // closes the current window 
    browser.executeScript('window.close()'); 

}); 

Điều này có thể không hoạt động nếu bạn sử dụng cookie phiên. Cả hai cửa sổ đều có thể nhận được cùng một cookie. Nếu vậy, bạn sẽ kết thúc đăng nhập với tư cách người dùng giống nhau trong cả hai cửa sổ. Một giải pháp khác là truy cập phiên bản thứ hai của ứng dụng trên một miền khác. Ví dụ sử dụng địa chỉ IP hoặc thiết lập một tên miền mới trong file host của bạn ..

+0

Xin chào! Tôi thích ý tưởng của bạn về cách giải quyết * "sử dụng địa chỉ IP hoặc thiết lập tên miền mới trong tệp host" * rất thông minh :) –

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