how handle exception soapui groovy scripts soapui tutorial 11
V tej vadnici za SoapUI si bomo ogledali ravnanje z izjemami s pomočjo skripta Groovy. Izjeme med izvajanjem v groovy so podobne Java, saj so Java knjižnice integrirane. Vendar bomo v SoapUI razpravljali o osnovnih konceptih in se poglobili v obdelavo izjem v Javi.
To je vadnica št. 11 v seriji vadnic SoapUI . To je zadnja vadnica za brezplačno različico programa SoapUI. V tej seriji je še nekaj tem, ki se nanašajo na funkcije SoapUI pro, storitve REST in SOAP ter podatkovno testiranje v SoapUI.
Začnimo s kratkim uvodom v izjemo:
Kaj je izjema?
An izjema je napaka, do katere pride med izvajanjem programa. To se lahko zgodi iz številnih razlogov, kot so neveljavni podatki, izguba omrežne povezave, poskušanje odprtih datotek, ki niso na voljo, dostop do neveljavnega razreda, uhajanje pomnilnika, tj. lahko zaradi uporabnikov, razvijalcev ali virov strojne opreme.
Kadar med izvajanjem naletimo na izjemo, bo SoapUI poskusil najti vodnika. Handler je blok, ki vsebuje kodo za ujemanje izjeme.
Izjeme so razvrščene v dve vrsti:
- Izjema med izvajanjem
- Izjema za čas prevajanja - se ne uporablja za SoapUI, saj nima eksplicitnega prevajalnika
Oglejte si naslednji posnetek zaslona, ki nam prikazuje izjemo med izvajanjem neveljavne kode. V spodnjem skriptu smo poskušali deliti celo število z 0. V dialogu o napaki je razvidno, da je izjema privzeta iz knjižnic Java in je sporočilo o napaki Delitev z ničlo .
zakaj je linux boljši od windows
To izjemo lahko med izvajanjem ujamemo in programsko obdelamo. Pred tem bomo videli nekaj pomembnih ključnih besed, ki se uporabljajo v konceptih java Java. Nekatere ključne besede lahko uporabite tudi v groovy skriptu. To so:
- Vrzi - Ta ključna beseda nam pomaga, da ročno vržemo izjemo, torej vržemo uporabniško določene izjeme
- Vrže - Uporablja se za klic vnaprej določenih izjem iz definicije metode. Tako bo ujela izjemo, če med izvajanjem odkrijemo napako med izvajanjem.
- Poskusi in Ujemite - ključna beseda 'try' se uporablja s ključno besedo 'catch'. Če lahko predvidimo del programa, kjer lahko med izvajanjem nastane izjema, lahko na tem mestu uporabimo blok »try«. Na koncu bloka 'try' bi blok 'catch' moral začeti ujeti izjemo. Znotraj ulovnega bloka moramo napisati vodnik za obravnavo izjeme.
- Končno - To je privzeti in neobvezni blok v strukturi izjem. Če potrebujemo na koncu programa kakršne koli izjave, na primer čiščenje neuporabljenih predmetov, zapiranje povezav itd., Ki jih lahko izvedemo znotraj tega bloka.
Spodaj je splošna struktura izjeme:
poskusite
{
}
catch
{
}
finally
{
}
Now let us implement the exception handler in the sample code which we have already seen in the screenshot.
Add new test suite under the GlobalWeather project. Then add a test case and groovy script test step under the test step. In the script editor, enter the following script.
// initializing the variables int a = 10; int b = 0; // try, catch block try { // Dividing a number by zero int c = a/b; log.info('Result :' + c); } catch(Exception expObj) { // Exception Handler log.info('You are trying to divide ' + a + ' by ' + b + '. This is not possible actually!'); }
Zgornji skript daje naslednji rezultat, kot je prikazano na posnetku zaslona.
spletna mesta za brezplačno gledanje anime
Kot smo že razpravljali, smo poskušali deliti 'A' 'B', kar je nič. Tako se izvede blok ‘catch’ in v dnevniku prikaže uporabniško določeno sporočilo. Glejte, da smo v izjavi 'catch' uporabili Izjema razred, ki je nadrazred v Javi za vse vgrajene izjeme. Vsi vnaprej definirani razredi izjem so podedovani od Izjema razred. Za ravnanje z nepredvidljivimi izjemami med izvajanjem lahko uporabimo Izjema razred v bloku “catch”.
Spremenimo zdaj zgornji skript, da dobimo zahtevani rezultat. Oglejte si naslednji posnetek zaslona:
Poskusimo zdaj pri našem rednem testiranju spletnih storitev. V naslednjem skriptu nismo uporabili bloka try-catch, zato bomo dobili izjemo med izvajanjem.
// Initializing array with 5 elements String() countryNames = new String(5); // Assigning values to the array countryNames(0) = 'India'; countryNames(1) = 'Cyprus'; countryNames(2) = 'Canada'; countryNames(3) = 'Austria'; countryNames(4) = 'Mauritius'; // Iterate the array elements and assign value to the global property for(int idx=0; idx<=5; idx++) { com.eviware.soapui.SoapUI.globalProperties.setPropertyValue( 'CountryName', countryNames(idx)); def testStep = testRunner.testCase.testSteps('GetCitiesByCountry'); testStep.run(testRunner,context); log.info('Executed at ' + idx + ' times!'); }
Zgornji skript bo vrgel izjemo, imenovano ArrayIndexOutOfBoundsException ker skript poskuša dostopati do neveljavnega indeksa polja, tj. 5, ki ni na voljo.
(Kliknite sliko za povečavo)
Kot lahko vidite v zgornjem skriptu, smo inicializirali matriko 'countryNames' v velikosti pet. Sprejema le pet nizov, tj. Imena držav. Znotraj iterativnih stavkov smo preverili kot idx<= 5 . Tako se bo zanka ponavljala do 6-krat in poskusila najti 6thelement v matriki. Ker vrednosti ne bo, vrže izjema med izvajanjem.
Za obravnavo tega scenarija spremenimo zgornji skript, kot je prikazano spodaj:
String() countryNames = new String(5); // Try block try { countryNames(0) = 'India'; countryNames(1) = 'Cyprus'; countryNames(2) = 'Canada'; countryNames(3) = 'Austria'; countryNames(4) = 'Mauritius'; for(int idx=0; idx<=5; idx++) { com.eviware.soapui.SoapUI.globalProperties.setPropertyValue ( 'CountryName', countryNames(idx)); def testStep = testRunner.testCase.testSteps('GetCitiesByCountry'); testStep.run(testRunner,context); log.info('Executed at ' + idx + ' times!'); } } catch(Exception exp) // Catch the exception and displaying the message in the log { log.info('You are trying to access invalid array index. Please check and try again!'); }
Tu je rezultat za zgornji skript.
Tako lahko med izvajanjem programa obvladamo izjemo med izvajanjem.
Opomba: lahko uporabimo ArrayIndexOutOfBoundsException namesto da uporabite v bloku “catch” Izjema razred. Če v polje »catch« vstavimo natančno ime izjeme, bo ujelo šele, ko bo vržena določena izjema. Če se vrže katera koli druga vnaprej določena izjema, blok catch ne bo uspel.
Dober skript za avtomatizacijo bi moral imeti ustrezne obdelovalce izjem. V nasprotnem primeru bo težko spremljati vsak trenutek usmrtitve.
Kot sem že omenil, groovy skript podpira ključno besedo 'throws' za vrnitev vnaprej določene izjeme klicatelju.
Za razumevanje tega koncepta si oglejte spodnji vzorčni skript:
(argumenti / parametri) meti
{
}
vrsta napak pri preskušanju programske opreme
Tu je vzorčna koda za zgornje okostje.
// Invoke Method MethodWithThrowKeyword(); void MethodWithThrowKeyword() throws ArrayIndexOutOfBoundsException { String() countryNames = new String(5); countryNames(0) = 'India'; countryNames(1) = 'Cyprus'; countryNames(2) = 'Canada'; countryNames(3) = 'Austria'; countryNames(4) = 'Mauritius'; for(int idx=0; idx<=5; idx++) { log.info('Country Names: ' + countryNames(idx)); } }
V zgornjem skriptu je ArrayIndexOutOfBoundsException bo vrnjena na poklicano funkcijo. Tam moramo pravilno ravnati s poskusnim ulovom. V nasprotnem primeru bo SoapUI vrgel izjemo.
Zaključek:
Uvedba obravnave izjem v naših običajnih skriptih za testiranje, povezanih s spletnimi storitvami, nam bo v pomoč pri vzdrževanju kode in zmanjšanju ročnega posredovanja / spremljanja s strani preizkuševalcev. Kadar je to potrebno v skriptu, lahko uporabimo več blokov try-catch.
Naslednja vadnica SoapUI # 12: V naslednji vadnici bomo podali več informacij in funkcije različice SoapUI Pro.
Zato nadaljujte z branjem. Komentarji, vprašanja, predlogi so dobrodošli kot vedno!
Priporočeno branje
- 4 Pomembne značilnosti programa SoapUI Pro za občinstvo - Vadnica SoapUI št. 12
- Kako napisati osnovni skript Groovy v SoapUI - Vadnica SoapUi # 6
- Kako uporabljati lastnosti v skriptu Groapy SoapUI - Vadnica SoapUI št. 7
- Kratek vodnik po aplikaciji SoapUI za shranjevanje podatkov o zahtevah in odzivih v datoteki - Vadnica SoapUI št. 15
- 15+ vadnic za SoapUI: najboljše orodje za testiranje API-jev za spletne storitve
- Spoznajte napredne koncepte skriptiranja Groovy za SoapUI - Vadnica SoapUI št. 9
- Vadnice za globinsko zasenčenje za začetnike
- Kako ustvariti projekt REST v programu SoapUI Pro: Vadnica št. 13