Airtest IDE - मोबाइल गेम के स्वचालन के परीक्षण का एक नया तरीका?

आज मैं आपको Airtest नामक स्वचालित परीक्षण के लिए एक काफी नए ओपन-सोर्स टूल के बारे में बताना चाहता हूं । भविष्य में मैं इस टूलकिट के व्यक्तिगत तत्वों और उनके साथ काम करने के तरीके के बारे में एक विस्तृत कहानी के साथ कुछ और लेख बनाऊंगा, लेकिन अब मुझे आपको इसे पेश करने और इसका एक सामान्य विचार देने का लक्ष्य है।


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


AirTest IDE NetEase द्वारा विकसित किया गया था और "हार्ड-टू-ऑटोमेट" अनुप्रयोगों के लिए अभिप्रेत है, जैसे कि, उदाहरण के लिए, गेम। वास्तव में वे डेवलपर्स का मुख्य फोकस हैं, हालांकि यह किसी अन्य अनुप्रयोगों के लिए एयरटेस्ट का उपयोग करना बंद नहीं करता है।


एयरटेस्ट आईडीई विंडोज, मैकओएस एक्स और लिनक्स पर चलता है और इसमें 2 फ्रेमवर्क होते हैं: एयरटेस्ट और पोको। यह विकास Xin लियू द्वारा एंड्रॉइड गेम डेवलपर समिट 2018 में प्रस्तुत किया गया था। पायथन 2.7 और पायथन 3.3+ का उपयोग परीक्षण लिखने के लिए किया जाता है। बड़ी संख्या में उपकरणों पर तुरंत परीक्षण चलाने के लिए समर्थन के रूप में ऐसी महत्वपूर्ण चीजें, ओपन सोर्स कोड और मुफ्त आवेदन, साथ ही आसान लिखित परीक्षण - ये वे फायदे हैं जो डेवलपर्स द्वारा हाइलाइट किए गए हैं। एप्लिकेशन को विंडोज और मैकओएस दोनों पर इस्तेमाल किया जा सकता है और आपको निम्नलिखित ओएस से एप्लिकेशन को स्वचालित करने की अनुमति मिलती है: विंडोज, आईओएस, एंड्रॉइड।


GitHub पर AirTest प्रोजेक्ट में 4 प्रोजेक्ट हैं: Airtest , Poco , iOS-Tangent , multi-device-runner
यह भी उल्लेखनीय है कि NetEase, AirLab नामक स्वचालित परीक्षण के लिए अपना भौतिक उपकरण फार्म प्रदान करता है।


छवि

संक्षेप में चौखटे के बारे में।


Airtest मोबाइल गेम के लिए एक छवि मान्यता क्रॉस-प्लेटफ़ॉर्म फ्रेमवर्क है और छवि थ्रेशहोल्डिंग पर आधारित अनुप्रयोग है। AirTest IDE आपको निम्नलिखित आदेशों का उपयोग करके आवेदन के साथ सहभागिता करने की अनुमति देता है:
स्पर्श, प्रतीक्षा करें, स्वाइप करें, मौजूद हैं, टेक्स्ट, कीवेंट, स्नैपशॉट, स्लीप, assert_exists, assert_not_exists, assert_equal, assert_not_equal। मैं एयरटेस्ट और पोको फ्रेम के अधिक विस्तृत अध्ययन के लिए समर्पित एक अलग लेख में कमांड की सुविधाओं और मापदंडों के बारे में बात करूंगा। अब यह ध्यान देने योग्य है कि कीवेन्ट कमांड डिवाइस के भौतिक बटन को दबाने के लिए जिम्मेदार है, जैसे कि होम, पावर, मेनू, बैक। अधिकांश कमांड का उपयोग करते समय, उपयोगकर्ता को काम करने वाले डिवाइस की स्क्रीन के एक हिस्से को उजागर करने के लिए प्रेरित किया जाता है, जिसका स्क्रीनशॉट इसी कमांड (टच, स्वाइप, एस्टर, आदि) के लिए उपयोग किया जाएगा।


छवि

