Tester une API ? Facile, vous savez déjà le faire (ou presque)

A presentation at Agile Tour Bordeaux in October 2025 in Le Bouscat, France by Anne-Laure Gaillard

Slide 1

Slide 1

Tester une API ? Facile, vous savez déjà le faire (ou presque) Anne-Laure Gaillard Lead QA @Talarian

Slide 2

Slide 2

Client

Slide 3

Slide 3

Client Serveur

Slide 4

Slide 4

Serveur Client Requête

Slide 5

Slide 5

Serveur Client Requête Réponse

Slide 6

Slide 6

Slide 7

Slide 7

Slide 8

Slide 8

Serveur Client Requête HTTP Réponse

Slide 9

Slide 9

Verbe GET Récupère POST Crée PATCH/PUT Modifie DELETE Supprime … … Param Query Path Request Body Request Headers … Endpoint/URL

Slide 10

Slide 10

Serveur Client Requête HTTP Réponse

Slide 11

Slide 11

Status code 1XX Information 2XX Succès 3XX Redirection 4XX Erreur client 5XX Erreur serveur Réponse JSON

Slide 12

Slide 12

Pourquoi ? Idées reçues Comment ?

Slide 13

Slide 13

Pourquoi ?

Slide 14

Slide 14

Slide 15

Slide 15

Slide 16

Slide 16

Slide 17

Slide 17

Slide 18

Slide 18

Slide 19

Slide 19

Slide 20

Slide 20

Les API Web sont devenues omniprésentes

Slide 21

Slide 21

Slide 22

Slide 22

Les rares exceptions Applications totalement locales et fermées. Logiciels anciens qui n’ont pas été modernisés. Applications sensibles / sécurisées, où l’accès externe est interdit.

Slide 23

Slide 23

Slide 24

Slide 24

Anne-Laure Gaillard, Lead QA @Talarian

Slide 25

Slide 25

Anne-Laure Gaillard, Lead QA @Talarian

Slide 26

Slide 26

Anne-Laure Gaillard, Lead QA @Talarian

Slide 27

Slide 27

Anne-Laure Gaillard, Lead QA @Talarian

Slide 28

Slide 28

Anne-Laure Gaillard, Lead QA @Talarian

Slide 29

Slide 29

Idées reçues

Slide 30

Slide 30

On teste déjà l’interface graphique

Slide 31

Slide 31

On teste déjà l’interface graphique

Slide 32

Slide 32

On teste déjà l’interface graphique “Dans une approche agile, il est recommandé de ne pas attendre d’avoir l’intégralité du processus disponible et de tester ce que l’on a […] en particulier au niveau d’un microservice”

Slide 33

Slide 33

On teste déjà l’interface graphique “[API testing] might produce unexpected results and reveal bugs that would never be found thought UI testing. You can control the tests much more easily that when using UI”

Slide 34

Slide 34

On teste déjà l’interface graphique

Slide 35

Slide 35

Tester l’API, c’est ne pas tester l’expérience utilisateurice

Slide 36

Slide 36

Tester l’API, c’est ne pas tester l’expérience utilisateurice

Slide 37

Slide 37

Tester l’API, c’est ne pas tester l’expérience utilisateurice

Slide 38

Slide 38

Tester l’API, c’est ne pas tester l’expérience utilisateurice “Dans une approche agile, il est recommandé de ne pas attendre d’avoir l’intégralité du processus disponible et de tester ce que l’on a […] en particulier au niveau d’un microservice” Titre : Tests de charge d’un processus métier et disponibilités des microservices

Slide 39

Slide 39

Tester les APIs, c’est technique

Slide 40

Slide 40

Tester les APIs, c’est technique Automatisation des tests d’API : 49% QA 28% Dev

Slide 41

Slide 41

