2011-10-03 15 views
5

सेलेनियम में डेटा आइटम अस्थायी रूप से स्टोर करने की क्षमता है और बाद में उन्हें बाद के परीक्षणों में पुनर्प्राप्त करने की क्षमता है, उदा।परीक्षणों के बीच मूल्यों को स्टोर करने के लिए सेलेनियम का उपयोग कैसे करें

storeText | @id='ctl00_ContentPlaceHolder1_FormView1' | someValue 

यह एक परीक्षण के भीतर अच्छी तरह से काम करता है और उसी टेस्ट सूट में परीक्षणों के बीच भी काम करता है जब परीक्षण सीमाओं में एक मूल्य आगे बढ़ने की आवश्यकता होती है। दुर्भाग्यवश यह टेस्ट सूट के बीच काम नहीं करता है (जो हमारे आवेदन के लिए एक आवश्यकता है जिसमें एक ही ऑब्जेक्ट का जिक्र करने वाले कई वर्कफ़्लो शामिल हैं)। टेस्ट सूट सीमाओं में मूल्यों को स्टोर करने के लिए सेलेनियम का उपयोग कैसे किया जा सकता है?

उत्तर

4

जावास्क्रिप्ट का उपयोग कर ब्राउज़र के स्थानीय संग्रहण में सेलेनियम टेस्ट से मूल्यों को स्टोर करना संभव है, उदा।

getEval | this.browserbot.getUserWindow().localStorage.setItem("someValue",storedVars['someValue']) 
assertEval | this.browserbot.getUserWindow().localStorage.getItem("someValue") | ${someValue} 
storeEval | this.browserbot.getUserWindow().localStorage.getItem("assetLabel") | someValue 

इस मामले में, this.browserbot.getUserWindow() आवेदन की खिड़की देता है: यदि पहले से एक मूल्य someValue को संग्रहीत किया गया था। यह स्थानीय संग्रहण में कुछ वैल्यू स्टोर करेगा जहां से इसे बाद में सेलेनियम संग्रहीत चर में पुनर्प्राप्त किया जा सकता है।

+0

क्या यह कार्य परीक्षण सूट के बीच ब्राउज़र प्रोफ़ाइल रीसेट हो जाएगा? या क्या आपको एक स्थिर प्रोफ़ाइल का उपयोग करने के लिए सेलेनियम सेट करना होगा? – artbristol

+0

@artbristol: यह "रीसेट" से आपका क्या मतलब है इस पर निर्भर करता है। यदि आप अपने व्यक्तिगत डेटा को साफ़ करने के लिए फ़ायरफ़ॉक्स को बताते हैं, तो यह खो जाएगा। लेकिन सेलेनियम आईडीई कभी ऐसा नहीं करता है, इसलिए आम तौर पर, यह अभी भी वहां होगा। –

+0

@Ross लेकिन जब भी आप एक परीक्षण सूट चलाते हैं तो क्या एक नया फ़ायरफ़ॉक्स प्रोफ़ाइल से सेलेनियम शुरू नहीं होता है? मैंने सोचा होगा कि स्थानीय संग्रहण उस से बच नहीं पाएगा। – artbristol

0

आप अपने सेलेनियम परीक्षण चला रहे कोड में दृढ़ता को भी लागू कर सकते हैं। यदि आप आरसी का उपयोग कर रहे हैं, तो यह काफी मामूली होगा। (यानी, डालने/अपडेट करने के लिए सीधे डेटाबेस क्वेरीज और फिर पुनर्प्राप्त करें)।

यदि आप सेलेनीज़ का उपयोग कर रहे हैं और दृढ़ता के लिए एपीआई तक पहुंच नहीं है, तो आप डाटाबेस में डेटा स्टोर करने के लिए एक त्वरित और गंदे छोटे वेबपृष्ठ को भी चाबुक कर सकते हैं और फिर इसे बाद के परीक्षण रनों के लिए वापस पढ़ सकते हैं। जाहिर है यह आदर्श नहीं है, लेकिन अगर आप अपने परीक्षणों से सीधे एक स्थिरता स्टोर तक नहीं पहुंच पा रहे हैं तो इसे काम करना चाहिए ..

+0

धन्यवाद और हाँ मुझे यकीन है कि विकल्प हैं लेकिन यह विशेष रूप से सेलेनियम आईडीई है, यानी यह फ़ायरफ़ॉक्स में चल रहा है और उपयोगकर्ता डेवलपर्स नहीं हैं। स्थानीय संग्रहण का उपयोग करना उनकी समस्या के लिए एक आसान समाधान है। –

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

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