PÄstande i SoapUIScripts, XQuery, XPath-typer
⥠Smart opsummering
PÄstande i SoapUI er de kontrolpunkter, der afgÞr, om et webtjenestesvar er korrekt, og som forvandler en anmodning, der blot udfÞres, til en test, der rent faktisk bestÄr eller fejler pÄ reelt, verificerbart indhold.
Hvad er en pÄstand?
PÄstand betyder handling at bekrÊfte eller sige noget. Det kan ogsÄ tolkes som et kontrolpunkt eller et valideringspunkt.
NÄr en anmodning er sendt til en webserver, modtages der et svar. Vi skal validere, om svaret indeholder de data, vi forventer. For at validere svaret skal vi bruge assertions (pÄstande). Uden en assertion beviser et testtrin kun, at tjenesten svarede, ikke at den svarede korrekt, hvilket er grunden til, at alle API-test skal bÊre mindst én.
Typer af pÄstande
Der er forskellige mÄder at give et svar pÄ; vi vil dog fokusere pÄ de almindeligt anvendte SoapUI pÄstandstyper under validering af et svar. Nedenfor er de kategorier, der er tilgÊngelige i Open Source-versionen af SoapUI.
- Ejendomsindhold
- Overholdelsesstatusstandard
- Script
- SLA
- etc
- Sikkerhed
Dialogboksen grupperer alle pÄstande under disse kategorier, som skÊrmbilledet nedenfor viser.

