DEV Community

Cover image for SoapUI Mock Service: Guide d'installation et Alternative Moderne
Antoine Laurent
Antoine Laurent

Posted on • Originally published at apidog.com

SoapUI Mock Service: Guide d'installation et Alternative Moderne

En bref

Essayez Apidog aujourd'hui

Les services de maquette (mock services) de SoapUI simulent localement des points de terminaison SOAP ou REST, mais nécessitent un processus Java actif, une configuration manuelle de la répartition (dispatch), et ne sont pas facilement partageables sans une machine dédiée. La Maquette Intelligente (Smart Mock) d'Apidog génère des réponses de maquette à partir de votre schéma d'API, fonctionne dans le cloud, et se partage automatiquement avec votre équipe.

💡 Apidog est une plateforme de développement d'API tout-en-un et gratuite, dotée d'une Maquette Intelligente intégrée qui crée des points de terminaison de maquette instantanés à partir de vos définitions d'API sans nécessiter l'exécution d'un processus Java local. Essayez Apidog gratuitement, aucune carte de crédit requise.

Introduction

Les services de maquette (mock services) sont indispensables pour tester le comportement client d'une API avant que le service réel ne soit disponible, ou pour simuler des cas limites (erreurs, délais) sans impacter un environnement de production.

SoapUI propose des mock services depuis ses débuts : un serveur HTTP local répond selon les règles définies. Cependant, ce mode de fonctionnement pose plusieurs limitations : arrêt dès la fermeture de SoapUI, accès limité à la machine locale, configuration fastidieuse.

Ce guide explique comment utiliser les services de maquette de SoapUI de façon opérationnelle, détaille les problèmes fréquents, puis montre comment la Maquette Intelligente d’Apidog automatise et simplifie ces étapes.

Fonctionnement des services de maquette de SoapUI