Airtest के फायदे जिन्हें मैं काम के बाद उजागर कर सकता हूं:


  1. तेज और स्पष्ट कोड लेखन। सब कुछ किया जाता है, व्यवहार में, स्वचालित मोड में, आपको केवल आवश्यक मापदंडों का चयन करने, समय को समायोजित करने और छवि की पसंद के साथ सावधान रहने की आवश्यकता है।
  2. सक्रिय काम करने वाले डिवाइस पर चित्र की सटीक परिभाषा, जो कोड में उपयोग की जाती है। साथ ही, रिपोर्ट कोड में उपयोग की गई छवि के संयोग (तुलना) और काम करने वाले डिवाइस की स्क्रीन से छवि का प्रतिशत इंगित करती है।
  3. रिपोर्ट्स की बात की जाए। प्रत्येक लॉन्च के बाद, आप कीबोर्ड शॉर्टकट Ctrl \ Cmd + L का उपयोग करके एक रिपोर्ट बना सकते हैं। एक सुविधाजनक रिपोर्ट इस तरह की जानकारी प्रदान करती है: उनके परिणामों के प्रकार, साथ ही साथ प्रत्येक परीक्षण चरण को एक अलग उप-खंड में हाइलाइट किया जाता है जहां एयरटेस्ट क्लिक किया गया है, जहां यह एक तस्वीर, चित्र मिलान का प्रतिशत आदि की अपेक्षा करता है।
  4. एक बार कोड लिखने के बाद, आप इसे किसी भी डिवाइस पर उपयोग कर सकते हैं।
  5. मल्टीथ्रेडिंग: कई परीक्षण उपकरणों को कनेक्ट करें और उन्हें समानांतर में चलाएं।

विपक्ष Airtest, जिसे मैं काम के बाद उजागर कर सकता हूं:


  1. यदि इस प्रक्रिया में ऐसे तत्व हैं जो नेत्रहीन समान दिखते हैं, उदाहरण के लिए स्लाइडर्स, बटन आदि, तो उच्च संभावना के साथ एयरटेस्ट समझ नहीं पाएगा कि आप किस नियंत्रण का उपयोग करना चाहते हैं। इसी त्रुटि में इंगित किया जाएगा। लेकिन यह माइनस आसानी से दूसरे फ्रेमवर्क (पोको) का उपयोग करके निकाला जाता है, जिस पर नीचे चर्चा की जाएगी।
  2. छवियों की तुलना (कोड और स्क्रीन पर वास्तविक लोगों से) काले और सफेद रंग में होती है। यह विचार करने योग्य है कि क्या आप महत्वपूर्ण हैं, उदाहरण के लिए, चरित्र की दृश्य उपस्थिति (उसका रंग, अलग कपड़े, आदि)। यदि वर्ण नेत्रहीन रूप से भिन्न होते हैं, लेकिन वे स्क्रीन पर उसी तरह प्रदर्शित होते हैं (एक मुद्रा, आदि), तो जांच सबसे अधिक सफल होगी। छवि पहचान विकल्पों में एक "आरजीबी" चेकमार्क होता है, जिसका आप उपयोग कर सकते हैं, लेकिन यदि आपके पास एक छोटी छवि है तो यह बहुत अच्छी तरह से काम नहीं करता है।
  3. आप अपनी ज़रूरत के स्क्रीनशॉट को सही ढंग से लेने के लिए एप्लिकेशन का उपयोग करते समय स्क्रीन को "फ्रीज" नहीं कर सकते। समय-समय पर आपको उस फ्रेम को "पकड़ने" की आवश्यकता होती है जो आपको चाहिए।
  4. क्योंकि खुले बीटा में आवेदन, तो आप विभिन्न कष्टप्रद त्रुटियों या अशुद्धियों का सामना कर सकते हैं, उदाहरण के लिए, जैसे कि विंडोज पर एक अंतर्निहित एप्लिकेशन के साथ विंडो का आकार बदलने में असमर्थता। लेखक अब हर कुछ महीनों में एक बार AirTest IDE को अपडेट कर रहे हैं, और मुझे उम्मीद है कि ये ओवरसाइट्स जल्द ही ठीक हो जाएंगे।

