2015-11-20 10 views
12

मैं वर्तमान में टेस्टएनजी और जावा के साथ सेलेनियम का उपयोग करके अपने परीक्षणों को स्वचालित करने पर काम कर रहा हूं। परीक्षण चलने के दौरान मैं स्क्रीनशॉट लेने में सक्षम हूं, लेकिन ऐसी कुछ स्थितियां हैं जहां परीक्षा उत्तीर्ण होती है जब आदर्श रूप से विफल होना चाहिए था।जावा का उपयोग कर स्वचालित परीक्षणों को कैसे स्क्रीनकास्ट करें?

तो, क्या कोई जावा उपकरण है जो चल रहे सेलेनियम परीक्षणों को रिकॉर्ड करने में मदद कर सकता है?

असल में, मैं अपने ढांचे में स्क्रीन-कास्ट जोड़ना चाहता हूं। मैंने वेब/एसओ पर बहुत कुछ खोजा लेकिन कोई प्रासंगिक संसाधन नहीं मिला। किसी भी मदद या सुझाव का स्वागत है।

+0

ठीक 2 questons। क्या आपका मतलब स्क्रीनकास्ट द्वारा एक वीडियो रिकॉर्ड करना है? क्या आप ग्रिड का उपयोग कर रहे हैं? – Shamik

+0

हां। वीडियो रिकॉर्ड करें। ग्रिड का उपयोग नहीं कर रहा है, लेकिन इन-हाउस फ्रेमवर्क का उपयोग कर रहा है। – Manu

+1

आपके प्रश्न का उत्तर नहीं है, लेकिन एक वैकल्पिक विचार की तरह। मेरे अनुभव से, टेस्ट रन को इंटरैक्टिव रूप से देखने में भी मदद नहीं मिल सकती है, क्योंकि आप नहीं देखते कि कुछ क्यों हुआ या नहीं हुआ (यानी आप यूआई देखते हैं, लेकिन HTML के डोम नहीं)। और दूसरी बात, स्क्रीन रिकॉर्डिंग के साथ कौन सी स्क्रिप्ट कर रही है, इसे सिंक करना मुश्किल है, आप केवल अनुमान लगा सकते हैं। तो मुझे जो अधिक उपयोगी मिला वह 1 - विभिन्न समस्याग्रस्त चरणों ('driver.getPageSource()') पर HTML की बचत सामग्री है; और 2 - लॉगिंग में निवेश करना यह स्पष्ट करता है कि हर पल में कौन सी परीक्षा कर रही है और यह लिंक के लिए धन्यवाद या अन्य पथ –

उत्तर

2

एक दृष्टिकोण प्रत्येक चरण के बाद स्क्रीनशॉट करना होगा और फिर उन्हें एक वीडियो में जोड़ना होगा। this questions के उत्तर इस कार्य के लिए कुछ उम्मीदवार पुस्तकालय प्रदान करते हैं।

कुछ ब्राउज़र प्लगइन का उपयोग करके परीक्षण करने के दौरान वास्तव में एक स्क्रीनकास्ट करना होगा। लेकिन मुझे यकीन नहीं है कि कोई रिकॉर्डिंग प्रक्रिया कैसे शुरू करेगा। सेलेनियम के साथ स्टार्टिंग/स्टॉप रिकॉर्डिंग के लिए शॉर्ट कट भेजना संभव हो सकता है, लेकिन मुझे यकीन नहीं है कि यह काम करेगा या नहीं। For such plugins I can't offer more than a google search

+0

क्यों लेता है। मैंने एक वीडियो बनाने के लिए Xuggler का उपयोग किया, लेकिन कई स्क्रीनशॉट लेने के कारण यह मेरे ढांचे के साथ अच्छी तरह से एकीकृत नहीं हो रहा है। क्या आप कुछ टूल सुझा सकते हैं जो स्वयं वीडियो रिकॉर्ड करते हैं? – Manu

+0

ने यह जवाब देने के लिए मेरा जवाब अपडेट किया कि मैं उस दिशा में कितनी छोटी पेशकश कर सकता हूं –

3

एक और विकल्प BrowserStack या Sauce Labs पर अपने परीक्षणों को दूरस्थ रूप से चलाने के लिए होगा - दोनों सेवाओं में परीक्षण वीडियो रिकॉर्डिंग उपलब्ध है।

