2009-07-29 7 views
5

मैं क्यूटीपी का उपयोग करके एक वेब ऐप का उपयोग करके परीक्षण करने की कोशिश कर रहा हूं जो AJAX4jsf का उपयोग AJAX सुविधाओं को लागू करने के लिए कर रहा है। क्यूटीपी में एजेक्स समाप्त होने पर पहचानने की क्षमता नहीं है। मैंने पढ़ा है कि क्यूटीपी 9.5 और क्यूटीपी 10 के साथ प्रदान की गई वेब एक्स्टेंसिबिलिटी टूलकिट मेरी समस्या का समाधान है। हालांकि, मैं समझ नहीं पा रहा हूं कि यह मेरी मदद कैसे कर सकता है: मुझे httpRequest ऑब्जेक्ट की तैयार स्थिति जानने की आवश्यकता है और जब राज्य 'पूर्ण' होता है तो परीक्षण जारी रखें। लेकिन मुझे नहीं पता कि वेब एक्स्टेंसिबिलिटी टूलकिट से httpRequest तक कैसे पहुंचे। किसी भी मदद की सराहना की जाएगी।क्यूटीपी वेब एक्सटेंसिबिली टूलकिट और AJAX

उत्तर

2

अपने जवाब के लिए धन्यवाद।

हमने क्यूटीपी एक्सटेंसिबिली टूलकिट का उपयोग करके हमारी समस्या का समाधान करने का प्रबंधन किया: ए 4 जे श्रोताओं की कतार का उपयोग करता है जो अजेक्स से पहले और बाद में जागृत होते हैं (श्रोता के प्रकार के आधार पर)। हमारे समाधान में, हमने प्रत्येक AJAX घटक (उदाहरण के लिए वेबबटन) के लिए एक जेएसक्रिप्ट फ़ंक्शन लागू किया:
1. 2 पर वैश्विक वैरिएंबल प्रारंभ करें।प्रकार onafterajax के एक श्रोता के रूप में एक नया कार्य पंजीकृत करता है:

while (globalVariable != 1) { 
    _util.Wait(250); 
} 
:

_elem.ownerDocument.parentWindow.A4J.AJAX.AddListener({ 
     onafterajax: function(req, event, data) { 
      globalVariable = 1; 
     } 
    }); 
  1. बटन
  2. व्यस्त इंतजार कर पाश का एक प्रकार में जाकर क्लिक करें

हमारे द्वारा पंजीकृत फ़ंक्शन को अजाक्स समाप्त होने पर और ग्लोबल वैरिएबल को बदलने के लिए कहा जाता है, जबकि लूप बाहर निकल जाएगा। मुझे पता है कि यह बदसूरत है, लेकिन यह बहुत अच्छा काम करता है।

हमारी एकमात्र समस्या यह है कि क्यूटीपी 10 _util.wait लागू करता है जबकि क्यूटीपी 9.5 नहीं करता है। प्रतीक्षा के बिना, ब्राउज़र एक अनंत लूप में फंस जाएगा और पंजीकृत समारोह कभी नहीं कहा जाएगा। जेएसक्रिप्ट में एक गैर व्यस्त प्रतीक्षा प्रतीक्षा के कार्यान्वयन के संबंध में कोई समाधान सबसे सराहना की जाएगी।

2

AJAX कॉल के साथ वेब-आधारित एप्लिकेशन के लिए स्वचालित परीक्षण के अपने अनुभव के आधार पर मैं आपको निम्नलिखित पर विचार करने का सुझाव देता हूं।

  1. QTP की वस्तु की पहचान तंत्र जीयूआई की तलाश में है विंडोज हैंडल के साथ वस्तुओं। तो जब भी संभव हो, केवल जीयूआई वस्तुओं का उपयोग करें। मैन्युअल रूप से परीक्षण करना आप XmlHttpRequest ऑब्जेक्ट तक नहीं पहुंच पाएंगे, लेकिन यह आपको कार्यात्मक परीक्षण से नहीं रोकेगा। आप अभी भी जीयूआई वस्तुओं के गुणों के परिवर्तन के आधार पर विभिन्न घटनाओं पर सिंक्रनाइज़ कर सकते हैं। उदाहरण के लिए । "लोड हो रहा है ..." छवि या पाठ प्रकट/गायब हो गया। ड्रॉपडाउन सूची ने नए आइटम जोड़ना बंद कर दिया। बटन सक्षम/अक्षम हो जाता है।

  2. यदि यह आपका इन-हाउस एप्लिकेशन है तो आप क्यूटीपी के लिए अधिक अनुकूल समर्थन विकसित कर सकते हैं, और यहां आप एक्स्टेंसिबिलिटी टूलकिट से गाइड का उपयोग कर सकते हैं। इसके अतिरिक्त, परीक्षण निर्माण विकल्प के रूप में आप एक जीयूआई ऑब्जेक्ट (अदृश्य छवि या टेक्स्ट तत्व) शामिल कर सकते हैं और AJAX लेनदेन के राज्यों को इंगित करने के लिए इसका उपयोग कर सकते हैं।

  3. अंत में, आप अभी भी गैर-जीयूआई ऑब्जेक्ट्स तक पहुंचने के लिए सीधे डोम तक पहुंच सकते हैं हालांकि मेरे पास XmlHttpRequest ऑब्जेक्ट का उपयोग करने की जानकारी नहीं है।

धन्यवाद, अल्बर्ट Gareev

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