learn advanced soapui groovy scripting concepts soapui tutorial 9
Önceki SoapUI eğitimleri, SoapUI ve onun programlama kavramlarına giriş niteliğindedir. Bundan sonra daha gelişmiş Groovy komut dosyası oluşturma kavramlarına geçeceğiz. Bu olalım Koşullu akış ifadeleri - hem Boole hem de yinelemeli ifadeler. Sonra dizi koleksiyonuna geçeceğiz.
Bu, sitemizdeki 9. öğreticidir. SoapUI eğitim serisi .
Koşul ifadeleri, yürütme akışını kontrol etmek için kullanılır. Groovy'deki farklı koşullu ifade türleri.
Ne öğreneceksin:
- # 1. Kontrol veya mantıksal ifadeler:
- # 2. Döngü veya Yinelemeli İfadeler:
- # 3. Diziler Koleksiyonu:
- Sonuç
- Önerilen Kaynaklar
# 1. Kontrol veya mantıksal ifadeler:
Bu ifadeler, mantıksal koşullara bağlı olarak doğru veya yanlış ile sonuçlanır. AND, OR ve NOT. Kullanılan semboller '&& (ve)', '|' | ve '! (Ünlem) 'sırasıyla. Davranış, doğruluk tablosunda belirtildiği gibidir:
'Ve' Operatör doğruluk tablosu:
'VEYA' operatör doğruluk tablosu:
Olumsuzluk amaçlı 'DEĞİL' operatörü
Koşullu ifade: programlama dilleri aşağıdaki koşullu ifadeleri destekler:
- If ... else ifadesi
- If… else if… else ifadesi
- Üçlü operatör
- Anahtar deyimi
A) if… else sözdizimini engelle:
Eğer
{
}
Başka
{
}
Bu sözdiziminde, true karşılandığında, verilen ifade çalıştırılır. Blok birden fazla satır içeriyorsa, ifadeleri küme parantezi içine almamız gerekir. Bu, tüm bloğun koşula göre yürütülmesi talimatını verir.
Örnek kod parçacığına bakın.
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'); }
Bir eğer… değilse… ifadesi yalnızca bir ELSE bloğu içermelidir.
B) Birden çok koşullu blok: if… else if… else sözdizimi
Eğer
{
}
Aksi takdirde
{
}
Başka
{
}
If… else if… else ifade bundan biraz farklı eğer… değilse… ifade- sahip olduğu terimlerle Aksi takdirde blok. Bu blok, birden fazla koşul eklemek için kullanılır. Aşağıdaki örneğe bakın.
şirketlerin izleyeceği şeylerin interneti
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'); }
Ve yukarıdaki komut dosyasının çıktı ekran görüntüsüne bakın: Ayrıca, bunu boolen operatörü örneği için de referans olarak kullanın:
C) Üçlü operatör:
Bu operatör benzer şekilde çalışır eğer ... değilse Beyan. YANLIŞ / varsayılan ifadeler için soru işareti (DOĞRU) ve iki nokta üst üste gibi iki işlenen vardır.
def A = 100
def B = (A> 100) ? 'GEÇTİ': 'BAŞARISIZ'
log.info (B)
İşte yukarıdaki komut dosyasının ekran görüntüsü.
D) Anahtar kutusu: Bu ifade, farklı değerlere sahip birden çok koşullu dallara izin verir. Ayrıca sınıf nesnesi referanslarının, düzenli ifadelerin, diziler gibi koleksiyonların, listelerin vb. Karşılaştırılmasını destekler.
Değiştirmek
{
durum :
;
kırmak;
durum :
;
kırmak;
varsayılan:
;
}
durum ifadeler değerleri ile karşılaştırır değiştirmek durum değeri. Bir eşleşme ise, karşılık gelen durum bloğu çalıştırılır. Blok yürütüldüğünde, 'break' anahtar sözcüğü ile durdurulmalıdır. Case ifadesinin sonunda 'break' anahtar kelimesini kaçırırsak, yürütme sonraki case ifadesine taşınacaktır ve bu gerekli olmayabilir. Vakaların hiçbirinin doğru olmaması durumunda, varsayılan blok yürütülecektir. Groovy'nin java kitaplıklarıyla birleştirildiği için tüm büyük operatörleri ve anahtar kelimeleri desteklediğini lütfen unutmayın.
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. Döngü veya Yinelemeli İfadeler:
Bunlar, ihtiyaç duyduğumuz her an tekrarlamayı mümkün kılar ve özellikle veri odaklı testler için kullanışlıdır.
Örneğin, bir excel dosyasında birkaç posta kodumuz olduğunu varsayalım. Tüm posta kodlarını excel dosyasından tek tek alıp servise iletmek, yani GetSuppliersZipcode yinelemeli ifadeler kullanabiliriz. SoapUI ayrıca veri kaynağı ve veri kaynağı döngü testi adımları olarak adlandırılan alternatif bir özellik sağlar. (Yalnızca SoapUI Pro deneme ve lisanslı sürümlerde mevcuttur.)
Bu yinelemeli ifadeleri harika komut dosyasında kullanabiliriz:
- Döngü için
- Döngü sırasında
Döngü için:
için (; ; )
{
;
}
Yukarıdaki sözdiziminde, başlatma, döngünün başlangıç noktasını belirtir ve koşul döngüsüne bağlı olarak yürütmeyi sürdürür veya durdurur.
Aşağıdaki komut dosyasına bakın
for (int i = 1; i<=10; i++)
{
log.info (‘Yinelenen Döngü’ + i + ‘kez’);
}
.7z dosyası mac nasıl açılır
Yukarıdaki komut dosyası, sonuçları aşağıdaki ekran görüntüsünde gösterildiği gibi üretecektir.
Şimdi gerçek test dünyamızda kontrol ifadesini ve yinelemeli ifadeyi kullanalım. Aşağıdaki adımları izleyin:
- İstediğiniz adla Testcase ekleyin. 'T9_GetSupplierByZipCode_TestCase' olarak oluşturdum.
- Ardından, 'Property_Zipcode' adlı bir mülk ekleyin
- 'GetSupplierByZipCode' hizmeti için Test İsteği adımı ekleyin ve özellik adını ekran görüntüsünde gösterildiği gibi isteğe ekleyin.
Aşağıdaki ekran görüntüsünde gösterildiği gibi harika komut dosyası test adımı ekleyin.
Harika komut dosyası düzenleyicide aşağıdaki komut dosyasını yazın.
for (int zipCode=1; zipCode5) { log.info('**************Stopped Execution*************'); break; } testStep.run(testRunner,context); log.info('Executed ' + zipCode + ' times') }
Aşağıdaki sonuç, günlükte ve servis yanıt ekranında alınır.
(Büyütmek için resme tıklayınız)
sql sorgu uygulama soruları yanıtları pdf
'döngü sırasında:
Sözdizimi:
süre
{
;
}
Yukarıdaki mantık, 'while' döngüsü kullanılarak da uygulanabilir.
Bu nedenle, esas, yinelemeli ifadenin aşağıdakiler için kullanılabileceğidir:
- Test senaryolarını veya test adımlarını tekrar tekrar yürütün
- Kontrol ifadeleri aracılığıyla yürütme akışını kontrol edin.
# 3. Diziler Koleksiyonu:
Dizi koleksiyonu, tek bir değişken veya nesnede birden çok değeri depolamaya yardımcı olur. Dizi dizini varsayılan olarak sıfırdan başlar ve dizide depolanan ilgili değere erişmek için bu dizini dizi adıyla birlikte kullanmamız gerekir. Harika komut dosyasında dizileri bildirmek için sözdizimi:
arrayName = new Object (5) veya,
arrayName = new Object (10) () veya,
arrayName = new Object (10) (10) ()
Not : Dizileri bildirirken başlangıç boyutunu belirtmeliyiz, aksi takdirde bir derleme hatası verir. İşte tek boyutlu dizi için basit bir örnek.
ArrayObj = new Object (5);
ArrayObj (0) = 'Testcase1';
ArrayObj (1) = 'Testcase2';
ArrayObj (2) = 'Testcase3';
ArrayObj (3) = 'Testcase4';
ArrayObj (4) = 'Testcase5';
Şimdi bunu normal test adımlarımızda uygulayalım. Bu nedenle, aşağıdaki ekran görüntüsünde gösterildiği gibi proje test paketinin altına özellik, test isteği ve komut dosyası test adımı ekleyin.
Ardından komut dosyası test adımına çift tıklayın ve aşağıdaki komut dosyasını yazın.
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.
Dolayısıyla diziler, farklı türlerdeki birden çok öğeyi işlemek için çok kullanışlıdır. Daha fazla uygulama, daha iyi anlayışı ve kullanım kolaylığını geliştirecektir.
Sonuç
Bu, IF… ELSE, anahtar ve üçlü ifadeleri içeren koşullu veya mantıksal bloklara örneklerle genel bir giriştir. Bu ifadeler AND, OR, NOT gibi mantıksal operatörler tarafından kontrol edilir. 'Anahtar' bloğu ile karşılaştırıldığında 'if' bloğu hızlı ve basittir. Test sürecini yinelemek için diziler gibi birden çok koleksiyonu işlemek için döngü ifadeleri önemlidir.
Sonraki SoapUI öğreticisi # 10 : Bir sonraki yazıda 'SoapUI'de Nesne Tabanlı Groovy Scripting' öğreneceğiz.
Bir sonraki SoapUI Groovy Script eğitimlerinde daha kullanışlı kavramlar geliyor. Okumaya devam edin ve lütfen deneyimlerinizi ve sorularınızı aşağıdaki yorumlarda paylaşın.
Önerilen Kaynaklar
- SoapUI Harika Komut Dosyalarında İstisna Nasıl İşlenir - SoapUI Eğitimi # 11
- SoapUI'de Temel Harika Senaryo Nasıl Yazılır - SoapUi Eğitimi # 6
- SoapUI Groovy Komut Dosyasında Özellikler Nasıl Kullanılır - SoapUI Eğitimi # 7
- Yeni Başlayanlar İçin Derinlemesine Tutulma Öğreticileri
- Pro Audience için SoapUI Pro'nun 4 Önemli Özelliği - SoapUI Eğitimi # 12
- 15+ SoapUI Öğreticisi: En İyi Web Hizmetleri API Test Aracı
- Adım Adım SoapUI İndirme ve Kurulum İşlemi - SoapUI Eğitimi # 3
- İstek ve Yanıt Verilerini Bir Dosyada Saklamak İçin Hızlı Bir SoapUI Kılavuzu - SoapUI Eğitimi # 15