का उपयोग कर पेज लोड समय मापना मैंने जावास्क्रिप्ट में एक स्क्रिप्ट बनाई है जिसे स्वचालित ब्राउज़र परीक्षण के दौरान हमारे एक्सएस जेएस एप्लिकेशन में इंजेक्शन दिया गया है। स्क्रिप्ट हमारे ग्रिड में डेटा लोड करने के लिए किए गए समय की मात्रा को मापती है।जावास्क्रिप्ट
विशेष रूप से, प्रत्येक ग्रिड स्क्रिप्ट चुनाव, यह देखने के लिए देखता है कि पहली पंक्ति या 'कोई डेटा' संदेश नहीं है, और एक बार सभी ग्रिड इस शर्त को संतुष्ट करते हैं, तो स्क्रिप्ट Date.now() और प्रदर्शन के बीच मान रिकॉर्ड करती है .timing.fetchStart, और इस पृष्ठ को लोड करने के समय के रूप में व्यवहार करता है।
यह स्क्रिप्ट अपेक्षाकृत कम या ज्यादा काम करती है, हालांकि मानव मापा समय (Google स्टॉपवॉच एफटीडब्ल्यू) की तुलना में, इस परीक्षण द्वारा रिपोर्ट किया गया समय लगातार स्टॉपवॉच द्वारा मापा जाने वाला 300 मिलीसेकंड लंबा होता है।
मेरे सवालों का ये हैं:
- इस तर्क यह है कि गलत परिणाम के लिए नेतृत्व करेंगे में एक छेद है?
- क्या इस माप को प्राप्त करने के लिए कोई वैकल्पिक और सटीक तरीके हैं?
function loadPoll() { var i, duration, dataRow = '.firstRow', noDataRow = '.noData', grids = ['.grid1', '.grid2', '.grid3','.grid4', 'grid5', 'grid6', 'grid7']; for (i = 0; i < grids.length; ++i) { var data = grids[i] + ' ' + dataRow, noData = grids[i] + ' ' + noDataRow; if (!(document.querySelector(data) || document.querySelector(noData))) { window.setTimeout(loadPoll, 100); return; } } duration = Date.now() - performance.timing.fetchStart; window.loadTime = duration; } loadPoll();
कुछ विचार::
स्क्रिप्ट इस प्रकार है हालांकि मुझे पता है कि मानव प्रतिक्रिया समय धीमा हो सकता है कर रहा हूँ, मुझे यकीन है कि
कि 300 मिलीसेकंड विसंगति Google स्टॉपवॉच का उपयोग करने के लिए मानव कारक द्वारा पेश नहीं किया गया है।
कोड यह प्रकट हो सकता है कि कई के मतदान तत्वों 300 एमएस विसंगति का कारण बन सकता है, लेकिन जब मैं बदल तत्वों की संख्या 1 7 से नजर रखी जा रही है, वहाँ अभी भी एक प्रतीत होता है को देखते हुए स्वचालित परीक्षण द्वारा रिपोर्ट किए गए समय में 300 एमएस अधिशेष।
हमारे स्वचालित परीक्षण सेलेनियम और प्रोटैक्टर द्वारा नियंत्रित ढांचे में निष्पादित किए जाते हैं।
अग्रिम धन्यवाद यदि आप इस बारे में कोई अंतर्दृष्टि प्रदान करने में सक्षम हैं!
यह प्रश्न टैग किया गया है [टैग: node.js] लेकिन प्रश्न में कोड है जो 'विंडो', 'document.querySelector' का उपयोग करता है। मैं टैग हटा रहा हूँ। –