De stijgende trend om SOA en vervolgens microservices als softwarearchitectuur te gebruiken, heeft geleid tot de creatie van meerdere tools voor het geautomatiseerd testen van de services-API. Dit artikel presenteert een lijst met open source API-testtools.
Wikipedia definieert een applicatie-programmeerinterface (API) is een manier waarop twee of meer computerprogramma’s met elkaar kunnen communiceren. Dit is momenteel het geval voor moderne web- en cloudsoftware-architecturen, waarbij clients communiceren met server-side services, bijvoorbeeld om gegevens op te halen of bij te werken.
De API definieert het communicatieprotocol tussen de client en de services en hoe services zich zullen gedragen. U kunt verschillende protocollen of architectuurconventies gebruiken om interacties in uw toepassingen te beheren. Het Simple Object Access Protocol (SOAP) stelt voor om XML als berichtformaat te gebruiken en verzoeken te communiceren via HTTP of SMTP. De Representational State Transfer (REST) verschilt van SOAP omdat SOAP een protocol is, terwijl REST een architecturale stijl is. Ten slotte kunt u GraphQL gebruiken, een querytaal en server-side runtime als alternatief voor REST.
Technische criteria voor selectie van API-testtools
Naast de voor de hand liggende licentie en prijs zijn er, als u een commerciële API-testtool kiest, veel technische criteria die u kunt gebruiken om uw API-testtool te kiezen. Hier zijn er een aantal:
* Hoe definieer en beheer je je testen (code, low code, no code)
* Ondersteunde technologieën (programmeertalen, platforms, …)
* Integratie met andere componenten van het softwareontwikkelings- en leveringsproces, zoals de CI/CD-tools
* Authenticatie en authorisatie
* Loggen en monitoren
Apickli
Apickli is een open source REST API-integratietestframework op basis van Cucumber. Het biedt een augurk-framework en een verzameling hulpprogramma-functies om API-testen eenvoudig en minder tijdrovend te maken. Apickli is ook verkrijgbaar als NPM-pakket.
Dredd
Dredd is een taalonafhankelijke opdrachtregeltool voor het valideren van een API-beschrijvingsdocument ten opzichte van de backend-implementatie van de API. Dredd leest uw API-beschrijving en valideert stap voor stap of uw API-implementatie antwoordt met antwoorden zoals beschreven in de documentatie. Dredd ondersteunt het geautomatiseerd testen van de REST API, het produceren van uitstekende rapporten en het genereren van uitstekende REST API-documentatie op basis van historische gevallen.
Frisby
Frisby is een open source REST API-testframework gebouwd op Jest en heeft als doel het testen van API-eindpunten eenvoudig, snel en leuk te maken. Frisby.js wordt geleverd met veel ingebouwde tools voor de meest voorkomende dingen waarop u moet testen om ervoor te zorgen dat uw REST API naar behoren werkt en de juiste eigenschappen, waarden en typen retourneert. Als u iets op maat nodig heeft, biedt Frisby.js ook een gemakkelijke manier om beweringen aan te passen en uit te breiden om uw werk gemakkelijker te maken, met minder repetitieve en vervelende code.
kwakzalver
mountebank is de eerste open source API-testtool die cross-platform, multi-protocol testdubbels via de kabel biedt. Richt uw te testen applicatie gewoon op mountebank in plaats van op de echte afhankelijkheid, en test zoals u zou doen met traditionele stubs en mocks. mountebank heeft een legioen bedriegers in dienst om op te treden als on-demand testdubbels. Uw test communiceert met mountebank via http met behulp van de API om stubs in te stellen, proxy’s op te nemen en opnieuw af te spelen en schijnverwachtingen te verifiëren. In de typische use-case zal elke test een bedrieger starten tijdens het instellen van de test en een bedrieger stoppen tijdens het afbreken van de test, hoewel u ook welkom bent om mountebank bij het opstarten te configureren met behulp van een configuratiebestand. mountebank maakt gebruik van verschillende soorten bedriegers, die elk reageren op een specifiek protocol. Doorgaans zal uw test de bedrieger vertellen aan welke poort hij moet binden, en de bedrieger zal de overeenkomstige socket openen.
Wees gerustgesteld
Het testen en valideren van REST-services in Java is moeilijker dan in dynamische talen zoals Ruby en Groovy. REST Assured brengt de eenvoud van het gebruik van deze talen naar het Java-domein.
Schema
Schemathesis is een specificatiegerichte API-testtool voor op Open API en GraphQL gebaseerde applicaties. Het leest het toepassingsschema en genereert testgevallen, die ervoor zorgen dat uw toepassing voldoet aan het schema en nooit vastloopt. De te testen applicatie kan in elke taal worden geschreven; het enige dat u nodig heeft, is een geldig API-schema in een ondersteund formaat. Eenvoudig te gebruiken en toch krachtig om moeilijk te vinden fouten te ontdekken dankzij de op eigenschappen gebaseerde testbenadering ondersteund door een ultramoderne hypothesebibliotheek.
ZeepUI
SoapUI is een gratis en open source platformonafhankelijke functionele testoplossing voor API’s en webservices. Het biedt de mogelijkheid om REST-, SOAP- en GraphQL-API’s te testen. SoapUI is gebaseerd op java, dus het werkt op de meeste besturingssystemen. We testen het op verschillende Windows-versies, evenals Mac en de meerdere Linux-dialecten. SoapUI vereist een 1.6+ versie van de JRE (Java Runtime Environment), minimaal 1 GB geheugen wordt aanbevolen en ongeveer 100 MB schijfruimte.
SupeTest
SuperTest is een open source Super-agent-gestuurde bibliotheek voor het testen van node.js HTTP-servers met behulp van een vloeiende API. De motivatie van deze module is om een abstractie op hoog niveau te bieden voor het testen van HTTP, terwijl u nog steeds kunt terugvallen op de lagere API die door superagent wordt geboden.
Taverne
Tavern is een pytest-plug-in, een opdrachtregelprogramma en een Python-bibliotheek voor het geautomatiseerd testen van API’s, met een eenvoudige, beknopte en flexibele op YAML gebaseerde syntaxis. Het is heel eenvoudig om aan de slag te gaan en zeer aanpasbaar voor complexe tests. Tavern ondersteunt het testen van RESTful API’s en op MQTT gebaseerde API’s. Tavern fungeert als een pytest-plug-in, zodat u alleen pytest en Tavern hoeft te installeren, uw tests in yaml-bestanden schrijft en pytest uitvoert. Dit betekent dat u toegang krijgt tot het hele pytest-ecosysteem. U kunt Tavern ook integreren in uw eigen testframework of continue integratie-instellingen met behulp van de Python-bibliotheek, of gebruik de opdrachtregeltool, tavern-ci met bash-scripts en cron-taken.
Wijsheid rest-cliënt
Wisdom rest-client is een tool die het geautomatiseerd testen van de REST API ondersteunt, een voortreffelijk rapport produceert en uitstekende REST API-documentatie genereert op basis van historische gevallen.
Meer bronnen over API-testen