Tester les APIs, c’est technique Outils graphiques (tests manuels REST / GraphQL / SOAP) Postman, Insomnia, Hoppscotch, Bruno, Apidog, Paw, Talend API Tester (Restlet), Advanced REST Client (ARC), RESTer, Altair GraphQL Client, GraphiQL, SoapUI, ReadyAPI, HTTP Toolkit Outils en ligne de commande (CLI) cURL, HTTPie, Wget, Newman, Wscat, grpcurl, GraphQL CLI, Vegeta, K6, Artillery Outils intégrés aux IDE Thunder Client (VS Code), REST Client Extension (VS Code), RapidAPI Client for VS Code, JetBrains HTTP Client (IntelliJ, PyCharm, WebStorm) Outils en ligne (sans installation) ReqBin, Reqres, Webhook.site, Beeceptor, Mocky.io, Swagger UI, Redocly, Stoplight Studio, Apimatic Outils spécialisés en sécurité d’API Burp Suite, OWASP ZAP, Postman Security Scans, APIsec, 42Crunch, Noname Security, Salt Security, Akamai API Security, Imperva API Security, Wallarm Outils pour tests de performance / charge JMeter, K6, Locust, Artillery, Gatling, BlazeMeter Outils pour mock et virtualisation d’API WireMock, MockServer, Beeceptor, Mockoon, Prism (Stoplight), Mountebank, Hoverfly

Slide 42

Slide 42

Tester les APIs, c’est technique

Slide 43

Slide 43

Comment ? Débuter…

Slide 44

Slide 44

Slide 45

Slide 45

Slide 46

Slide 46

Shift left “A service-based architecture works well with BDD.” “When you design a new service using BDD, you begin by describing the requirements in the form of practical examples of how the service will be used”

Slide 47

Slide 47

Doc review

Slide 48

Slide 48

Requête

Slide 49

Slide 49

Comment ? Aller plus loin…

Slide 50

Slide 50

Flow

Slide 51

Slide 51

Automatiser Comment commencer ? “Bien que les compétences techniques existantes soient des atouts pour envisager un virage vers l’automatisation des tests, la motivation des membres de l’équipe est une des clés importantes du succès” “Faites-vous accompagner”

Slide 52

Slide 52

Automatiser Quoi ?

Slide 53

Slide 53

Automatiser Sur le CI dev, QA, fréquence ? “Personne n’accepte qu’une simple fusion de branche prenne plus de 15 minutes” “Des tests automatisés qui n’ont pas trouvé de bug depuis deux sprints peuvent passer d’un rythme quotidien à un rythme hebdomadaire afin de garder un build dans les 10 minutes”

Slide 54

Slide 54

Exploratoire Un chapitre Quelques pages “Pair ET with other testers.” “Think about the end-user.”

Slide 55

Slide 55

Exploratoire

Slide 56

Slide 56

Comment ? Aller encore plus loin…

Slide 57

Slide 57

Monitoring

Slide 58

Slide 58

Client 4XX Erreur client Serveur

Slide 59

Slide 59

Client Serveur 5XX Erreur serveur

Slide 60

Slide 60

Slide 61

Slide 61

Monitoring Alerting

Slide 62

Slide 62

Monitoring Quid des QA et des env de tests ?

Slide 63

Slide 63

Monitoring

Slide 64

Slide 64

Monitoring

Slide 65

Slide 65

Monitoring Quid des QA et des env de tests ? Regarder les logs en prod… mais pas que

Slide 66

Slide 66

Sécurité I P A 0 P 1 S p A o OWity - T r u c Se Broken Level Authorization : Object Object property Broken Authentication Function Unrestricted Access to Sensitive Business Flows Unrestricted Resource Consumption Security Misconfiguration Server Side Request Forgery ub H t i G r u s o Plus d’inf Improper Inventory Management Unsafe Consumption of APIs

Slide 67

Slide 67

Sécurité l e v e L n e k : o n r o B i t a z m i o r o o Z A u t h b je c t O

Slide 68

Slide 68

Sécurité Unsafe Consumption of APIs

Slide 69

Slide 69

Performance

Slide 70

Slide 70

Contract Client Décrit le contrat (ce qu’il attend) { companyName: string, logo: image } Confirme qu’il fournit bien ce contrat Teste : { companyName: string, logo: image } Serveur

Slide 71

Slide 71

Contract Client 1 { companyName: string, logo: image } Client 2 { companyName: string } { logo: image } Client 3 Client 4 { companyName: string, newSponsor:boolean } Serveur

Slide 72

Slide 72

Tester une API Participer à la conception Lire la documentation Tester les requêtes Pour aller plus loin : Monitoring & alerting Attaquer l’API Contrôler les performances Tester les contrats

Slide 73

Slide 73

Les APIs sont partout ! Vous êtes capables de les tester

Slide 74

Slide 74

Quelques références https://www.youtube.com/watch ?v=FPrMPOlqZN4 https://medium.com/manomano -tech/api-exploratory-testing-anopportunity-to-improve-yourapi-testing-d18e125f244d