2014-05-08 13 views
7

Örneğin, AngularJS kullanılarak uygulanan iki giriş yapmış kullanıcı arasında bir sohbet özelliğini test etmek istiyorum. Testin, uygun sırayla gerçekleşen iki veya daha fazla ayrı tarayıcı eylemi kümesini doğrulaması gerekir. Örneğin, A kullanıcısı oturum açar, kullanıcı B oturum açar, A kullanıcısı B giriş yapar, A kullanıcısı kullanıcı B sohbet metnini gönderir, B kullanıcısı sohbet metnini alır. kullanıcı B kullanıcısına yanıt verir A.İletici çoklu tarayıcı oturumu etkileşimlerini test etmek için kullanılabilir mi?

Bu, iletici kullanılarak yapılabilecek bir şey midir? Değilse, birden çok tarayıcı oturumu iş akışını otomatik olarak test etmenin başka bir yolu var mı?

+0

Bu size yardımcı olabilir http://stackoverflow.com/questions/20692008/protractor-run-multiple-tests-in-parallel-on-different-browsers –

+0

Sadece bir veya daha fazla özelliği paralel olarak çalıştırdığımı düşünmüyorum Bu gerekliliği yerine getirecek. Gereksinimleri açıklığa kavuşturmak için soruya örnek bir iş akışı ekledim. – softweave

cevap

10

GÜNCELLEME Bu özellik nihayet olmak etti addedexample usage and docs görmek ve tests here veya aşağıya bakın:

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(); 

Not olduğunu IE ve Safari çerezleri veya önbelleği izole etmeyeceği için, aynı zamanda farklı kullanıcılarla oturum açmayı da beklemeyin; selenyum sağlayıcınız her zaman SauceLabs veya BrowserStack gibi temiz bir oturum kullanan bir ızgara değilse.

+0

Tek bir testte birden fazla tarayıcı örneğini destekleyen özellik, İletici 1.5.1'in bir parçasıdır. – softweave

+0

İşaretlediğiniz için teşekkürler! Cevap güncellendi;) –

+1

Ayrıca, her tarayıcı örneği için ekran görüntüleri oluşturan ve sonuçların güzel görselleştirmelerini sağlayan bir iletici eklentisi de vardır - https://github.com/azachar/protractor-screenshoter-plugin. Feragatname, ben bunun yazarıyım. – Andrej

4

Bir testte ek pencereler açabilir ve bu pencerelerde eylemleri ve onaylamaları yürütebilirsiniz. Bunu, standart webdriverjs API'lerini kullanarak yaparsınız: Oturum çerezleri kullanıyorsanız, bu sizin için işe yaramayabilir. Her iki pencere de aynı çerezi alabilir. Eğer öyleyse, her iki pencerede aynı kullanıcı olarak giriş yapacaksınız. Bir geçici çözüm, uygulamanın ikinci örneğine farklı bir etki alanında erişiyor. Örneğin .. IP adresini kullanarak veya ana dosyasında yeni bir etki alanı kurmak için

+0

Hey! Geçici çözüm için fikrinizi beğendim * "IP adresini kullanarak veya hosts dosyanızda yeni bir etki alanı ayarlayarak" * çok akıllı :) –