learn advanced soapui groovy scripting concepts soapui tutorial 9
Предишните уроци за SoapUI бяха въведение в SoapUI и неговите концепции за програмиране. Отсега нататък ще преминем към по-усъвършенствани концепции за скриптове на Groovy. Нека бъдем това с Изявления за условен поток - както булеви, така и итеративни изявления. След това ще преминем към събирането на масиви.
най-добрият YouTube към mp3 конвертор безплатно
Това е 9-ият урок в нашия SoapUI серия уроци .
Условни инструкции се използват за контрол на потока на изпълнението. Ето различни видове условни изрази в Groovy.
Какво ще научите:
- # 1. Контролни или логически изявления:
- # 2. Циклични или повторни изявления:
- # 3. Колекция от масиви:
- Заключение
- Препоръчително четене
# 1. Контролни или логически изявления:
Тези твърдения водят до true или false въз основа на логическите условия. Те са И, ИЛИ И НЕ. Използваните символи са ‘&& (и)’, ‘|’ | и '! (Възклицание) “съответно. Поведението е както е споменато в таблицата на истината:
Таблица на истината на оператора:
Таблица на истината на оператора „ИЛИ“:
Оператор „НЕ“ с цел отрицание
Условно изявление: програмните езици поддържат следните условни изрази:
- Ако ... друго изявление
- Ако ... друго, ако ... друго изявление
- Третичен оператор
- Извлечение за превключване
А) ако ... иначе блокира синтаксиса:
ако
{
}
Иначе
{
}
В този синтаксис, когато срещне true, даден оператор ще бъде изпълнен. Трябва да приложим извлеченията с фигурни скоби, ако блокът съдържа повече от един ред. Това инструктира целия блок да се изпълни въз основа на условието.
Вижте примерния кодов фрагмент.
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'); }
An ако ... друго ... израз трябва да съдържа само един ELSE блок.
Б) Множество условни блокове: if ... else if ... else синтаксис
ако
{
}
В противен случай ако
{
}
Иначе
{
}
Ако ... друго, ако ... друго изявление е малко по-различно от ако ... друго ... изявление - по отношение на това, което има иначе ако блок. Този блок се използва за добавяне на множество условия. Погледнете следния пример.
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'); }
И погледнете изходната снимка на екрана за горния скрипт: Също така, моля, използвайте това като справка и за примера на boolen оператор:
функционално тестване срещу нефункционално тестване
В) Третичен оператор:
Този оператор работи подобно на ако ... друго изявление. Той има два операнда като въпросителен знак (TRUE) и двоеточие за FALSE / оператори по подразбиране.
def A = 100
def B = (A> 100) ? “PASS”: “FAIL”
log.info (B)
Ето скрийншота за горния скрипт.
Г) Кейс за превключване: Този оператор позволява множество условни клонове с различни стойности. Също така поддържа сравнение на препратки към обекти на клас, регулярни изрази, колекции като масиви, списъци и т.н.
Превключване
{
случай:
;
почивка;
случай:
;
почивка;
по подразбиране:
;
}
The случай изрази сравняват стойностите с превключвател стойност на случая. Ако е съвпадение, тогава съответният блок на случая се изпълнява. След като блокът бъде изпълнен, той трябва да бъде спрян от ключовата дума 'break'. Ако сме пропуснали ключова дума „break“ в края на изявлението за дело, изпълнението ще бъде преместено към следващото изявление за случай - и това може да не е необходимо. В случай, че нито един от случаите не е верен, по подразбиране блок ще бъде изпълнен. Моля, обърнете внимание, че Groovy поддържа всички основни оператори и ключови думи, тъй като е включен в Java библиотеките.
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. Циклични или повторни изявления:
Те дават възможност за повторение, когато имаме нужда и са особено полезни за тестване на данни.
Например, нека приемем, че имаме няколко пощенски кода в Excel файл. За да изтеглите всички пощенски кодове един по един от файла на Excel и да го предадете на услугата, т.е. GetSuppliersZipcode , можем да използваме итеративни изявления. SoapUI предлага и алтернативна функция, наречена стъпки за тестване на източник на данни и цикъл на източника на данни. (Предлага се само в пробна версия и лицензирани версии на SoapUI Pro.)
Можем да използваме следните итеративни изявления в грууви скрипта:
- За цикъл
- Докато цикъл
За цикъл:
за (; ; )
{
;
}
В горния синтаксис инициализацията означава начална точка на цикъла и въз основа на цикъла на условията ще продължи или ще спре изпълнението.
Вижте скрипта по-долу
за (int i = 1; i<=10; i++)
{
log.info (‘Loop Iterated‘ + i + ‘times’);
}
Горният скрипт ще доведе до резултатите, както е показано на следващата екранна снимка.
Сега нека използваме изявление за контрол и итеративно изявление в нашия реален свят на тестване. Следвайте стъпките по-долу:
- Добавете Testcase с вашето желано име. Създадох като „T9_GetSupplierByZipCode_TestCase“.
- След това добавете свойство, наречено “Property_Zipcode”
- Добавете стъпка за тестова заявка за услугата “GetSupplierByZipCode” и поставете името на свойството в заявката, както е показано на екранната снимка.
Добавете стъпка за тестване на скрипт на groovy, както е показано на следващата екранна снимка.
В редактора на скриптове на groovy напишете следния скрипт.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Следният резултат се получава в дневника, както и в екрана за отговор на услугата.
(Щракнете върху изображението за увеличен изглед)
Цикъл “while”:
Синтаксис:
докато
{
;
}
тестване на уеб услуга, използвайки въпроси за интервю за soapui
Горната логика може да бъде реализирана и чрез цикъла “while”.
Следователно, същността е, че итеративното изявление може да се използва за:
- Изпълнявайте многократно тестовите случаи или тестови стъпки
- Контролирайте потока на изпълнението чрез контролните оператори.
# 3. Колекция от масиви:
Колекцията от масиви помага да се съхраняват множество стойности в една променлива или обект. Индексът на масива започва от нула по подразбиране и трябва да използваме този индекс с име на масив за достъп до съответната стойност, съхранявана в масива. Синтаксис за деклариране на масиви в groovy скрипт:
arrayName = нов обект (5) или,
arrayName = нов обект (10) () или,
arrayName = нов обект (10) (10) ()
Забележка : Докато декларираме масиви, трябва да посочим първоначалния размер, в противен случай това ще доведе до грешка при компилиране. Ето простият пример за едномерния масив.
ArrayObj = нов обект (5);
ArrayObj (0) = “Testcase1”;
ArrayObj (1) = “Тест2”;
ArrayObj (2) = “Testcase3”;
ArrayObj (3) = “Testcase4”;
ArrayObj (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.
Така че масивите са много полезни за обработка на множество елементи с различни типове. Повече практики ще насърчат по-добро разбиране и лекота на използване.
Заключение
Това беше цялостно въведение с примери за условни или логически блокове, които включват IF ... ELSE, превключватели и тройни изрази. Тези изрази се контролират от логическите оператори като И, ИЛИ, НЕ. В сравнение с блок „превключване“ блокът „if“ е бърз и прост. За да се справят с множество колекции като масиви, за да се повтори процесът на тестване, инструкциите за цикъл са критични.
Следващ урок SoapUI # 10 : В следващата публикация ще научим „Обектно-ориентиран Groovy скриптове в SoapUI“.
Още полезни концепции излизат в следващите уроци за SoapUI Groovy Script. Продължавайте да четете и моля, споделете своя опит и въпроси в коментарите по-долу.
Препоръчително четене
- Как да се справям с изключенията в скриптове на SoapUI Groovy - Урок № 11 за SoapUI
- Как да напиша основен скрипт Groovy в SoapUI - Урок SoapUi # 6
- Как да използвам свойствата в SoapUI Groovy Script - Урок № 7 за SoapUI
- Уроци за задълбочено затъмнение за начинаещи
- 4 важни характеристики на SoapUI Pro за професионална аудитория - Урок SoapUI # 12
- 15+ урока за SoapUI: Най-добрият инструмент за тестване на API за уеб услуги
- Стъпка по стъпка Процес на изтегляне и инсталиране на SoapUI - Урок № 3 за SoapUI
- Кратко ръководство за SoapUI за съхраняване на данни за заявки и отговори във файл - Урок SoapUI # 15