पोको यूजर इंटरफेस (यूआई) को स्वचालित करने के लिए एक सार्वभौमिक ढांचा है, जो (गेम) इंजन से स्वतंत्र शक्तिशाली एपीआई प्रदान करता है। बदले में, क्रम में UI तत्वों के पदानुक्रम को पुनः प्राप्त करते हैं। इसके लिए धन्यवाद, उपयोगकर्ता वर्तमान पृष्ठ पर संपूर्ण तत्व पदानुक्रम को कुछ ही क्लिक में उस तत्व तक "पहुंच" सकता है, जिसकी उसे आवश्यकता है, आदि। इसके अलावा, यह रूपरेखा आपको वर्तमान विंडो के तत्वों के पदानुक्रम के आधार पर कोड लिखने के लिए वर्तमान स्क्रीन को "फ्रीज" करने की अनुमति देती है। पोको को एयरटेस्ट को समझने में मदद करने के लिए डिज़ाइन किया गया है कि परीक्षण किस प्रकार के यूआई तत्व के बारे में बात कर रहे हैं, लेकिन कोई भी आपको केवल इस ढांचे का उपयोग करके सभी परीक्षण लिखने के लिए परेशान नहीं करता है।
सभी परीक्षण पायथन में लिखे गए हैं। कमांड कार्यान्वयन संबंधित एपीआई में पाया जा सकता है: airtest.core.api मॉड्यूल , airtest.core.android पैकेज , airtest.core.ios पैकेज , airtest.core.win पैकेज


छवि


पोको के फायदे जिन्हें मैं काम के बाद उजागर कर सकता हूं:


  1. Unity3D, cocos2dx-js, cocos2dx-lua, NetEase आंतरिक इंजन सहित कई महत्वपूर्ण खेल इंजनों के लिए समर्थन है, साथ ही साथ देशी Android / iOS अनुप्रयोगों के लिए समर्थन है। यदि आप एक इंजन का उपयोग करना चाहते हैं जो "समर्थित" लोगों की सूची में नहीं है, तो आप उचित निर्देशों का पालन ​​करके अपना स्वयं का लिख ​​सकते हैं। आधिकारिक दस्तावेज में अवास्तविक इंजन का उल्लेख है, लेकिन अब तक, सब कुछ "जल्द ही आ रहा है" वाक्यांश तक सीमित है।
  2. स्क्रीन पर यूआई तत्वों का पदानुक्रम वास्तविक समय में लौटता है।
  3. जल्दी शुरू और परीक्षण पर चलाते हैं।
  4. जैसा कि AirTest में, मैंने एक बार कोड लिखा था - हर जगह इसका उपयोग करें। पायथन 2.7 और 3.3+ सपोर्ट
  5. किसी भी बाहरी लाइब्रेरी को अपने प्रोजेक्ट से जोड़ना संभव है
  6. प्रलेखन को देखते हुए, जीपीएस, एक्सेलेरोमीटर और गायरो सेंसर के लिए समर्थन है, साथ ही साथ पोर्ट्रेट और लैंडस्केप डिस्प्ले मोड के लिए समर्थन है।

पोको विपक्ष कि मैं काम के बाद उजागर कर सकता हूं:


  1. विंडोज 7 पर काम के दौरान मुझे मूलभूत समस्याएं नहीं मिलीं। जो पूर्ण कार्य के साथ हस्तक्षेप करेगा, लेकिन वे, इस समय विंडोज 10 के साथ काम कर रहे हैं। मुख्य बात कुछ मामलों में वस्तुओं की गलत गति (स्वाइप कमांड) है। उदाहरण के लिए, मैं ऑब्जेक्ट को स्थानांतरित करने के लिए इंगित करता हूं और दूसरी वस्तु के निर्देशांक, जो कि अंतिम बिंदु है। इन दुर्लभ मामलों में, पोको अंतिम स्थान को याद करता है, लेकिन रिपोर्ट सही विस्थापन डेटा (वेक्टर) दिखाती है और कदम को सफल माना जाता है।
  2. जब आप बड़े लेआउट (लेआउट) के साथ कुछ तत्वों का चयन करते हैं, तो चयन पोको सहायक विंडो को ओवरलैप कर सकता है और आप तब तक अन्य तत्वों का चयन नहीं कर पाएंगे जब तक कि चयन को वर्तमान से हटा नहीं दिया जाता है। चयन को हटाने के लिए, आप कीबोर्ड शॉर्टकट Alt + F4 का उपयोग कर सकते हैं

तस्वीर को पूरा करने के लिए, यह ध्यान देने योग्य है कि Airtest IDE का अपना सेलेनियम प्लग-इन है , जिसके साथ आप अपनी वेब परियोजना को स्वचालित कर सकते हैं, लेकिन केवल क्रोम ब्राउज़र का उपयोग करके। बाकी, फिलहाल, समर्थित नहीं हैं। व्यक्तिगत रूप से, मैंने अभी तक उसके साथ काम नहीं किया है, इसलिए मैं उसके काम के बारे में नहीं कह सकता, लेकिन इस संक्षिप्त विवरण में उसे याद करना असंभव था।


छवि


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


छवि

Source: https://habr.com/ru/post/hi461773/


All Articles