learn advanced soapui groovy scripting concepts soapui tutorial 9
Попередні навчальні посібники SoapUI були введенням у SoapUI та його концепції програмування. Відтепер ми переходимо до більш вдосконалених концепцій сценаріїв Groovy. Давайте будемо цим Оператори умовного потоку - як булеві, так і повторювані твердження. Тоді ми перейдемо до збору масивів.
Це 9-й підручник у нашому Серія підручників SoapUI .
Умовні оператори використовуються для управління потоком виконання. Ось різні типи умовних операторів у Groovy.
Що ви дізнаєтесь:
- №1. Елементи керування або логічні оператори:
- №2. Циклічні або повторювані висловлювання:
- №3. Колекція масивів:
- Висновок
- Рекомендована література
№1. Елементи керування або логічні оператори:
Ці твердження призводять до істини чи хибності на основі логічних умов. Вони бувають І, АБО і НІ. Використовувані символи - «&& (та)», «|» | і ‘! (Вигук) ’відповідно. Поведінка така, як згадується в таблиці правди:
Таблиця правдивості оператора:

Таблиця правди оператора “АБО”:

Оператор “NOT” з метою заперечення
Умовне твердження: мови програмування підтримують такі умовні оператори:
- Якщо ... ще заява
- Якщо ... інакше, якщо ... ще заява
- Тернарний оператор
- Оператор перемикання
A) if ... else блокує синтаксис:
якщо
{
}
Інакше
{
}
У цьому синтаксисі, коли зустрічається істина, даний оператор буде виконано. Нам потрібно вкласти оператори фігурними дужками, якщо блок містить більше одного рядка. Це вказує, що весь блок повинен виконуватися на основі умови.
Подивіться на приклад фрагмента коду.
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'); } Ан якщо ... ще ... оператор повинен містити лише один блок 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)
Ось знімок екрана для вищезазначеного сценарію.

D) Корпус перемикача: Це твердження допускає кілька умовних гілок з різними значеннями. Також він підтримує порівняння посилань на об'єкти класу, регулярних виразів, колекцій, таких як масиви, списки тощо.
Перемикач
{
випадок:
;
перерва;
випадок:
;
перерва;
за замовчуванням:
;
}
справа оператори порівнюють значення з перемикач значення справи. Якщо це збіг, тоді виконується відповідний блок справи. Після виконання блоку його слід зупинити ключовим словом “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).
Ми можемо використовувати наступні ітеративні висловлювання у скрипті groovy:
- Для циклу
- Хоча цикл
Для циклу:
для (;;)
{
;
}
У наведеному вище синтаксисі ініціалізація позначає початкову точку циклу і на основі циклу умови продовжить або зупинить виконання.
Дивіться нижче сценарій
для (int i = 1; i<=10; i++)
{
log.info (‘Цикл повторений’ + i + ‘разів);
}
Наведений вище сценарій дасть результати, як показано на наступному скріншоті.

Тепер давайте використаємо оперативне твердження та ітераційне твердження у нашому реальному світі тестування. Виконайте наступні кроки:
- Додайте 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”:
Синтаксис:
поки
{
;
}
Вищевказану логіку можна також реалізувати, використовуючи цикл “while”.
Отже, суть полягає в тому, що ітеративне твердження може бути використано для:
- Виконуйте тестові кейси або етапи тесту неодноразово
- Контролюйте потік виконання за допомогою операторів управління.
№3. Колекція масивів:
Колекція масивів допомагає зберігати кілька значень в одній змінній або об’єкті. Індекс масиву за замовчуванням починається з нуля, і нам потрібно використовувати цей індекс з іменем масиву для доступу до відповідного значення, що зберігається в масиві. Синтаксис для оголошення масивів у groovy скрипті:
arrayName = новий об'єкт (5) або,
arrayName = новий об'єкт (10) () або,
arrayName = новий об'єкт (10) (10) ()
Примітка : При оголошенні масивів ми повинні вказати початковий розмір, інакше це призведе до помилки компіляції. Ось простий приклад для одновимірного масиву.
ArrayObj = новий об’єкт (5);
ArrayObj (0) = “Testcase1”;
ArrayObj (1) = “Testcase2”;
ArrayObj (2) = “Testcase3”;
ArrayObj (3) = “Testcase4”;
ArrayObj (4) = “Testcase5”;
А тепер давайте реалізуємо це на наших регулярних етапах тестування. Тож додайте властивість, запит на тестування та крок тесту сценарію під тестовий пакет проекту, як показано на наступному скріншоті.
місця для перегляду аніме безкоштовно

А потім двічі клацніть на кроці тесту сценарію та напишіть наступний сценарій.
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, перемикач та потрійні оператори. Ці оператори контролюються логічними операторами, такими як AND, OR, NOT. У порівнянні з блоком 'перемикання' блок 'якщо' швидкий і простий. Для обробки кількох колекцій, таких як масиви, для ітерації процесу тестування, оператори циклу є критичними.
Наступний підручник SoapUI No10 : У наступному дописі ми дізнаємось “Об’єктно-орієнтований Groovy сценарій у SoapUI”.
Більш корисні концепції з’являться в наступних навчальних посібниках SoapUI Groovy Script. Продовжуйте читати, і, будь ласка, поділіться своїм досвідом та запитаннями в коментарях нижче.
Рекомендована література
- Як обробляти винятки у сценаріях Groovy SoapUI - Підручник No11 з SoapUI
- Як написати базовий скрипт Groovy в SoapUI - Підручник SoapUi No6
- Як використовувати властивості у сценарії Groovy SoapUI - Підручник SoapUI No7
- Поглиблені підручники Eclipse для початківців
- 4 найважливіші особливості SoapUI Pro для аудиторії Pro - Підручник No 12
- 15+ підручників SoapUI: найкращий інструмент тестування API веб-служб
- Покроковий процес завантаження та встановлення SoapUI - Підручник SoapUI No3
- Короткий посібник SoapUI для зберігання даних запитів та відповідей у файлі - Підручник SoapUI # 15