Je suis intervenu récemment sur un projet pour mettre en place des tests de non-régression et des tests de performances pour une application ASP.net. Ces tests ont été réalisés avec les outils disponibles dans Visual Studio 2010.

Dans le cadre de ces tests, il était nécessaire de restaurer le contenu de la base de données à son étét d’avant test. En effet, les scénarios de tests incluaient la création d’éléments, et le verrouillage de certaines opérations métiers après une première exécution (exemple: ne pas valider deux fois un remboursement).

J’ai donc voulu intégrer au scénario de test l’appel à un web service qui se chargerait de créer un snapshot, puis de restaurer ma base à partir de ce snapshot.

Une API REST pour réaliser des opérations sur les snapshots

J’ai donc développé SQL Snapshot Manager, une API en mode REST (basée sur Web API) qui vous permet simplement de :

Cette API n’a peut-être pas une qualité à toute épreuve (même si il y a quelques tests unitaires), mais cela peut vous faire une bonne base de travail. Vous pouvez télécharger le site sur https://github.com/cmaneu/SqlSnapshotManager/downloads.

Une librairie open-source en cadeau

Pour réaliser cette API, je me suis appuyé sur SQL Server management objects (SMO), une librarie Microsoft permettant de gérer son serveur SQL. J’ai construit un wrapper simplifiant la gestion des snapshots (créer les bons filegroups, etc…).

Cette librairie open source est disponible sur github : https://github.com/cmaneu/SqlSnapshotManager.

Si vous avez des remarques, n’hésitez pas à poster sur Github ;).