SoapUI génère des services de maquette à partir de vos interfaces SOAP ou REST existantes :

  1. Écoute sur un port local configuré (ex : http://localhost:8088/MockService)
  2. Intercepte les requêtes entrantes
  3. Fait correspondre la requête à une réponse de maquette via la logique de répartition (dispatch)
  4. Renvoie la réponse configurée

Pour SOAP, SoapUI génère automatiquement des réponses de stub à partir du WSDL — utile pour simuler un service en pré-production.

Configuration d'un service de maquette SoapUI (étape par étape)

Pour une interface SOAP

  1. Clic droit sur une interface SOAP dans l’arborescence du projet SoapUI.
  2. Sélectionnez « Générer un MockService ».
  3. Dans la boîte de dialogue, configurez :
    • Nom du service (ex : « Maquette OrderService »)
    • Numéro de port (par défaut 8088)
    • Chemin (ex : /orders)
  4. Cliquez sur OK. Un nœud MockService est créé dans le projet.
  5. Développez ce nœud : une MockOperation est générée pour chaque opération SOAP.
  6. Double-cliquez sur une MockOperation pour éditer la réponse de maquette.
  7. Modifiez le XML de la réponse selon vos besoins.
  8. Cliquez sur le bouton de lecture vert pour démarrer le serveur local.

Votre maquette écoute maintenant sur http://localhost:8088/orders. Configurez votre client pour pointer vers cette URL.

Pour une interface REST

  1. Clic droit sur une interface ou une ressource REST.
  2. Sélectionnez « Ajouter au MockService » ou « Générer un MockService ».
  3. Configurez le port et le chemin.
  4. Pour chaque ressource/méthode, définissez le corps de la réponse et le code de statut.
  5. Démarrez le service de maquette.

Configuration de la répartition (dispatch)

Par défaut, SoapUI renvoie la première réponse trouvée. Pour des réponses conditionnelles :

  • Utilisez le dispatch de type SEQUENCE (retourne les réponses dans l’ordre des appels).
  • Pour une logique personnalisée, utilisez un script Groovy (dispatch type SCRIPT).

Exemple de script de répartition :

def request = mockRequest.getRequestContent()
if (request.contains("orderId>12345")) {
  return "OrderFoundResponse"
} else {
  return "OrderNotFoundResponse"
}
Enter fullscreen mode Exit fullscreen mode

Créez plusieurs réponses nommées (« OrderFoundResponse », « OrderNotFoundResponse ») et laissez le script choisir la réponse selon la requête.

Problèmes courants des services de maquette SoapUI

Problème 1 : La maquette s’arrête quand SoapUI se ferme

Le mock service fonctionne dans la JVM de SoapUI. À la fermeture, la maquette s’arrête : vos collègues perdent l’accès.

Contournements :

  • Gardez SoapUI ouvert sur une machine/VM dédiée
  • Utilisez l’exécuteur en ligne de commande :
  mockservicerunner.sh -p 8088 -s "OrderService Mock" project.xml
Enter fullscreen mode Exit fullscreen mode
  • Machine partagée persistante avec SoapUI actif

Ces solutions nécessitent Java et une supervision manuelle.

Problème 2 : Partage en équipe

Un service sur localhost:8088 n’est accessible qu’en local. Pour un partage, il faut configurer l’accès réseau (pare-feu, VPN) ou déployer sur un serveur partagé.

Problème 3 : Scripts de dispatch fragiles avec XML complexe

Les scripts de répartition utilisent la recherche de chaînes Groovy sur le XML brut. Les espaces de noms différents (<ns:orderId>) rendent la logique fragile. Pour une robustesse accrue, il faut parser le XML avec GroovyUtils, ce qui complexifie les scripts.

Problème 4 : Pas d’état persistant

Par défaut, SoapUI est sans état. Pour simuler un workflow (POST/GET), il faut stocker l’état en variable partagée via Groovy, solution fragile.

Problème 5 : SSL complexe

Configurer HTTPS : keystore, paramètres SSL dans SoapUI, gestion des certificats côté client. La configuration est manuelle et fastidieuse.

Maquette Intelligente Apidog : comparaison

L’approche Apidog est basée sur la conception API, non sur un processus local.

  • Définissez simplement votre endpoint (méthode, chemin, schéma de requête/réponse)
  • Apidog génère instantanément une URL cloud :
  https://{votre-projet}.mock.apidog.io/orders/{id}
Enter fullscreen mode Exit fullscreen mode
  • Aucun processus local à démarrer/arrêter
  • Accessible à toute l’équipe, sans configuration réseau
  • Réponses générées à partir du schéma défini

Essayez Apidog gratuitement pour bénéficier d'une maquette cloud partagée.

Génération des réponses de maquette

Apidog lit votre schéma (JSON/OpenAPI) et génère automatiquement des valeurs réalistes.

Exemples :

  • orderId de type string format UUID ➔ UUID aléatoire
  • amount de type number min 0, max 10000 ➔ valeur aléatoire dans la plage

Vous pouvez personnaliser les champs statiques : forcer orderId à "test-123" pour des tests prévisibles.

Points de terminaison SOAP

La Maquette Intelligente d’Apidog vise surtout REST/JSON. Pour des endpoints SOAP, créez une requête, configurez une réponse personnalisée XML (enveloppe SOAP), et le serveur de maquette Apidog la servira. Ce n’est pas automatisé comme le WSDL de SoapUI, mais permet de simuler du SOAP sans Java.

Maquette avec état

Apidog prend en charge les scripts de réponse personnalisés en JavaScript. Vous inspectez la requête et retournez une réponse selon la logique métier : comportement équivalent aux scripts de dispatch Groovy, mais en JS.

Comparaison côte à côte

Caractéristique Maquette SoapUI Maquette Intelligente Apidog
Nécessite Java Oui Non
Toujours actif Uniquement avec l'exécuteur en ligne de commande Oui (cloud)
Accessible par l'équipe Mise en réseau manuelle Oui, via URL partagée
Auto-génération WSDL Oui Non
Basé sur le schéma REST Non Oui
Réponses dynamiques Répartition Groovy Scripts de maquette JavaScript
Prise en charge HTTPS Configuration manuelle du keystore Intégré
Maquette avec état Via variables Groovy Via scripts JavaScript
Gratuit Oui Oui

Quand utiliser l'un ou l'autre

Préférez SoapUI si :

  • Vous simulez un service SOAP basé sur WSDL et voulez des stubs auto-générés
  • L’équipe travaille hors ligne ou derrière des restrictions réseau strictes
  • Votre workflow est déjà centré sur SoapUI

Préférez la Maquette Intelligente Apidog si :

  • Vous simulez du REST et avez besoin d’un accès partagé sans configuration réseau
  • Vous souhaitez des maquettes actives en permanence sans intervention manuelle
  • Vous définissez l’API en amont du développement
  • Vous souhaitez éviter l’installation Java/SoapUI pour la maquette

FAQ

Puis-je exécuter les services de maquette SoapUI en mode headless ?

Oui : utilisez mockservicerunner.sh (Linux/macOS) ou mockservicerunner.bat (Windows) avec votre fichier projet et le nom du service. Java reste nécessaire ; pas d’interface graphique.

Apidog permet-il de maquetter du SOAP ?

Partiellement. Créez une réponse personnalisée XML/SOAP dans le serveur de maquette Apidog. Pas d’auto-génération WSDL/stub, mais la configuration manuelle reste simple pour des besoins basiques.

SoapUI peut-il simuler des réponses lentes ?

Oui. Dans la réponse de maquette, définissez le délai en millisecondes. Apidog permet aussi de configurer le délai de réponse pour simuler un réseau lent.

Combien de requêtes de maquette Apidog peut-il gérer ?

Le serveur de maquette cloud d’Apidog gère la plupart des charges de développement/test. Pour un test de performance massif, privilégiez un serveur de maquette dédié.

Deux membres d’équipe peuvent-ils avoir des réponses différentes pour le même endpoint ?

Avec SoapUI, chacun lance sa maquette locale et la configure à sa guise. Dans Apidog, créez plusieurs environnements ou utilisez des paramètres de requête pour différencier les scénarios : la fonctionnalité « Mock expects » permet d’associer conditions de requête et réponses spécifiques.

Faut-il définir tout le schéma API pour utiliser la maquette Apidog ?

Un schéma de réponse améliore la génération automatique, mais il est possible de créer des réponses manuelles sans schéma complet. Définissez le endpoint, spécifiez le corps de réponse : la maquette est prête.

Le service de maquette SoapUI reste fonctionnel mais lié à un processus Java local. Pour des besoins modernes de maquettes partagées, persistantes et cloud, Apidog offre une alternative sans la complexité du provisioning manuel.

Top comments (0)