2014-09-09 16 views
9

मैंने हर जगह देखा है लेकिन ऐसा लगता है कि मैं केवल यह पूछने वाला व्यक्ति हूं।प्रोटैक्टर ब्राउज़र सत्र को जीवित रखें

प्रोटैक्टर जीवित में ब्राउज़र सत्र को कैसे बनाए रखें, हर बार जब मैं परीक्षण चलाता हूं तो लॉगिन करना नहीं है। मैं onPrepare में लॉगिन लॉजिक्स डाल दिया है कि हर परीक्षण समारोह

onPrepare: function() { 
    var mymodule = require("./e2e/mymodule"); 
    mymodule.login(); 
    mymodule.switchToProject("someproject"); 
} 

लेकिन फिर भी में प्रवेश करने के हर बार जब मैं चांदा जो मैं छोड़ चाहते हैं चलाने के लिए 3-4 सेकंड लेता है के लिए लॉगिंग से बचने के लिए। कोई विचार ?

मैं chromeOnly: true सेटिंग के लिए एक समाधान है, लेकिन अलग सेलेनियम सर्वर के लिए एक समाधान पसंद करते हैं ठीक होगा और साथ ही

+0

हा! मेरे e2e सूट हजारों परीक्षण हैं और ~ 30 मिनट लेते हैं लेकिन आप 3-4 सेकंड के लिए शिकायत करते हैं? हे, कर्म के साथ केवल यूनिट परीक्षण ही इस तरह की गति को लक्षित कर सकता है, प्रोटैक्टर ई 2 हर बार नए सत्र ब्राउज़र और सत्र कैश पर शुरू करने के लिए है और कम से कम पहले चरण के रूप में हर ई 2 रन को फिर से लॉगिन करें। –

+0

कहा जा रहा है कि, आपको प्रत्येक प्रोफ़ाइल पर क्रोम प्रोफ़ाइल का पुन: उपयोग करने का एक तरीका खोजने की आवश्यकता है, उसी प्रोफ़ाइल का उपयोग करके ब्राउज़र को कुकीज़ रखने की अनुमति मिल जाएगी। –

+1

धन्यवाद आपकी टिप के लिए लियो मैं एक विशिष्ट क्रोम प्रोफाइल का पुन: उपयोग करने के लिए वेब देखेंगे। इस बीच मैंने एक और अच्छा समाधान सोचा है, एक एपीआई कुंजी के माध्यम से लॉगिन लागू करने के लिए, जिसमें केवल एक लाइन ब्राउज़र की आवश्यकता होगी .get() – papoola

उत्तर

7

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

यह कहा गया है कि क्रोम से प्रोटैक्टर परीक्षणों के प्रत्येक भाग के लिए उसी प्रोफ़ाइल (कुकीज़ और सभी सेटिंग्स सहित) का पुन: उपयोग करने का एक तरीका है। अपने protractor.conf.js कुछ इस तरह आप क्या करेंगे में:

capabilities: { 
    'browserName': 'chrome', 
    'chromeOptions': { 
     'args': ['--user-data-dir=/a/random/path'] 
    } 
} 

'args' यहाँ ऑपरेटिव हिस्सा है। यह आपको प्रारंभ होने पर क्रोम के प्रोटैक्टर के संस्करण में कमांड लाइन तर्क देता है (उदाहरण के लिए, आप स्टार्टअप पर क्रोम को अधिकतम करने के लिए '--start-maximized' में पास कर सकते हैं)।

/a/random/path को अपने सिस्टम पर किसी भी फ़ाइल पथ (रूट से शुरू) के साथ बदलें। बस सुनिश्चित करें कि आपके द्वारा संदर्भित फ़ोल्डर्स बनाए गए हैं। आपको अपने क्रोम प्रोफाइल पथ का उपयोग करने की आवश्यकता नहीं है - यह केवल अनावश्यक परेशानी है। कहीं फ़ोल्डर बनाएं और इसका इस्तेमाल करें।

जब प्रोटैक्टर क्रोम शुरू करता है, तो इसकी प्रोफ़ाइल आपके द्वारा निर्दिष्ट स्थान पर होगी, और जब तक आपका पथ अपरिवर्तित रहता है तब तक इसका उपयोग जारी रहेगा।

ध्यान रखें कि यह ब्राउज़र ऑपरेशन है, जो सेलेनियम या प्रोटैक्टर क्या कर रहा है उससे संबंधित नहीं है। मुझे नहीं पता कि फ़ायरफ़ॉक्स या अन्य ब्राउज़रों के साथ ऐसा करने का कोई तरीका है, क्योंकि प्रत्येक व्यक्ति के पास उपयोगकर्ता प्रोफाइल को संग्रहीत करने का अपना तरीका स्पष्ट रूप से है।

+0

अच्छा जवाब, अच्छी तरह से लिखा –

+0

हाँ बहुत अच्छा जवाब। मुझे नहीं पता कि मैं इस जवाब का उपयोग कर रहा हूं लेकिन सिर्फ समर्थन के लिए वोट दिया गया। – scaryguy

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