learn advanced soapui groovy scripting concepts soapui tutorial 9
Претходни водичи за СоапУИ представљали су увод у СоапУИ и његове концепте програмирања. Од сада ћемо прећи на напредније концепте Гроови скриптирања. Будимо ово са Извештаји условног тока - и логичке и итеративне изјаве. Затим ћемо прећи на колекцију низова.
покрените .јар датотеку Виндовс 10
Ово је 9. туторијал у нашем Серија туторијала за СоапУИ .
Условни искази се користе за контролу тока извршења. Ево различитих врста условних изјава у Гроови-у.
Шта ћете научити:
- # 1. Контролни или логички искази:
- # 2. Изјаве у петљи или понављање:
- # 3. Колекција низова:
- Закључак
- Препоручено читање
# 1. Контролни или логички искази:
Резултат ових изјава је тачно или нетачно на основу логичких услова. Они су И, ИЛИ И НЕ. Симболи који се користе су „&& (и)“, „|’ | и '! (Усклик) ’. Понашање је споменуто у табели истине:
Табела истинитости оператора:
Табела истинитости оператора „ИЛИ“:
„НОТ“ оператор у сврху негације
Условна изјава: програмски језици подржавају следеће условне изјаве:
- Ако ... друга изјава
- Иф ... елсе иф ... елсе изјава
- Тернарни оператер
- Изјава о пребацивању
А) ако ... иначе блокира синтаксу:
ако
{
}
Елсе
{
}
У овој синтакси, када се испуни тачно, извршиће се дата наредба. Изјаве треба да приложимо коврџастим заградама ако блок садржи више од једне линије. Ово упућује да цео блок треба да се изврши на основу услова.
Погледајте пример фрагмента кода.
int a=100 int b=200 if (a>b) { log.info('B is greater than A'); } else { log.info('A is greater or both are equal'); }
Ан ако друго… изјава треба да садржи само један ЕЛСЕ блок.
Б) Више условних блокова: иф ... елсе иф ... елсе синтакса
ако
{
}
Иначе ако
{
}
Елсе
{
}
Ако ... друго ако ... друго изјава се мало разликује од ако друго… изјава- у смислу да има иначе ако блокирати. Овај блок се користи за додавање више услова. Погледајте следећи пример.
int a=100 int b=200 int c=300 if (a>b && a>c) { log.info('A is greater than B and C'); } else if (b>a && b>c) { log.info('B is greater than A and C'); } else { log.info('C is greater than A and B or All are equal numbers'); }
И погледајте излазни снимак екрана за горњу скрипту: Такође, молимо вас да користите ово као референцу и за пример боолен оператора:
како ручно тестирати веб услуге
Ц) Тернарни оператер:
Овај оператер ради слично ако друго изјава. Има два операнда као што су упитник (ТРУЕ) и двотачка за ФАЛСЕ / дефаулт наредбе.
деф А = 100
деф Б = (А> 100) ? „ПАСС“: „ФАИЛ“
лог.инфо (Б)
Ево снимка екрана за горњу скрипту.
Д) Кутија прекидача: Ова изјава омогућава више условних грана са различитим вредностима. Такође подржава поређење референци предмета класе, регуларних израза, колекција као што су низови, листе итд.
Пребаци
{
случај:
;
пауза;
случај:
;
пауза;
Уобичајено:
;
}
Тхе случај изјаве упоређују вредности са прекидач вредност случаја. Ако се подудара, тада се извршава одговарајући блок случаја. Једном када се блок изврши, треба га зауставити кључном речи „бреак“. Ако смо пропустили кључну реч „бреак“ на крају изјаве случаја, извршење ће бити премештено на следећу изјаву случаја - а то можда неће бити потребно. У случају да ниједан од случајева није тачан, Уобичајено блок ће бити извршен. Имајте на уму да Гроови подржава све главне операторе и кључне речи јер су уграђени у Јава библиотеке.
def country='India' switch(country) { case 'Japan': log.info('Country matched with 1st case statement'); break; case 'Australia': log.info('Country matched with 2st case statement'); break; case 'India': log.info('Country matched with 3st case statement'); break; default: log.info('None of the matches available :('); }
Here’s the output screenshot for the above script.
# 2. Изјаве у петљи или понављање:
Они омогућавају понављање кад год је потребно и посебно су корисни за тестирање на основу података.
На пример, претпоставимо да у екцел датотеци имамо неколико поштанских бројева. Да бисте преузели све поштанске бројеве један по један из екцел датотеке и проследили их сервису, тј. ГетСупплиерсЗипцоде , можемо користити итеративне изјаве. СоапУИ такође нуди алтернативну функцију под називом кораци за тестирање извора података и петље извора података (доступно само у пробној верзији СоапУИ Про и лиценцираним верзијама)
У гроови скрипти можемо користити следеће итеративне изјаве:
- За петљу
- Док петља
За петљу:
за (; ; )
{
;
}
У горњој синтакси, иницијализација означава почетну тачку петље и на основу петље услова наставиће или зауставити извршавање.
Погледајте доњу скрипту
за (инт и = 1; и<=10; i++)
{
лог.инфо („Петља поновљена„ + и + „пута“);
}
Изнад скрипте ће се добити резултати као што је приказано на следећем снимку екрана.
Сада ћемо користити контролну изјаву и итеративну изјаву у нашем стварном свету тестирања. Следите кораке у наставку:
- Додајте Тестцасе са вашим жељеним именом. Направио сам као „Т9_ГетСупплиерБиЗипЦоде_ТестЦасе“.
- Затим додајте својство под називом „Проперти_Зипцоде“
- Додајте корак захтева за тест за услугу „ГетСупплиерБиЗипЦоде“ и ставите име својства у захтев као што је приказано на снимку екрана.
Додајте корак тестирања гроови скрипте као што је приказано на следећем снимку екрана.
У гроови едитор скрипти напишите следећу скрипту.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Следећи резултат се добија у евиденцији, као и на екрану одговора на услугу.
(Кликните на слику за увећани приказ)
Петља „вхиле“:
Синтакса:
док
{
;
}
улога пословног аналитичара у окретном обрачуну
Горња логика се такође може применити помоћу петље „вхиле“.
Отуда је суштина у томе да се итеративна изјава може користити за:
- Извршите тест случајеве или кораке тестирања више пута
- Контролишите ток извршења кроз контролне изјаве.
# 3. Колекција низова:
Збирка низова помаже у чувању више вредности у једној променљивој или објекту. Индекс низа подразумевано почиње на нули и морамо да користимо тај индекс са именом низа за приступ одговарајућој вредности ускладиштеној у низу. Синтакса за декларацију низова у гроови скрипти:
арраиНаме = нови објект (5) или,
арраиНаме = нови објект (10) () или,
арраиНаме = нови објект (10) (10) ()
Белешка : Док декларишемо низове, морамо навести почетну величину, у супротном ће се појавити грешка при компајлирању. Ево једноставног примера за једнодимензионални низ.
АрраиОбј = нови објект (5);
АрраиОбј (0) = “Тестцасе1”;
АрраиОбј (1) = “Тестцасе2”;
АрраиОбј (2) = “Тестцасе3”;
АрраиОбј (3) = “Тестцасе4”;
АрраиОбј (4) = “Тестцасе5”;
Сада ћемо то применити у нашим редовним тест корацима. Дакле, додајте својство, захтев за тест и корак тестирања скрипте у пакет за тестирање пројекта, као што је приказано на следећем снимку екрана.
А затим двапут кликните на корак тестирања скрипте и напишите следећу скрипту.
def MAX_LIMIT = 5 def zipCodes = new Object(MAX_LIMIT) zipCodes(0) = '92704' zipCodes(1) = '99362' zipCodes(2) = '31401' zipCodes(3) = '90247' zipCodes(4) = '87102' int i=0; while (i<5) { if (i<5) { testRunner.testCase.testSteps('Properties'). setPropertyValue('Property_Zipcode',zipCodes(i)); def testStep = testRunner.testCase.testSteps('GetSupplierByZipCode'); testStep.run(testRunner,context); log.info('Loop executed ' + i + ' times'); } i++; } log.info('Testcase execution is completed....');
In this script, we initialized array object as 5 and assigned five zip codes in each array location respectively. Next part of the script is iterative block. Here we iterate the loop up to 5 times. Each time array value will be assigned to the property and then move to GetSupplierByZipCode web service to pass this array value in the request. After that, service step will be executed with the zip code. Finally we will get the following message in the log as shown in the screenshot.
Дакле, низови су врло корисни за обраду више елемената различитих типова. Више праксе ће подстаћи боље разумевање и једноставност употребе.
Закључак
То је био свеукупни увод са примерима условних или логичких блокова који укључују ИФ ... ЕЛСЕ, свитцх и тернарне изјаве. Овим исказима управљају логички оператори попут АНД, ОР, НОТ. У поређењу са блоком „пребаци“, блок „ако“ је брз и једноставан. Извештаји о петљи су критични за обраду више колекција попут низова ради понављања процеса тестирања.
Следећи водич за СоапУИ бр. 10 : У следећем посту ћемо научити „Објектно оријентисано Гроови скриптирање у СоапУИ“.
Још корисних концепата долази у следећим водичима за СоапУИ Гроови Сцрипт. Наставите да читате и поделите своја искуства и упите у коментарима испод.
Препоручено читање
- Како се рукује изузетком у СоапУИ Гроови скриптама - Водич за СоапУИ бр. 11
- Како написати основну Гроови скрипту у СоапУИ - Туториал бр. 6 за СоапУи
- Како се користе својства у СоапУИ Гроови Сцрипт - Туториал бр. 7 за СоапУИ
- Дубински водичи за помрачење за почетнике
- 4 важне карактеристике СоапУИ Про-а за професионалну публику - Водич за СоапУИ бр. 12
- 15+ водича за СоапУИ: Најбољи алат за тестирање АПИ-ја за веб услуге
- Корак по корак Процес преузимања и инсталирања СоапУИ - Водич за СоапУИ бр. 3
- Кратки водич за СоапУИ за чување података о захтевима и одговорима у датотеци - Водич за СоапУИ бр. 15