how handle exception soapui groovy scripts soapui tutorial 11
In deze SoapUI-zelfstudie kijken we naar het afhandelen van uitzonderingen met behulp van Groovy-scripting. Het afhandelen van runtime-uitzonderingen in groovy is vergelijkbaar met Java, aangezien de Java-bibliotheken zijn geïntegreerd. We zullen echter basisconcepten in SoapUI bespreken en dieper ingaan op de afhandeling van uitzonderingen in Java.
Dit is tutorial # 11 in SoapUI tutorials series Dit is de laatste tutorial voor de gratis versie van SoapUI. Er zijn nog een aantal andere onderwerpen in deze serie die gaan over SoapUI pro-functies, REST- en SOAP-services en datagestuurd testen in SoapUI.
Laten we beginnen met een korte inleiding op een uitzondering:
Wat is een uitzondering?
Een uitzondering is een fout die optreedt tijdens de uitvoering van een programma. Dit kan gebeuren om vele redenen, zoals ongeldige gegevens, verlies van netwerkverbinding, proberen bestanden te openen die niet beschikbaar zijn, toegang krijgen tot een ongeldige klasse, geheugenlekkage, dwz het systeem dwingen om met enorme hoeveelheden gegevens te werken, databaseserver die niet reageert, enz. Deze fouten kan zijn vanwege gebruikers, ontwikkelaars of hardwarebronnen.
beste pc-reiniger voor Windows 7 gratis download
Intern zal SoapUI, wanneer een uitzondering wordt aangetroffen tijdens de uitvoering, de handler proberen te vinden. Handler is het blok dat de code bevat om de uitzondering op te vangen.
Uitzonderingen zijn onderverdeeld in twee typen:
- Runtime-uitzondering
- Compilatietijd uitzondering - niet van toepassing op SoapUI aangezien het geen expliciete compiler heeft
Bekijk de volgende schermafbeelding die ons een runtime-uitzondering voor ongeldige code laat zien. In het onderstaande script hebben we geprobeerd een geheel getal te delen door 0. In het foutdialoogvenster is te zien dat de uitzondering wordt gegenereerd vanuit Java-bibliotheken en de foutmelding is Deling door nul
We kunnen deze uitzondering tijdens de uitvoering opvangen en programmatisch afhandelen. Voordien zullen we enkele van de belangrijke sleutelwoorden zien die worden gebruikt in de Java-uitzonderingsconcepten. Sommige sleutelwoorden kunnen ook in het groovy script worden gebruikt. Zij zijn:
- Werpen - Dit trefwoord helpt ons om handmatig een exception te genereren, d.w.z. om door de gebruiker gedefinieerde uitzonderingen te genereren
- Gooit - Het wordt gebruikt om de vooraf gedefinieerde uitzonderingen op de methodedefinitie aan te roepen. Het zal dus de uitzondering opvangen als er een runtime-fout wordt gevonden tijdens de uitvoering.
- Proberen en Vangst - het trefwoord 'probeer' wordt gebruikt met het trefwoord 'vangen'. Als we het gedeelte van het programma kunnen voorspellen waar de uitzondering tijdens de uitvoering kan optreden, kunnen we op die plaats het 'try' -blok gebruiken. Aan het einde van het 'try' -blok, zou het 'catch' -blok een exception moeten opvangen. Binnen het catch-blok moeten we de handler schrijven om de uitzondering af te handelen.
- Tenslotte - Dit is het standaard en optionele blok in de uitzonderingsstructuur. Als we instructies nodig hebben die aan het einde van het programma moeten worden uitgevoerd, zoals het opschonen van ongebruikte objecten, het sluiten van verbindingen enz., Dat kan binnen dit blok worden gedaan.
Het volgende is de algemene structuur van een uitzondering:
proberen Het bovenstaande script levert het volgende resultaat op, zoals weergegeven in de schermafbeelding. Zoals we eerder hebben besproken, hebben we geprobeerd om 'A' 'B', die nul is, te delen. Dus het ‘catch’ -blok wordt uitgevoerd en toont het door de gebruiker gedefinieerde bericht in het logboek. Zie dat in de 'catch' -verklaring die we hebben gebruikt Uitzondering class, de superklasse in Java voor alle ingebouwde uitzonderingen. Alle vooraf gedefinieerde uitzonderingsklassen worden overgenomen van Uitzondering klasse. Om onvoorspelbare runtime-uitzonderingen aan te pakken, kunnen we Uitzondering klasse in het 'catch' -blok. Laten we nu het bovenstaande script aanpassen om het vereiste resultaat te krijgen. Zie de volgende schermafbeelding: Laten we dit nu proberen tijdens het testen van onze reguliere webservices. In het volgende script hebben we geen try-catch-blok gebruikt, dus we krijgen de runtime-uitzondering. Het bovenstaande script genereert een uitzondering met de naam ArrayIndexOutOfBoundsException omdat het script probeert toegang te krijgen tot een ongeldige array-index, d.w.z. 5 die niet beschikbaar is. (Klik op afbeelding voor vergrote weergave) Zoals je kunt zien in het bovenstaande script, hebben we de array 'countryNames' geïnitialiseerd met de grootte van vijf. Het accepteert slechts vijf tekenreeksen, d.w.z. landnamen. Binnen de iteratieve verklaringen hebben we gecontroleerd als idx<= 5 Dus de lus herhaalt zich tot 6 keer en probeert 6 te zoekenthelement in de array. Omdat de waarde er niet zal zijn, wordt er een runtime-uitzondering gegenereerd. Om dit scenario af te handelen, laten we het bovenstaande script wijzigen zoals hieronder: Hier is het resultaat voor het bovenstaande script. Dit is hoe we runtime-uitzonderingen kunnen afhandelen tijdens de uitvoering van ons programma. Notitie: we kunnen gebruiken ArrayIndexOutOfBoundsException in het 'catch' -blok direct in plaats van te gebruiken Uitzondering klasse. Als we de exacte naam van de uitzondering in het 'catch' -blok plaatsen ', zal deze alleen vangen wanneer de specifieke uitzondering wordt gegenereerd. Als er andere vooraf gedefinieerde uitzonderingen worden gegenereerd, zal het catch-blok mislukken. Een goed automatiseringsscript moet de juiste uitzonderingshandlers hebben. Anders zal het moeilijk zijn om elk moment van de uitvoering te volgen. Zoals ik eerder heb vermeld, ondersteunt groovy script het trefwoord 'throws' om de vooraf gedefinieerde uitzondering naar de beller te gooien. Zie het onderstaande voorbeeldscript om dit concept te begrijpen: (argumenten / parameters) gooit Hier is de voorbeeldcode voor het bovenstaande skelet. In het bovenstaande script is het ArrayIndexOutOfBoundsException wordt naar de aangeroepen functie geworpen. Daar moeten we goed mee omgaan met een try-catch-blok. Anders wordt er een uitzondering gegenereerd door SoapUI. Het implementeren van uitzonderingsafhandeling in onze reguliere webservices-gerelateerde testscripts, zal ons helpen de code te onderhouden en handmatige tussenkomst / monitoring door testers te verminderen. We kunnen meerdere try-catch-blokken gebruiken als dat nodig is in het script. Volgende SoapUI tutorial # 12: In de volgende tutorial zullen we meer informatie en functies van de SoapUI Pro-versie geven. Dus blijf lezen. Opmerkingen, vragen, suggesties zijn welkom, zoals altijd!
Gevolgtrekking:
Aanbevolen literatuur