2009-11-16 14 views
5

मैं पावरबिल्डर से परिचित नहीं हूं लेकिन मेरे पास पीबी के लिए स्वचालित यूआई टेस्ट एप्लिकेशन बनाने का कार्य है। हमने पाइथनो और आईएसीसीबल पुस्तकालयों के साथ पाइथन में ऐसा करने का निर्णय लिया है। समस्या यह है कि कुछ यूआई तत्व जैसे नए जोड़े गए सूचियों को रिकॉर्ड किया जा सकता है (यहां तक ​​कि निरीक्षण 32 इसे प्राप्त नहीं कर सकता)। कोई विचार इस तत्व तक कैसे पहुंचें और उन्हें टेस्टेबल कैसे बनाएं?PowerBuilder UI परीक्षण एप्लिकेशन कैसे बनाएं?

उत्तर

2

मैं पावरबिल्डर-आधारित जीयूआई को स्वचालित करने के लिए एक उपकरण के लिए कोड के साथ प्रयोग कर रहा हूं। जो मैं देख सकता हूं, आपकी सर्वश्रेष्ठ शर्त पावरबिल्डर नेटिव इंटरफेस (पीबीएनआई) का उपयोग करना होगा, और अपने एनवीओ के भीतर से पावरस्क्रिप्ट कोड को कॉल करना होगा।

यदि आप चाहें, तो मुझे एक ईमेल भेजने के लिए स्वतंत्र महसूस करें (मेरे ईमेल पते के लिए मेरी प्रोफ़ाइल देखें), मुझे इस बारे में विचारों का आदान-प्रदान करने में दिलचस्पी होगी।

1

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

ऐसे एप्लिकेशन के साथ समस्या यह है कि नियंत्रण के मूल्य को प्राप्त करने या सेट करने के लिए कोई एपीआई नहीं है। तो एक pywinauto दृष्टिकोण काम नहीं कर सकता है।

मैंने उपयोगकर्ता घटनाओं को अनुकरण करने और स्क्रीनकैप्चर से परिणाम प्राप्त करने के लिए एक छोटा सा टूल बनाया है। मैं स्क्रीन कैप्चर के विश्लेषण के लिए पीआईएल और पायटासेर ओआरएम का उपयोग कर रहा हूं। यह सबसे आसान तरीका नहीं है लेकिन यह ठीक काम करता है।

उपकरण ओपन-सोर्स और नि: शुल्क है और my website (फ्रेंच में क्षमा करें) से डाउनलोड किया जा सकता है। आपको सिर्फ एक खाता चाहिए लेकिन यह भी मुफ़्त है। सिर्फ पूछना।

तुम फ्रेंच पढ़ सकते हैं, तो यहाँ one article about testing Intouch-based applications

आत्म पदोन्नति के लिए खेद है, लेकिन मैं कोई समाधान के साथ एक समान समस्या का सामना करना पड़ रहा था इसलिए मैं अपने खुद के लिखा है। वैसे भी, यह मुफ़्त और खुला स्रोत है ...

+1

हाय। हमारे पायथन एप्लिकेशन कुछ उत्साह के अलावा काफी ठीक काम करता है।हम सीधे नियंत्रण मूल्य निर्धारित नहीं करते हैं, लेकिन उदाहरण के लिए सिस्टम से कहें: "गिरने वाली स्थिति x पर जाएं, y कुछ टेक्स्ट टाइप करें और एंटर पर क्लिक करें" हम पाइविनाटो का उपयोग कर रहे हैं और नियंत्रण खोजने और पॉजिओशन, वैल्यू इत्यादि प्राप्त करने के लिए iaccesible हैं लेकिन समस्या यह है कि कुछ तत्व हैं जो pywinauto या तो iaccesible नहीं मिल सकता है। –

1

यदि आप डेटाविंडोज़ का परीक्षण कर रहे हैं (कक्षा pbdwxxx है, उदाहरण के लिए pbdw110) तो आपको विशिष्ट निर्देशांक पर क्लिक करने और नियंत्रण प्राप्त करने के लिए टैब कुंजी भेजने के संयोजन का उपयोग करना होगा तुम्हें चाहिए। बेशक आप पंक्तियों के बीच स्थानांतरित करने के लिए तीर कुंजियां भी ऊपर और नीचे भेज सकते हैं। करने के लिए सबसे आसान बात यह है कि एक सामान्य नियंत्रण से शुरू करें जैसे एसएलई और टैब डेटाविंडो में। समस्या यह है कि डेटाविंडो अनिवार्य रूप से सिर्फ एक छवि है। किसी दिए गए फ़ील्ड के लिए कोई नियंत्रण नहीं है जब तक कि आप क्लिक या टैबबिंग करके वहां फ़ोकस नहीं करते। मैंने यह भी पाया है कि डेटाविंडो का iAccessible इंटरफ़ेस थोड़ा अजीब है। यदि आप ऑब्जेक्ट के लिए डेटाविंडो से फोकस के साथ पूछते हैं, तो आपको सही जवाब नहीं मिलता है। यदि आप सभी बच्चों के माध्यम से गिनती करते हैं तो आप ध्यान केंद्रित कर सकते हैं। यदि आप स्रोत को संशोधित कर सकते हैं तो मैं यह भी सलाह देता हूं कि आप अपने डेटाविंडो नियंत्रणों के लिए AccessibleName सेट करें, अन्यथा आप स्थिति के अलावा नियंत्रणों को पहचानने में सक्षम नहीं होंगे (डेटाविंडो नियंत्रणों से मेरा मतलब डेटाविंडो के अंदर है, डेटाविंडो स्वयं नहीं) । यदि यह एक एमडीआई एप्लीकेशन है, तो आप अपने वर्तमान संदर्भ को निर्धारित करने में मदद के लिए माइक्रोहेल्प विंडो (कक्षा fnhelpxxx, उदाहरण के लिए fnhelp110, मुख्य एप्लिकेशन विंडो से ढूंढें) का पता लगाने के लिए उपयोगी भी पा सकते हैं।

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

1

मैंने ऑटोमेटेडक्यू समर्थन में देखा है कि वे एक नुस्खा एमएसएए का उपयोग करने और नियंत्रण पर कुछ गुणों की स्थापना करने की सिफारिश कर रहे हैं। मुझे नहीं पता कि यह काम करता है या नहीं।

+0

परीक्षण के साथ सहायता के लिए एमएसएए का उपयोग करने की सीमा यह है कि पावरबिल्डर केवल एमएसएए जानकारी प्रदान करता है जो डेवलपर स्पष्ट रूप से कुछ अपवादों के साथ प्रदान करता है। ध्यान दें कि मैं क्लासिक पीबी के बारे में बात कर रहा हूं, मैंने WinForms में चारों ओर पोक नहीं किया है। मैंने अपने मध्य-स्तर में कई पीएफसी नियंत्रणों में एमएसएए समर्थन जोड़ा है। –

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