Udover dem, der er anfÞrt ovenfor, har Pro-versionen ogsÄ en indbygget JDBC-pÄstand, som vi bruger til at bekrÊfte, om webtjenesten har opdateret databasen korrekt.
Versionsnotat: strÞm SoapUI dokumentationen nÊvner ogsÄ en JDBC kategori (JDBC-status og JDBC-timeout) sammen med ovenstÄende kategorier, og en Meddelelsens indhold pÄstand i egenskabsindhold for mere omfattende XML-sammenligning. Den kommercielle udgave, der her omtales som "Pro", sÊlges nu som ReadyAPI af SmartBear, sÄ menunavne i nyere builds kan lÊses anderledes, mens assertion-adfÊrden forbliver den samme.
Indeholder pÄstand
SĂžger efter eksistensen af ââden angivne streng. Det understĂžtter ogsĂ„ regulĂŠrt udtryk.
Vi vil fortsÊtte med det samme eksempel fra den forrige tutorial med WSDL-anmodning som http://www.dneonline.com/calculator.asmxHvis du ikke har bygget det projekt endnu, sÄ arbejd dig igennem oprettelse af et projekt, en testsuite og en testcase fÞrst.
Trin 1: Som standard er der ingen pÄstande.
- Antallet af pÄstande er vist pÄ fanen pÄstande.
- For at tilfÞje en ny pÄstand skal du klikke pÄ knappen 'TilfÞj ny pÄstand'.
Trin 2: Nu,
- VÊlg pÄstandskategorien.
- VÊlg pÄstandstype.
- Klik pÄ 'TilfÞj'
Trin 3: Lad os validere om strengen '46' findes i svaret. Klik pÄ 'OK'
BemÊrk: Vi kan ogsÄ ignorere store og smÄ bogstaver og tilfÞje regulÊre udtryk.
Trin 4: NÄr den tilfÞjes, udfÞres assertionen straks, og det vises, om den er GYLDIG eller UGYLDIG.
Trin 5: Lad os nu sige, at vi Êndrer indholdet af 'Indeholder pÄstand i SoapUI' til '47' og se hvad der sker.
Trin 6: PÄstanden udfÞres, og resultatet sendes til brugeren. Da vi ikke har strengen '47' i svaret, er pÄstanden mislykket.
Indeholder ikke pÄstand
Dens modstykke fungerer omvendt. SÞger efter den angivne strengs ikke-eksistens. Den understÞtter ogsÄ regulÊrt udtryk.
Trin 1: Efter at have klikket pÄ knappen 'TilfÞj nye pÄstande',
- VÊlg pÄstandskategorien.
- VĂŠlg pĂ„standstype â I dette tilfĂŠlde 'Ikke indeholder'
- Klik pÄ 'TilfÞj'
Trin 2: Lad os validere om strengen 'intA' findes i svaret. Indtast strengen 'FromCurrency' og klik pÄ 'OK'
Trin 3: SÄ snart en assertion er tilfÞjet, udfÞres den og viser resultatet. Indtil videre har vi tilfÞjet to assertions, sÄ begge assertions udfÞres og viser resultatet.
Trin 4: Lad os nu ĂŠndre indholdet af 'Not Contains Assertion' og se, hvad der sker. Vi vil kontrollere, om strengen "AddResult" ikke eksisterer.
Trin 5: Strengen 'AddResult' findes faktisk i svaret, derfor vil 'NOT Contains'-pÄstanden mislykkes som vist nedenfor.
XPath Match Assertion
Stringmatchning er slÞv, sÄ den nÊste assertion er i stedet rettet mod en enkelt node. Bruger XPath-udtryk til at vÊlge mÄlnoden og dens vÊrdier. XPath, er et XML-forespÞrgselssprog til at vÊlge noder fra et XML-dokument.
Trin 1: Efter at have klikket pÄ knappen 'TilfÞj nye pÄstande',
- VÊlg pÄstandskategorien.
- VĂŠlg pĂ„standstype â i dette tilfĂŠlde 'XPath Match'
- Klik pÄ 'TilfÞj'
Trin 2: Vinduet TilfÞj XPath Äbnes.
FÞr du tilfÞjer en SoapUI I XPath skal vi deklarere navnerummet. Et XML-navnerum er en samling af navne, identificeret af en URI-reference (Uniform Resource Identifier), som bruges i XML-dokumenter som element- og attributnavne. Det samme bruges i SoapUI XPath-pÄstand.
For at deklarere et XML-navneomrÄde skal vi blot klikke pÄ knappen 'Deklarer', som ville gÞre arbejdet for os, ellers kan vi ogsÄ manuelt deklarere et navneomrÄde selv.
Efter at have deklareret navnerummet, skal vi referere til XPath ved hjĂŠlp af det oprettede navnerum.
NÄr du klikker pÄ knappen 'Deklarér', dukker der to navnerum op, da vi har to URI'er. En af dem er skemaet. URL og den anden svarer til den faktiske webtjeneste URLVi skal bruge det faktiske navneomrÄde, hvor webtjenesten er placeret, og IKKE skemanavneomrÄdet, nÄr vi refererer til XPath. De deklarerede linjer vises Þverst i XPath-boksen som vist nedenfor.
erklĂŠr namespace soap='http://schemas.xmlsoap.org/soap/envelope/';
erklÊr navneomrÄde ns1='http://tempuri.org/';
Trin 3: Nu skal vi indtaste XPath'en for den XML-node, som vi skal validere.
//ns1:AddResult Giver os vĂŠrdien af ââden node, der er indesluttet mellem & og ns1 svarer til det erklĂŠrede navneomrĂ„de, som peger pĂ„ 'http://tempuri.org/'
Efter at have indtastet XML, skal vi klikke pÄ 'VÊlg fra aktuel', sÄ vÊrdien fra det aktuelle svar vil blive samlet op til sammenligning fremover.
Trin 4: Indtil videre,
- Efter at have erklÊret navneomrÄderne, har vi indtastet den XPath of XML-knude, som vi skal validere.
- Vi er nÞdt til at klikke pÄ 'VÊlg fra nuvÊrende' for at gÞre den aktuelle vÊrdi som den forventede vÊrdi.
- Den aktuelle vĂŠrdi vises for brugeren, som vi kan ĂŠndre efter behov.
- Klik pÄ 'Gem'.
Trin 5: Den tilfÞjede pÄstand i SoapUI vil blive vist som vist nedenfor.
Scripting pÄstande
Denne pÄstandsteknik er den mest udbredte, da det er ekstremt vanskeligt at administrere og vedligeholde hundredvis af pÄstande.
SoapUI bruger enten Groovy Scripting eller JavaScript til scripting af assertions. Scriptingteknikken er anvendt til udviklingping et framework til test af SOAP. Scripting-assertions bruges under fĂžlgende omstĂŠndigheder.
- Scripting giver brugeren mulighed for at udfĂžre visse handlinger fĂžr og efter udfĂžrelse af en testcase ved hjĂŠlp af henholdsvis opsĂŠtnings- og nedtagningsmetoder. OpsĂŠtning er en procedure, der udfĂžres fĂžr en bestemt metode udfĂžres (f.eks. objektoprettelse og initialisering), mens nedtagning er en procedure, der udfĂžres efter metoden er udfĂžrt (f.eks. ĂždelĂŠggelse af objekter og oprydning). Denne funktion er ikke tilgĂŠngelig i andre assertiontyper og kan kun udfĂžres via kodning.
- Det giver brugerne mulighed for at Äbne/lukke et projekt for at initialisere eller rydde op i projektrelaterede indstillinger og ogsÄ for at arbejde med miljÞvariabler, hvilket er meget nyttigt under scripting.
- Det hjĂŠlper os med at hĂŠvde et dynamisk responsindhold.
- Scripting-pÄstande bruges til at oprette brugerdefinerede pÄstande, der IKKE er foruddefinerede af SoapUI.
For at demonstrere en script-pÄstand i SoapUI, vil vi bruge lommeregneren WSDL, testcasen 'Add', som vi oprettede tidligere.
Trin 1: Trinene til at tilfĂžje groovy script er de samme som for andre assertions, bortset fra at assertionen ikke er foruddefineret. I stedet er det en brugerdefineret assertion, der tilbyder stĂžrre fleksibilitet end de indbyggede.
VÊlg det testtrin, som pÄstanden skal tilfÞjes mod.
Klik pÄ knappen 'TilfÞj pÄstand' som vist nedenfor.
Trin 2: VÊlg nu kategorien PÄstand.
- I dette tilfĂŠlde er det Script.
- Type SoapUI ScriptpÄstand, og der er ingen undertyper tilknyttet den.
- Klik pÄ 'TilfÞj'.
Trin 3: Dialogboksen Scripting Äbnes, hvor brugeren kan skrive et brugerdefineret script for at validere svar-XML'en.
Trin 4: Lad os nu skrive et smart script til at validere konverteringsraten. Scriptet er vedhĂŠftet nedenfor med indlejrede kommentarer. Det anbefales at have kendskab til Java Script eller Groovy Script fĂžr du forsĂžger at skrive dit eget script.
//Define Groovy Utils and holder for validating the XML reponse content def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) def holder = groovyUtils.getXmlHolder(messageExchange.responseContent) //Define the NameSpace holder.namespaces["ns1"] = "http://tempuri.org/" //Get the Value of the Node 'AddResult' and assign to a variable def addResult = holder.getNodeValue("//ns1:AddResult") //print the value of the result in the Output panel log.info "The result value for integers is " + addResult //Comparing the value to print 'Pass' or 'Fail' if(addResult=="46") { log.info "Pass" } else { log.info "fail"}
- Klik pÄ knappen 'UdfÞr' for at udlÞse udfÞrelsen.
- Outputtet af Scriptet vises i Output-ruden. Den har udskrevet bÄde konverteringsvÊrdi og slutresultatet (BestÄet eller Ikke bestÄet)
- Informationen vises, at 'Script Assertion Passed'. Klik pÄ OK.
BemÊrk: Den endelige informations-pop op vises altid med meddelelsen 'Script Assertion Passed', sÄ lÊnge scriptet er syntaktisk korrekt. Det har ingen sammenhÊng med din pÄstand i scriptet.
klik pÄ OK
Trin 5: Nu viser fanen "Assertions" alle de assertioner, vi har tilfĂžjet til denne testsuite, med status for hver enkelt af dem.
Trin 6: Nu
- VĂŠlg Test Suite fra Navigator-trĂŠet
- Klik pÄ knappen 'KÞr'
- Resultaterne vil blive vist for hele testpakken.
XQuery Match-pÄstand
Den bruger et XQuery-udtryk til at vÊlge indhold fra mÄlegenskaben. Vi har brug for en meget stÞrre respons-XML for bedre at forstÄ XQuery-pÄstanden i SoapUILad os importere endnu en WSDL som vist nedenfor: http://www.webservicex.net/medicareSupplier.asmx?WSDL
BemÊrk: De offentlige webservicex.net-demoslutpunkter, der bruges i denne gennemgang, kan ikke lÊngere nÄs pÄlideligt, sÄ skÊrmbillederne af anmodninger og svar nedenfor bevares som referenceeksempel. Enhver WSDL, der returnerer et gentagende nodesÊt, vil udfÞre XQuery-pÄstanden pÄ nÞjagtig samme mÄde.
Trin 1: HÞjreklik pÄ det eksisterende projekt, og vÊlg 'TilfÞj WSDL'.
Trin 2: Dialogboksen TilfÞj WSDL Äbnes. Lad andre indstillinger vÊre som standard, og klik pÄ knappen 'OK'.
Trin 3: Alle operationerne er angivet som vist nedenfor.
Trin 4: Lad os nu tilfĂžje en Test sag inden for samme testsuite, som vi havde lavet til Test valutaomregneren.
Trin 5: Indtast navnet pÄ testcasen, og klik pÄ knappen 'OK'
Trin 6: Testcasen oprettes som vist nedenfor.
Trin 7: TilfĂžj et nyt testtrin af typen 'SOAP Test Request' som vist nedenfor.
Trin 8: Indtast navnet pĂ„ testtrinnet. Lad os sige â LeverandĂžr_efter_By, hvilket ville vĂŠre mere meningsfuldt. Klik pĂ„ 'OK'.
Trin 9: VÊlg den Operation, som vi gerne vil validere. I dette tilfÊlde er det 'MedicareSupplierSoap -> GetSupplierByCity'. Klik pÄ 'OK'.
Trin 10: Indtast navnet pÄ testcasen, og klik pÄ 'OK'.
Trin 11: XML-oversigten over anmodningen vises som vist nedenfor.
Trin 12: Lad os nu finde alle leverandĂžroplysninger for 'New York' City.
For at gĂžre det skal du tilfĂžje fĂžlgende linjer til din kode.
<GetSupplierByCity xmlns="http://www.webservicex.net/"> <City>New York</City> </GetSupplierByCity>
WSDL nedenfor URL â http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity
Trin 13: NÄr testen er udfÞrt, modtager vi nedenstÄende svar
Trin 14: Lad os sige, at vi skal validere alle leverandĂžrnumre. Vi kan ikke bruge XPath-assertioner, da vi skal have hundredvis af XPath-assertioner. Derfor er brugen af ââXQuery uundgĂ„elig i dette tilfĂŠlde.
XQuery Assertion hjĂŠlper os med at validere en gruppe XML-svar, som er gentagne.
Trin 15: Klik nu pÄ 'TilfÞj en pÄstand',
- VĂŠlg 'Assertion Category' â Ejendomsindhold i dette tilfĂŠlde.
- VÊlg pÄstandstypen som 'XQuery Assertion'
- Klik pÄ 'TilfÞj'.
Trin 16: Ligesom med XPath-assertion skal vi deklarere navnerummet.
- Klik pÄ knappen 'ErklÊr' for automatisk at tillade SoapUI at deklarere navnerummet. NÄr du klikker pÄ deklareringsknappen, vises en 'POP-op' med beskeden 'deklarer navnerummet fra skemaet i stedet' for brugeren. Klik pÄ 'Ja' for at fortsÊtte som vist nedenfor.
- For at hente hele leverandĂžrnummeret skal vi skrive en XPath-forespĂžrgsel, og vi placerer den inden for < SupplierNumber> og Tags.
- Klik pÄ 'VÊlg fra den aktuelle', som udfÞres fra det aktuelle svar.
- NÄr du klikker pÄ 'VÊlg fra den nuvÊrende', vises alle leverandÞrnumre.
- Klik pÄ 'Gem'.
BemÊrk: NÄr du trykker pÄ 'Anmeld'-knappen, kan du ende med forskellige URL's som navneomrÄdedeklaration, er det dog den faktiske navneplads for webtjenestens placering, der vil blive betragtet som kodning.
Det fÊrdige XQuery-udtryk, med dets navneomrÄdedeklarationer, ser sÄdan ud.
// Namespace declaration declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; declare namespace x = ''; // Placing the result in Myresult Tags{ // Iterating through all the supplier number for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData //Return all the Supplier number within âSupplierNumberâ Tags. return {data($x/ns1:SupplierNumber)} }
Trin 17: XQuery-pÄstanden udfÞres og viser det endelige resultat i panelet 'PÄstand' som vist nedenfor. Nu har vi tilfÞjet en XQuery-pÄstand, som vi bruger til at validere alle leverandÞrnummeroplysninger. Disse vil blive sammenlignet med de faktiske tal, hver gang anmodningen sendes til webserveren.
BemÊrk: De faktiske vÊrdier vil ikke blive vist. Hvis alle faktiske vÊrdier er de samme som de forventede vÊrdier, sÄ viser den GYLDIG, ellers vil den vise 'Failed'.
HvornÄr skal man bruge indbygget pÄstand?
Med bÄde peg-og-klik- og de scriptede muligheder dÊkket, er det praktiske spÞrgsmÄl, hvilken man skal rÊkke ud efter.
- NĂ„r et svar er kort, sĂ„ det kan valideres ved hjĂŠlp af en af ââdisse indbyggede pĂ„stande.
- Vi kan ogsÄ bruge Inbuilt Assertion, hvis svaret sendt fra webserveren altid er statisk. Hvis det er dynamisk, vil vi ikke vÊre i stand til at hÊvde det ved hjÊlp af indbyggede pÄstande.
- NĂ„r brugen af ââindbyggede pĂ„stande sĂ„som Time-out-pĂ„stande og sikkerhedspĂ„stande bliver uundgĂ„elig.
- Indbyggede pÄstande holder ret godt til engangsbrug, hvor test ikke behÞver at blive gentaget.
PÄstandsmuligheder
De oprettede pÄstande kan bedst kontrolleres ved hjÊlp af kontrolpanelet, der er fremhÊvet nedenfor.
De oprettede pÄstande giver testere mulighed for at konfigurere fÞlgende ting fra pÄstandsvÊrktÞjskassen.
| Option | Beskrivelse |
| Den valgte pÄstand flytter rÊkkefÞlgen op. | |
| Den valgte pÄstand flytter ned i rÊkkefÞlgen. | |
| Fjerner den valgte pÄstand | |
| Genkonfigurer/rediger den valgte pÄstand. |
Nedenfor er de funktioner, der udelukkende er tilgÊngelige i Pro-versionen af SoapUI, nu sendt som ReadyAPIPro-versionen hjÊlper os ogsÄ med at gruppere pÄstande, sÄ vi kan tilfÞje endnu et lag af validering til de oprettede pÄstande.
- OG: Alle pÄstande evalueres som GYLDIGE pÄstande, hvilket vil resultere i gruppebetingelsen BESTà ET.
- ELLER: Mindst én af pÄstandene i gruppen skal vÊre GYLDIG for at en gruppebetingelse BESTà ET kan hÊvdes.
- Pro-versionen tillader ogsÄ Kloning af pÄstandeDenne indstilling giver testere mulighed for at kopiere en assertion til et andet testtrin i det samme eller et andet projekt.
- Deaktiver/aktiver pÄstande: Denne indstilling gÞr det muligt at deaktivere eller aktivere enhver grupperet eller ugrupperet pÄstand. Hvis en pÄstand er deaktiveret, er den nedtonet, og nÄr en testcase udfÞres, udfÞres deaktiverede pÄstande ikke.
- Opdel grupper af pÄstande: Alle grupperede pÄstande kan opdeles, hvis testerne beslutter sig for det.
Komplet liste over metoder tilgÊngelige i forskellige pÄstandstyper
Tabellen nedenfor samler alle de ovenfor omtalte pÄstande, grupperet efter den kategori, de vises under i dialogboksen TilfÞj pÄstand.
| PÄstandsmekanisme | Beskrivelse |
| EJENDOMSINDHOLD | |
| Indeholder | SĂžger efter eksistensen af ââden angivne streng. Det understĂžtter ogsĂ„ regulĂŠrt udtryk. |
| Indeholder ikke | SÞger efter ikke-eksistens af den angivne streng. Det understÞtter ogsÄ regulÊrt udtryk. |
| XPath Match | Bruger XPath-udtryk til at vÊlge mÄlknuden og dens vÊrdier. |
| XQuery Match | Bruger et XQuery-udtryk til at vÊlge indhold fra mÄlegenskaben. |
| Overholdelse, status, standarder | |
| HTTP Download alle ressourcer | Validerer HTML-dokumentet efter download, og det gĂŠlder for enhver ejendom, der indeholder HTML. |
| Ugyldig HTTP-status Codes | BekrÊfter, om HTML-svaret indeholder en statuskode, der ikke er pÄ listen over definerede koder. |
| Ikke SOAP Fejl | BekrĂŠfter, om den sidst modtagne besked ikke er en SOAP-fejl. Det er meget indlysende, at det kun gĂŠlder for SOAP-testtrin. |
| Overholdelse af skema | BekrĂŠfter, om den sidst modtagne meddelelse er kompatibel med WSDL- eller WADL-standardskemadefinitionen. Holder godt til SĂBE- og HVILE-testtrin. |
| SĂBE fejl | BekrĂŠfter, om den sidst modtagne besked er en SOAP-fejl. Det er det omvendte af 'IKKE SOAP' fejlpĂ„stande. |
| SOAP Response | Verificerer, om det sidst modtagne svar er et gyldigt SOAP-svar og kun gĂŠlder for SOAP-testanmodningstrin. |
| Gyldig HTTP-status Codes | BekrÊfter, om HTML-svaret indeholder en statuskode, der er pÄ listen over definerede koder. Det er det modsatte af 'Ugyldig HTTP-status'. Codes' pÄstand. |
| WS-adresseringsanmodning | BekrĂŠfter, om den sidst modtagne anmodning indeholder passende WS-adresseringsoverskrifter. |
| WS-adresseringssvar | BekrĂŠfter, om det sidst modtagne svar indeholder passende WS-adresseringsoverskrifter. |
| WS-Sikkerhedsstatus | Validerer, hvis den sidst modtagne besked indeholder gyldige WS-Security-headers og kun gĂŠlder for SOAP-anmodninger. |
| Script | |
| SkriftpÄstand | Tillader brugere at udfÞre et brugerdefineret script for at udfÞre brugerdefinerede valideringer. |
| SLA | |
| Svar SLA | Validerer, om responstiden for det sidst modtagne svar var inden for den definerede grĂŠnse. |
| etc | |
| JMS status | Verificerer, om JMS-anmodningen for testtrinnet er udfĂžrt med succes og gĂŠlder for testtrin med et JMS-slutpunkt. |
| JMS timeout | Verificerer, om JMS-svaret for et testtrin ikke tog lĂŠngere tid end den angivne varighed. |
| Sikkerhed | |
| Eksponering for fÞlsom information | BekrÊfter, om svarmeddelelsen ikke afslÞrer fÞlsomme oplysninger om mÄlsystemet. Vi kan bruge denne pÄstand til REST-, SOAP- og HTTP-testtrin. |
DOWNLOAD SOAPUI-PROJEKTET, DER INDEHOLDER OVENSTĂ ENDE PĂ STAND
Almindelige fejl og fejlfinding
De fleste pÄstandsfejl trace tilbage til et lille sÊt fejl, sÄ tjek disse, fÞr du omskriver et udtryk.
- Brug det korrekte navnerum. Navnerummet skal vĂŠre URL hvor webtjenesten er placeret.
- Hvis der opstÄr en fejl under udviklingping en scripting-assertion, brug 'log.info' til at udskrive indholdet af variablerne.
- Hvis du ikke har fÄet det Þnskede output, skal du kontrollere, om et gyldigt input er bestÄet i anmodningen.
Hvis du for eksempel i valutaomregneren indtaster 'intA' som 'x', hvilket ikke er et heltal, udlĂžser outputtet en fejlkode som 'SOAP-Client', hvilket betyder, at problemet er med den parameter, der sendes fra klientsiden. Anmodningen med den ugyldige vĂŠrdi vises fĂžrst.
Svaret returnerer fejlkoden i stedet for et resultat, som vist nedenfor.
SÞrg for at bruge den korrekte syntaks, nÄr du bruger XPath- og XQuery-assertioner. Du bÞr IKKE bruge punktum(.) i stedet for kolon(:), nÄr du bruger ovenstÄende assertion. Syntaksen er //namespace:Tagname og IKKE //namespace.tagname. Hvis du gÞr det, kan du ende med at fÄ en besked om, at 'INGEN match i nuvÊrende svar', selvom tagnavnet er korrekt.














