+0

हमने पहले से ही परीक्षण चलाने के लिए सॉसेल्ब का उपयोग किया है, लेकिन वे नियमित परीक्षण सूट रनों के लिए महंगा होने का अंत करते हैं। – Manu

2

आप ग्रुपन द्वारा बनाए और उपयोग किए गए Selenium-Grid-Extras देख सकते हैं। उन्होंने एक ढांचा तैयार किया है जो सेलेनियम ग्रिड का उपयोग करके आपके वर्णन का वर्णन करने में सक्षम है। मैंने इसे एक बार कोशिश की और ठीक काम करने लग रहा था। शायद यह ऐसा कुछ है जो आपकी आवश्यकताओं के अनुरूप होगा।

+0

मैं इसे आज़मा दूंगा। लेकिन, मैं एक स्क्रीनकास्ट टूल की तलाश में हूं, बिल्कुल एक नया ढांचा नहीं। फिर भी धन्यवाद। – Manu

1

मैं thebobblob के उत्तर थोड़ा आगे ले जाऊंगा। मैंने दोबारा groupon's Selenium-Grid_Extras के साथ सेलेनियम ग्रिड-हब पर्यावरण को कॉन्फ़िगर किया और यह आकर्षण की तरह काम करता है। ऐसे कुछ प्रश्न हैं जिन्हें आपको पहली बार नोड्स/हब सेट करते समय उत्तर देने की आवश्यकता है। कुछ बिंदु यह आप आप रिकॉर्ड करने के लिए जो डिफ़ॉल्ट 20. कर रहा है के बाद, परीक्षण सभी रिकॉर्डिंग हब माध्यम से सुलभ हैं चलाना चाहते वीडियो की संख्या पूछता पर java -jar Selenium-Grid-Extras-Jar.jar चलाने के बाद: बंदरगाह के रूप में दिखाया गया है here

यह करने के लिए आगे थोड़ा लेते हुए आप ग्रुपन एपीआई का उपयोग करके अपने परीक्षण से रिकॉर्डिंग को नियंत्रित कर सकते हैं। आपके पास लचीलापन है। एक खुला issue है लेकिन यह आपको आराम से सेवा के माध्यम से भी उपयोग करने का विकल्प देता है

0

जब आप इसकी आवश्यकता हो तो अपने जावा कोड से स्क्रीन शॉट स्वचालित रूप से स्क्रीन शॉट लेने के लिए रोबोट क्लास का उपयोग कर सकते हैं। यह जावा मानक पुस्तकालय का हिस्सा है।

अपने परीक्षण की शुरुआत में रोबोट बनाएँ:

Rectangle screen = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); 
Robot robot = new Robot(); 

फिर जब आप एक स्क्रीनशॉट (अपने परीक्षण में हर कदम) लेने की जरूरत सिर्फ फोन:

BufferedImage capture = robot.createScreenCapture(screen); 
    ImageIO.write(capture, "jpg", new File("c:/some_distinct_name_designating_test_phase_and_number.jpg")); 
4

आप जावा का उपयोग कर सकते कोड आपके टेस्ट वीडियो को रिकॉर्ड करता है, इस कोड को चलाने के लिए आपको अपनी प्रोजेक्ट में जार फ़ाइल भी जोड़नी होगी: संदर्भ: Road to automation

@BeforeSuite 
     public void startRecording() throws Exception {  

      GraphicsConfiguration gc = GraphicsEnvironment 
        .getLocalGraphicsEnvironment() 
        .getDefaultScreenDevice() 
        .getDefaultConfiguration(); 

       this.screenRecorder = new ScreenRecorder(gc, 
        new Format(MediaTypeKey, MediaType.FILE, MimeTypeKey, MIME_AVI), 
        new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE, 
         CompressorNameKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE, 
         DepthKey, 24, FrameRateKey, Rational.valueOf(15), 
         QualityKey, 1.0f, 
         KeyFrameIntervalKey, 15 * 60), 
        new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, "black", 
         FrameRateKey, Rational.valueOf(30)), 
        null); 
     this.screenRecorder.start(); 

    } 

    @AfterSuite 
    public void stopRecording() throws Exception { 
     this.screenRecorder.stop(); 
    } 
संबंधित मुद्दे