2014-05-08 5 views
7

उदाहरण के लिए, मैं AngularJS का उपयोग करके लागू दो लॉग इन उपयोगकर्ताओं के बीच चैट सुविधा का परीक्षण करना चाहता हूं।क्या एकाधिक ब्राउज़र सत्र इंटरैक्शन का परीक्षण करने के लिए प्रोटैक्टर का उपयोग किया जा सकता है?

परीक्षण को उचित क्रम में ब्राउज़र क्रियाओं के दो या दो से अधिक अलग सेट सत्यापित करने की आवश्यकता है। उदाहरण के लिए, उपयोगकर्ता ए लॉग इन करता है, उपयोगकर्ता बी लॉग इन करता है, उपयोगकर्ता ए देखता है बी लॉग इन है, उपयोगकर्ता ए उपयोगकर्ता बी चैट टेक्स्ट भेजता है, उपयोगकर्ता बी चैट टेक्स्ट प्राप्त करता है। उपयोगकर्ता बी उपयोगकर्ता ए

क्या यह कुछ ऐसा है जो प्रोटैक्टर का उपयोग करके किया जा सकता है? यदि नहीं, तो क्या कई ब्राउज़र सत्र वर्कफ़्लो स्वचालित रूप से परीक्षण करने का कोई और तरीका है?

+0

यह आपकी मदद कर सकता है http://stackoverflow.com/questions/20692008/protractor-run-multiple-tests-in-parallel-on- अलग-browsers –

+0

मुझे विश्वास नहीं है कि समानांतर में एक या अधिक चश्मे चलाना इस आवश्यकता को पूरा करेगा। मैंने आवश्यकताओं को स्पष्ट करने के लिए प्रश्न में नमूना वर्कफ़्लो जोड़ा। – softweave

उत्तर

10

अद्यतन यह सुविधा अंत में किया जा रहा है added देख example usage and docs और tests here या नीचे देखें:

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

ध्यान दें कि IE और सफारी कुकीज़ या कैश को अलग नहीं करेगा, इसलिए एक ही समय में अलग-अलग उपयोगकर्ताओं के साथ लॉगिन करने में सक्षम होने की उम्मीद न करें जब तक कि आपका सेलेनियम प्रदाता एक ग्रिड न हो जो हमेशा सॉसलैब्स या ब्राउज़रस्टैक जैसे क्लीन सत्र का उपयोग करता हो।

+0

एक परीक्षण में कई ब्राउज़र उदाहरणों का समर्थन करने की सुविधा प्रोटैक्टर 1.5.1 का हिस्सा है। – softweave

+0

इंगित करने के लिए धन्यवाद! उत्तर अपडेट किया गया;) –

+1

एक प्रोटैक्टर प्लगइन भी है जो प्रत्येक ब्राउज़र इंस्टेंस के लिए स्क्रीनशॉट बनाता है और परिणामों के अच्छे विज़ुअलाइजेशन प्रदान करता है - https://github.com/azachar/protractor-screenshoter-plugin। अस्वीकरण, मैं इसके लेखक हूं। – Andrej

4

आप परीक्षण के भीतर अतिरिक्त विंडो खोल सकते हैं और उन विंडो में कार्रवाइयों और दावों को निष्पादित कर सकते हैं। आप मानक वेबड्राइज एपीआई का उपयोग करके ऐसा करते हैं:

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

}); 

यदि आप सत्र कुकीज़ का उपयोग करते हैं तो यह आपके लिए काम नहीं कर सकता है। दोनों खिड़कियां एक ही कुकी मिल सकती हैं। यदि ऐसा है तो आप दोनों विंडोज़ में एक ही उपयोगकर्ता के रूप में लॉग इन करना समाप्त कर देंगे। एक वर्कअराउंड एक अलग डोमेन पर एप्लिकेशन के दूसरे उदाहरण तक पहुंच रहा है। उदाहरण के IP पते का उपयोग करने या अपने मेजबान फ़ाइल में एक नया डोमेन की स्थापना .. के लिए

+0

हे! मुझे कामकाज के लिए आपका विचार पसंद है * "आईपी पते का उपयोग करना या अपनी मेजबान फाइल में एक नया डोमेन स्थापित करना" * बहुत चालाक :) –

संबंधित मुद्दे

 संबंधित मुद्दे