Ce module a pour but d'offrir la possibilite de mettre en place des mocks facilement et rapidement.
Il offre la possibilite de définir des mocks via des fichiers json ou a partir d'un fichier de log reseau provenant de Google Chrome (fichiers HAR).
Les moficittions des fichiers mocks sont rechargées a chaud.
npm install
node .
npm install -D git+ssh://git@gitlab.adventiel.com:raphael.hue/SimpleMocks.git
Editez le fichier package.json
de votre projet comme suit :
{
"scripts" : {
"mocks" : "node_modules/.bin/mocks"
}
}
Lancez le server de mock avec la commande :
npm run mocks
La configuration par défaut peut etre surchargée mocks.json
a la racine du projet
La synthaxe est la même que le fichier config.json
{
"port": 8080,
"mocks_dir": "./mocks",
"log_level": "DEBUG"
}
- port : port utilisé
- mocks_dir : chemin relatif vers le dossier de mocks
- log_level : niveau de log
DEBUG|INFO|WARN|ERROR
{
"name": "exemple",
"baseUrl": "exemple/rest",
"enable": true,
"cors" : {
"Access-Control-Allow-Headers" : "*",
"Access-Control-Expose-Headers" : "*",
"Access-Control-Allow-Origin" : "*"
},
"mock": [],
"har" : []
}
- name : nom du groupe de mock
- baseUrl : base de l'url pour ce groupe de mock
- enable : groupe de mock activé ou non
- cors : liste des valeurs CORS renvoyées en tant que headers dans chaque réponse
- mock : liste des mocks
- har : liste des fichiers HAR a charger
La priorité des réponse suit l'ordre de définition. Si la requete satisfait les criteres d'un mock, la réponse est renvoyée. Sinon, les mocks continuent d'etre testés jusqu'a la fin de la liste. Si la requete ne satisfait les criteres d'aucun mocks, une response 501 : Not Implemented
est renvoyé.
{
"url": "path",
"method": "string",
"headers": {
"name" : "*"|"string"
},
"queryParams" : {
"name" : "*"|"string"
},
"pathParams" : {
"name" : "*"|"string"
},
"response": {
"code": 200,
"headers" : {
"header_name" : "sting"
},
"body": null|"string"|{object}
}
}
- url : url du WS. la syntaxe
:path_params_name
peut etre utilisée comme wildcard. l'url finale du mock est<host>:<port>/<baseurl>/<url>
- method : methode http
get|post|put|delete|patch...
- headers : facultatif liste de headers a verifier.
*
peut etre utlisé comme wildcard, la présence du chaps est alors vérifiée, sans controle de sa valeur. - queryParams : facultatif identique a headers pour les queryParams
- pathParams : facultatif identique a headers pour les paths params
- response : réponse a renvoyer si le requete correspond aux criteres
- code : code http
- headers : facultatif liste des headers
- body : facultatif corps de la réponse. renseigner
null
ou omettre pour une reponse vide. Peut etre une chaine de carateres ou un objet. Si la valeur est un chaine de carateres commencant parfile://
, renvoi le contenu du fichier spécifié (chemin relatif)
Permet de generer des mocks a partir d'un fichier *.har
issu de Google Chrome.
Utile pour rejouer un cas test.
Le domaine présent dans les url du fichier HAR sera supprimé et remplacé par la baseUrl
du fichier de configuration.
Les entrées du fichier HAR sont prise en compte dans l'ordre inverse : du plus recent au plus ancient.
{
"filePath" : "string",
"options" : {
"filter" : ["string"]|"string",
"queryParams" :{
"ignore" : ["string"]
}
}
}
- filePath : chemin relatif vers le fichier HAR
- options : facultatif options pour le parsing du fichier
- filter : facultatif filtre sur les urls presentes dans le fichier HAR. les valeur sont gérées comme des expressions régulières. Si l'url valide un seul filtre, elle est inclut dans le mock
- queryParams : facultatif option sur les query params
- ignore : liste des query params a ignorer. Par défaut, tous les query params devront etres identique pour que l'appel match le mock. Si il y a des query params avec a date courante ou une valeur aleatoire, il peut etre utile de les ignorer
Pour generer le fichier har :
- Ouvrir la console debug de Chrome
- Se placer dans l'onglet 'Network'
- Cocher la case 'Preserve log'
- Se Placer dans l'etat de debut du scenario de test (avant connexion/intialisation)
- Clic sur le bouton 'Clear'
- Jouer un scenario
- Une fois fini, faire un clic droit sur l'une des lignes du log network et cliquer sur 'Save as HAR with content'