powershell uiautomation tutorial
Водич за ПоверСхелл УИАутоматион: УИ Аутоматион оф Десктоп Апплицатионс
УИАутоматион је екстензија ПоверСхелл пројекта отвореног кода за ГУИ тестове аутоматизације. Подржава Вин32, Виндовс образац, ВПФ итд.
У овом упутству ћемо се фокусирати на то како ПоверСхелл користи модул за примену аутоматизације корисничког интерфејса. Да бисмо то објаснили, користићемо апликацију Виндовс образац као пример.
Шта ћете научити:
- Први кораци са Мицрософт УИАутоматион
- Увоз УИАутоматион
- УИ Аутоматизација са примерима
- Пронађите однос родитеља и детета и својства контроле
- Напредна примена: поједноставити приступ писању скрипте
- Закључак:
- Препоручено читање
Први кораци са Мицрософт УИАутоматион
Будући да пројекат пружа једину библиотеку за ПоверСхелл скрипте, не захтева инсталацију, можемо само преузети модул и увести га у скрипту.
Такође прочитајте => 35+ најбољих алата за тестирање графичког интерфејса са комплетним детаљима
Да бисте сазнали више о ПоверСхелл-у и да бисте разумели како започети с њом, погледајте:
- УИ Аутоматион ПоверСхелл Проширења
- Преглед аутоматизације корисничког интерфејса
- Виндовс ПоверСхелл
- Цоол Стуфф о ПоверСхелл 5.0 у Виндовс 10
Увоз УИАутоматион
1) Преузмите и распакујте најновији пакет са његове званичне веб странице: УИ Аутоматион ПоверСхелл Проширења до окалне стазе,на пример, Ц: УИАутоматион
два) Увезите модул у ПоверСхелл скрипту: ( Белешка : Када покренете ову команду, уверите се да не користите ПоверСхелл као администратор)
Import-Module C:UIAutomationUIAutomation.dll
Сада можемо користити команде дефинисане у модулу да започнемо тестирање аутоматизације корисничког интерфејса.
УИ Аутоматизација са примерима
Почнимо са једноставном апликацијом Виндовс обрасца, која покрива неке типичне контроле које можемо видети у тестирању аутоматизације ГУИ.
У овом примеру нам је речено да аутоматизујемо кораке за подношење обрасца са неким основним личним подацима:
Корак 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) Скрипта прво проналази горњи прозор, а затим проналази своју подређену контролу кроз цевовод. То ради док не пронађе циљну контролу - оквир за уређивање (или оквир за текст) са именом „Име“.
два) По проналажењу контроле, он тврди за тип контроле како бисте знали коју наредбу да користите, нпр. Гет-УИАВиндов - је прозор, а Гет-УИАЕдит - поље за уређивање / текст.
3) Такође захтева једно или више својстава контроле. У овом примеру користимо само Наме као својство за идентификацију контроле. Белешка : АутоматионИд и Цласс су такође својства која се обично користе при проналажењу контроле.
4) Након што се пронађе циљна контрола, користимо другу наредбу за позивање радње на контроли. У овом примеру је Сет-УИАТектБокТект да бисте поставили текст за оквир за текст.
Ово је главни начин да УИ Аутоматион оствари аутоматизацију УИ.
најбољи бесплатни заштитни зид за Виндовс 10 2018
Наредбе за различите типове контрола и наредбу за позивање радњи можете пронаћи у документима за помоћ његове званичне странице: УИ Аутоматион ПоверСхелл Проширења
Остали кораци су слични вену. Дакле, пређимо сада на друге важне теме.
Пронађите однос родитеља и детета и својства контроле
Једноставно је написати такве цевоводе, али важан део је како пронаћи својства и подређене контроле које садрже циљну контролу. Према мом искуству, ово сам пробао:
# 1) Користите УИАутоматионСпи у пакету:
У пакету који смо преузели постоји алатка која може да ухвати контроле на радној површини. Када је кориснички интерфејс спреман на радној површини, отворите УИАутомат ионСпи.еке :
- Кликните на „Старт“ да бисте започели снимање.
- Померите курсор на контролу коју ћете снимити.
- Када нађете да је контрола истакнута и скрипта приказана на њеном интерфејсу прозора, то значи да је снимање успешно.
- Кликните на „Стоп“ да зауставите снимање.
- Кликните картицу „Хијерархија“ са леве стране и видећете однос родитеља и детета контролера од врха до циља
- Кликните картицу „Сцрипт“ с десне стране, можете видети цео цевовод за контролу:
Имајте на уму да не морамо да укључујемо сваку контролу и свако својство из цевовода да бисмо тражили циљану контролу. Заправо, оно што користимо је прилично једноставно (погледајте пример горе):
спајање сортирања ц ++ имплементације
Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'
Нажалост, не постоји званични сребрни метак о томе колико контрола треба да буде укључено. То захтева покушај и искуство.
Шта није тако сјајно у вези са УИАутоматионСпи:
- Нема пријатељски интерфејс
- Мораћете да снимите једну контролу за другом и добијете жељене детаље.
# 2) Користите спољне алате за преглед контрола за Виндовс радну површину
Предложени алат је инспецт.еке који нуди Мицрософт. Када отворите алатку, на прозору ћете добити све детаље о контролама:
Шта није сјајно у вези са инспецт.еке
- Не постоји начин за извоз детаља.
- Модул за аутоматизацију корисничког интерфејса пружа неке наредбе као што је Гет-УИАЦонтролЦхилдрен за добијање свих подређених контрола. инспецт.еке може да прекрижи све контроле испод прозора, али перформансе се не процењују за сложене прозоре.
Напредна примена: поједноставити приступ писању скрипте
Из горњег увода можете видети да су цевоводи главни начин писања скрипте помоћу модула, мада понекад цевоводи нису тако дуги. Постоји приступ који ће то учинити једноставнијим и лакшим, а главна идеја је издвајање података контрола у КСМЛ датотеку и спајање цевовода када је потребно из КСМЛ датотеке.
Наставимо са горњим примером:
Прво генеришите КСМЛ датотеку која укључује својства и однос родитеља и детета контрола. Чворове додајемо за сваку потребну контролу: име чвора је јединствено тако да контролу можемо одмах пронаћи по имену, а наредба и њена својства постављају се као својства чворова.
Ево КСМЛ датотеке за тест образац који тестирамо:
Неке функције треба дефинисати да се спајају цјевоводима претрагом кмл датотеке и извршавањем:
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'
На овај начин можемо се ослободити гомиле цевовода у скриптама, а способност ће се знатно побољшати.
Препоручено читање => Увод у Сикули ГУИ Аутоматион Тоол
Закључак:
Мицрософт УИАутоматион је сјајна библиотека за оне који желе да изврше тестове аутоматизације корисничког интерфејса на Виндовс радној површини са ПоверСхелл-ом.
Горњи увод је само сегмент алата. Његов поједностављени приступ инспирисан је идејом издвајања података из скрипти за тестирање, што је добар начин да побољшамо своју способност писања тестова аутоматизације. Истражите више о томе овде .
Поделите своје коментаре у наставку и волели бисмо да чујемо искуства корисника УИАутоматион.
Препоручено читање
- Дубински водичи за помрачење за почетнике
- Водич за аутоматизацију СееТеста: Водич за алат за аутоматизацију мобилних тестова
- ДевОпс аутоматизација: Како се аутоматизација примењује у пракси ДевОпс
- Водич за Геб - Тестирање аутоматизације прегледача помоћу алата Геб
- Шта је испитивање аутоматизације (ултимативни водич за покретање аутоматизације теста)
- Водич за Селендроид: Оквир за аутоматизацију Андроид мобилних тестова (1. део)
- Водич за Каталон Студио: Бесплатни алат за аутоматизацију теста који сте чекали
- Аппиум Студио за Ецлипсе: Аутоматска аутоматизација Аппиум / Селениум из Ецлипсе-а