powershell uiautomation tutorial
PowerShell UIAutomation Tutorial: डेस्कटॉप अनुप्रयोगों के यूआई स्वचालन
UIAutomation GUI स्वचालन परीक्षणों के लिए एक खुला स्रोत परियोजना PowerShell एक्सटेंशन है। यह Win32, विंडोज फॉर्म, WPF, और इसी तरह का समर्थन करता है।
इस ट्यूटोरियल में, हम इस बात पर ध्यान केंद्रित करेंगे कि UI स्वचालन को लागू करने के लिए PowerShell मॉड्यूल का उपयोग कैसे करता है। इसे समझाने के लिए हम एक उदाहरण के रूप में विंडोज फॉर्म एप्लिकेशन का उपयोग करेंगे।
आप क्या सीखेंगे:
- Microsoft UIAutomation के साथ आरंभ करना
- आयात करें
- उदाहरण के साथ यूआई स्वचालन
- अभिभावक-बच्चे के संबंध और नियंत्रण के गुणों का पता लगाएं
- उन्नत कार्यान्वयन: स्क्रिप्ट लिखने के लिए दृष्टिकोण को सरल बनाना
- निष्कर्ष:
- अनुशंसित पाठ
Microsoft UIAutomation के साथ आरंभ करना
चूंकि प्रोजेक्ट PowerShell स्क्रिप्ट के लिए एकमात्र लाइब्रेरी प्रदान करता है, इसलिए इसे इंस्टॉलेशन की आवश्यकता नहीं है, हम केवल मॉड्यूल डाउनलोड कर सकते हैं और इसे स्क्रिप्ट में आयात कर सकते हैं।
यह भी पढ़े => पूर्ण विवरण के साथ 35+ सर्वश्रेष्ठ जीयूआई परीक्षण उपकरण
PowerShell के बारे में अधिक जानने के लिए और इसके साथ आरंभ करने के तरीके को समझने के लिए, देखें:
- यूआई स्वचालन पॉवरशेल एक्सटेंशन
- यूआई स्वचालन अवलोकन
- विंडोज पॉवरशेल
- विंडोज 10 में पावरशेल 5.0 के बारे में कूल स्टफ
आयात करें
1) अपनी आधिकारिक वेबसाइट से नवीनतम पैकेज डाउनलोड और अनज़िप करें: यूआई स्वचालन पॉवरशेल एक्सटेंशन to la ocal पथ,उदाहरण के लिए, C: UIAutomation
दो) मॉड्यूल को PowerShell स्क्रिप्ट में आयात करें: ( ध्यान दें : जब आप यह कमांड चलाते हैं, तो सुनिश्चित करें कि आप एक प्रशासक के रूप में पावरशेल नहीं चला रहे हैं)
Import-Module C:UIAutomationUIAutomation.dll
अब हम यूआई स्वचालन परीक्षण शुरू करने के लिए मॉड्यूल में परिभाषित आदेशों का उपयोग कर सकते हैं।
उदाहरण के साथ यूआई स्वचालन
आइए एक साधारण विंडोज फॉर्म एप्लिकेशन से शुरुआत करें, जो कुछ विशिष्ट नियंत्रणों को शामिल करता है जो हम GUI स्वचालन परीक्षण में देख सकते हैं।
इस उदाहरण में, हमें कुछ बुनियादी व्यक्तिगत जानकारी के साथ फ़ॉर्म जमा करने के लिए चरणों को स्वचालित करने के लिए कहा गया है:
चरण 1) इनपुट 'अन्ना स्मिथ'
चरण 2) लिंग का चयन करें 'महिला'
चरण 3) यदि स्नातक की उपाधि मिली हो तो 'हां' चुनें।
चरण 4) 'सबमिट' पर क्लिक करें
यह करने के लिए स्क्रिप्ट इस तरह है:
Start-Process 'Test Form' #Step1: input the name “Anna Smith” Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'|Set-UIATextBoxText 'Anna Smith' #Step2: select the gender “Female” Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAComboBox -Name 'Gender' | Invoke-UIAListItemSelectItem -ItemName 'Female' #Step3: choose “Yes” as the answer of if graduated. Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIARadioButton -AutomationId 'Graduated' -Name 'Yes'|Invoke-UIAControlClick #Step4: click “Submit” Get-UIAWindow -Name 'Test Form' | Get-UIAButton -Name 'Submit'|
आप शायद उपरोक्त स्क्रिप्ट से बता सकते हैं कि यह एप्लिकेशन में नियंत्रणों में हेरफेर कैसे कर रहा है। आइए आगे समझते हैं।
एक उदाहरण के रूप में पहला कदम उठाएं:
Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'|Set-UIATextBoxText 'Anna Smith'
इस पंक्ति में क्या हो रहा है, इस पर एक ब्रेकडाउन है:
1) स्क्रिप्ट पहले शीर्ष विंडो को ढूंढती है और फिर पाइपलाइन के माध्यम से अपने बच्चे को नियंत्रित करती है। यह तब तक ऐसा करता है जब तक कि उसे 'नाम' नाम के साथ लक्ष्य नियंत्रण- संपादन बॉक्स (या टेक्स्टबॉक्स) नहीं मिल जाता।
दो) नियंत्रण खोजने पर, यह नियंत्रण के प्रकार के लिए दावा करता है ताकि आप जान सकें कि किस कमांड का उपयोग करना है, उदा। Get-UIAWindow - एक विंडो है और Get-UIAEdit - एक एडिट / टेक्स्ट बॉक्स है।
3) इसमें नियंत्रण के एक या अधिक गुणों की भी आवश्यकता होती है। इस उदाहरण में, हम नियंत्रण की पहचान करने के लिए संपत्ति के रूप में केवल नाम का उपयोग करते हैं। ध्यान दें : ऑटोमेशनआईड और क्लास भी ऐसे गुण हैं जो आमतौर पर नियंत्रण पाते समय उपयोग किए जाते हैं।
4) लक्ष्य नियंत्रण पाए जाने के बाद, हम नियंत्रण पर कार्रवाई को लागू करने के लिए एक और कमांड का उपयोग करते हैं। इस उदाहरण में, पाठ बॉक्स के लिए पाठ सेट करने के लिए सेट-यूआईएटक्स्टबॉक्सटेक्स्ट है।
UI स्वचालन के लिए UI स्वचालन का मुख्य तरीका है।
ऑनलाइन कन्वर्टर को wav करने के लिए youtube
आप विभिन्न प्रकार के नियंत्रणों के लिए कमांड और कमांड को इसके आधिकारिक साइट के मदद दस्तावेजों में कार्रवाई करने के लिए पा सकते हैं: यूआई स्वचालन पॉवरशेल एक्सटेंशन
बाकी चरण नस में समान हैं। इसलिए, अब हम अन्य महत्वपूर्ण विषयों पर चलते हैं।
अभिभावक-बच्चे के संबंध और नियंत्रण के गुणों का पता लगाएं
इस तरह की पाइपलाइनों को लिखना सरल है, लेकिन महत्वपूर्ण हिस्सा यह है कि गुण और बच्चे को कैसे नियंत्रित किया जाए, जिसमें लक्ष्य नियंत्रण होता है। मेरे अनुभव में, ये दो हैं जो मैंने कोशिश की हैं:
# 1) पैकेज में UIAutomationSpy का उपयोग करें:
सबसे अच्छा सॉफ्टवेयर को sdd को hdd क्लोन करना
पैकेज में एक उपकरण है जिसे हमने डाउनलोड किया है जो डेस्कटॉप पर नियंत्रणों को कैप्चर कर सकता है। जब UI डेस्कटॉप पर तैयार हो जाता है, तो UIAutomat खोलें ionSpy.exe :
- कब्जा शुरू करने के लिए 'प्रारंभ' पर क्लिक करें।
- कर्सर को नियंत्रण में ले जाएं कि आपको क्या कैप्चर करना है।
- जब आप नियंत्रण को हाइलाइट करते हैं और स्क्रिप्ट इसके विंडो इंटरफ़ेस पर प्रदर्शित होती है, तो इसका मतलब है कि कैप्चर सफल है।
- कैप्चर को रोकने के लिए 'स्टॉप' पर क्लिक करें।
- बाईं ओर स्थित 'पदानुक्रम' टैब पर क्लिक करें और आपको ऊपर से लक्ष्य तक नियंत्रकों के अभिभावक-बच्चे के संबंध दिखाई देंगे
- दाईं ओर 'स्क्रिप्ट' टैब पर क्लिक करें, आप नियंत्रण के लिए एक पूर्ण पाइपलाइन देख सकते हैं:
कृपया ध्यान दें कि हमें लक्ष्य नियंत्रण की खोज के लिए पाइपलाइन से प्रत्येक नियंत्रण और प्रत्येक संपत्ति को शामिल नहीं करना है। दरअसल, हम जो प्रयोग करते हैं वह काफी सरल है (ऊपर उदाहरण देखें):
Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'
दुर्भाग्य से, कोई आधिकारिक चांदी की गोली मौजूद नहीं है कि कितने नियंत्रणों को शामिल किया जाना चाहिए। इसके लिए प्रयास और अनुभव की आवश्यकता है।
क्या UIAutomationSpy के बारे में बहुत अच्छा नहीं है:
- यह एक अनुकूल इंटरफेस नहीं है
- आपको एक के बाद एक नियंत्रण पर कब्जा करना होगा और आपके द्वारा वांछित विवरण प्राप्त करना होगा।
# 2) विंडोज़ डेस्कटॉप के लिए नियंत्रणों का निरीक्षण करने के लिए बाहरी उपकरणों का उपयोग करें
एक सुझाए गए उपकरण का निरीक्षण Microsoft द्वारा किया गया है। जब आप उपकरण खोलते हैं, तो आपको विंडो पर नियंत्रण के हर विवरण मिलेंगे:
क्या निरीक्षण के बारे में बहुत अच्छा नहीं है
- विवरण निर्यात करने का कोई तरीका नहीं है।
- UI स्वचालन मॉड्यूल कुछ आदेश प्रदान करता है जैसे कि Get-UIAControlChildren सभी बच्चे को नियंत्रित करने के लिए। निरीक्षण। exe खिड़की के नीचे सभी नियंत्रणों को पार कर सकता है, लेकिन प्रदर्शन का मूल्यांकन जटिल खिड़कियों के लिए नहीं किया जाता है।
उन्नत कार्यान्वयन: स्क्रिप्ट लिखने के लिए दृष्टिकोण को सरल बनाना
उपरोक्त परिचय से, आप देख सकते हैं कि मॉड्यूल का उपयोग करके स्क्रिप्ट लिखने का मुख्य तरीका पाइपलाइन हैं, हालांकि कभी-कभी पाइपलाइन इतनी लंबी नहीं होती हैं। इसे सरल और आसान बनाने के लिए एक दृष्टिकोण है, और मुख्य विचार एक्सएमएल फ़ाइल में नियंत्रण के डेटा को निकालना है, और एक्सएमएल फ़ाइल से आवश्यकता होने पर पाइपलाइनों में शामिल होना है।
उपरोक्त उदाहरण के साथ जारी रखें:
सबसे पहले, गुण और नियंत्रण के अभिभावक-बच्चे के संबंध सहित एक XML फ़ाइल उत्पन्न करें। हम आवश्यक प्रत्येक नियंत्रण के लिए नोड्स जोड़ते हैं: नोड नाम अद्वितीय है ताकि हम नाम से तुरंत नियंत्रण पा सकें, और कमांड और इसके गुणों को नोड्स के गुणों के रूप में सेट किया गया है।
हमारे द्वारा टेस्ट किए गए फॉर्म का XML फ़ाइल यहाँ है:
कुछ कार्यों को xml फ़ाइल खोजकर पाइपलाइनों में शामिल होने और उन्हें निष्पादित करने के लिए परिभाषित किया जाना चाहिए:
function getPipeline($nodeName) { $object_xml = (Invoke-WebRequest(controls.xml')) $control = $object_xml.SelectSingleNode('//$nodeName ') $pipeline = '' do { $string = '' $string = $control.method foreach($a in $control.Attributes) { if(!$a.Name.ToLower().Equals('method')) { $string = $string + ' -' + $a.Name + ' '' +$a.Value +''' } } $ pipeline = $string + ' |' +$ pipeline $control= $control.ParentNode } while (!$control.Name.Equals('#')) return $pipeline.Remove($pipeline.length-1,1) } function setText($textbox,$value) Set-UiaEditText -text $value' Invoke-Expression $iex function selectItem($combobox,$item) { #get the pipeline and invoke the expression } function toggleRadioButton($radioButton) { #get the pipeline and invoke the expression } function click($control) { #get the pipeline and invoke the expression }
अब तक, ये लगभग एक बार के कार्य हैं जब तक कि नियंत्रण खुद नहीं बदलते।
अब हम निम्नलिखित स्क्रिप्ट में चरणों को स्वचालित कर सकते हैं:
#import the functions defined previously . MyLibrary.ps1 setText 'Name' 'Anna Smith' selectItem 'Gender' 'Female' toggleRadioButton 'Graduated' click 'Submit'
इस तरह, हम स्क्रिप्ट में पाइपलाइनों के गुच्छों से छुटकारा पा सकते हैं, और प्रवीणता में बहुत सुधार किया जाएगा।
अनुशंसित पढ़ने => सिकली जीयूआई ऑटोमेशन टूल का परिचय
निष्कर्ष:
Microsoft UIAutomation उन लोगों के लिए एक बेहतरीन लाइब्रेरी है जो PowerShell के साथ Windows डेस्कटॉप पर UI स्वचालन परीक्षण करना चाहते हैं।
उपर्युक्त परिचय उपकरण का एक खंड है। इसका सरलीकृत दृष्टिकोण परीक्षण लिपियों से डेटा निकालने के विचार से प्रेरित है, जो स्वचालन परीक्षण लिखने में हमारी दक्षता में सुधार करने का एक अच्छा तरीका है। इसके बारे में और अन्वेषण करें यहां ।
कृपया नीचे अपनी टिप्पणी साझा करें और हम UIAutomation उपयोगकर्ताओं से अनुभव सुनना पसंद करेंगे।
अनुशंसित पाठ
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- SeeTest ऑटोमेशन ट्यूटोरियल: मोबाइल टेस्ट ऑटोमेशन टूल गाइड
- DevOps स्वचालन: DevOps अभ्यास में स्वचालन कैसे लागू होता है
- Geb Tutorial - Geb टूल का उपयोग करके ब्राउज़र ऑटोमेशन परीक्षण
- ऑटोमेशन परीक्षण क्या है (टेस्ट ऑटोमेशन शुरू करने के लिए अंतिम गाइड)
- सेलेंड्रोइड ट्यूटोरियल: एंड्रॉइड मोबाइल टेस्ट ऑटोमेशन फ्रेमवर्क (भाग 1)
- Katalon Studio Tutorial: एक निःशुल्क टेस्ट ऑटोमेशन टूल जिसका आपको इंतजार है
- ग्रहण के लिए Appium Studio: ग्रहण से अंत तक एंडियम / सेलेनियम स्वचालन