Foto av Sofia Jonsson

Testa dina web services med soapui

// Sofia Jonsson

Testdriven utveckling och SOA är två koncept som börjar bli vardagsmat för de flesta av oss. Men hur kombinerar man bäst de två? Det finns många olika strategier för att testa web services (förutsatt att ens SOA är implementerad med hjälp av web services alltså), en vanlig strategi är att generera upp klientkod i t ex Java som man skriver JUnittester mot. Fördelen med denna strategi är att det är enkelt att automatisera testerna och köra dem som en del av sin vanliga byggprocess. Nackdelen är att man aldrig i klartext ser de SOAP meddelanden som skickas. En annan strategi är att använda sig av sin IDEs funktionalitet för att generera upp test-klienter i form av t ex ett web-formulär. T ex har IBMs RSA stöd för detta. Fördelen med denna strategi är att det går fort att komma igång och att man i vissa fall också ser exakt vilka SOAP-meddelanden som faktiskt skickas och returneras. Dock är det svårt att köra dessa tester automatiskt.

Vill man ha ett fristående verktyg som kombinerar det bästa från dessa två strategier kan soapui vara ett intressant alternativ. Soapui är en open source-applikation för att testa web services över HTTP. Stöd finns för både funktionella tester och last-tester och testerna kan köras både ifrån desktop-applikationen eller som en del av en automatiserad byggprocess mha soapuis command-line verktyg och/eller maven-plugin.

[Bild saknas]

Via desktop-applikationen är det enkelt att importera en WSDL-fil och utifrån dess Schema automatiskt generera SOAP-requests. Dessa requests kan man sedan modifiera och skicka till web servicen för att testa den. Requesten kan dessutom sparas och utgöra grunden för testfall och testsviter, där bland annat XPath-uttryck kan användas för att validera svaret. Samma testsviter kan köras både från desktop-applikationen och som en del av en automatiserad byggprocess och eftersom allting sparas i XML-format är det enkelt att dela information mellan användare.

Soapui finns även som en eclipse-plugin, än så länge med begränsad funktionalitet.

Kommentarer