Api for Mock, performances testing, resilience and show functionalities in demo (docker for example, with healthcheck)
- Mock Json response (set by POST or mount volume)
- Mock response size (download file)
- Mock response HTTP Status
- Get Hostname
- Get JVM args
- Get environment variables
- Get request information
- Simulation healthcheck
- get http code
- set http code return
- Sleep response time
- Storage in memory or pass in request path
- Shutdown application with error code
- Latency on startup
- Demo session sharing (for load balancing example)
- Store session local
- Multicast session
1/ Deploy container : docker run -d -p 8050:8050 --name mock-api tuxivinc/mock-api
2/ Call swagger for API infos : http://localhost:8050/mock-api/swagger-ui.html
|
|
| What |
add time before service starting Up |
| How |
add -e STARTING_LATENCY_MS=[XXXX] on command line docker run (XXXX is a time in ms) |
| Usage |
Gatling resilience testing, Docker restart policy |
|
|
| What |
Get Jvm information |
| How |
curl -X GET "http://localhost:8050/mock-api/getinfos/jvm" |
| Usage |
Debug |
|
|
| What |
Get Environment variables |
| How |
curl -X GET "http://localhost:8050/mock-api/getinfos/varenv" |
| Usage |
Debug |
|
|
| What |
Get Hostname of container |
| How |
curl -X GET "http://localhost:8050/mock-api/getinfos/hostname" |
| Usage |
Debug |
|
|
| What |
Kill JVM with specify exit Code |
| How |
|
|
Run container with --restart on-failure |
|
Call curl -X POST "http://localhost:8050/mock-api/shutdown/12" -> The container restart |
|
Call curl -X POST "http://localhost:8050/mock-api/shutdown/0" -> The container don't restart |
| Usage |
Docker Restart policy, Gatling Resilience test |
|
|
| What |
Set return code of Docker HealthCheck |
| How |
|
|
Call curl -X GET "http://localhost:8050/mock-api/healthcheck" -> Return healthcheck code (by default 200) |
|
Call curl -X POST "http://localhost:8050/mock-api/healthcheck/setcode/500" -> Set return code at 500 |
| Usage |
Docker Restart policy, Docker HealthCheck, Gatling Resilience, Traefik expose service |
|
|
| What |
Get information of call (GET/PUT/POST/DELETE/OPTIONS/HEAD/PATCH) |
|
Hostname container |
|
HostIp |
|
Url received |
|
Uri received |
|
Quesry String |
|
List headers |
|
Body content |
| How |
curl -X GET "http://localhost:8050/mock-api/sniffer/headers" |
| Usage |
Demo, Debug |
|
|
| What |
Choose Http status of response |
| How |
|
|
return http status 404 : curl -X GET "http://localhost:8050/mock-api/simulation/error/404" |
|
return http status 500 : curl -X GET "http://localhost:8050/mock-api/simulation/error/500" |
| Usage |
Gatling Resilience, Demo |
|
|
| What |
Choose response time (value in path) |
| How |
Response in 5s : curl -X GET "http://localhost:8050/mock-api/simulation/timeout/5000" |
| Usage |
Gatling Resilience |
|
|
| What |
Choose response time (value store in memory of server, by default: 0ms) |
| How |
|
|
Set response time to 10s: curl -X POST "http://localhost:8050/mock-api/simulation/timeout-memory/10000" |
|
Get response in 10s: curl -X GET "http://localhost:8050/mock-api/simulation/timeout-memory" |
| Usage |
Gatling Resilience |
|
|
| What |
Get file with specify size on request |
| How |
|
|
Get File 200Ko: curl -X GET "http://localhost:8050/mock-api/simulation/response-size/200" --output /tmp/file200 |
|
Get File 2Mo: curl -X GET "http://localhost:8050/mock-api/simulation/response-size/2000" --output /tmp/file2000 |
| Usage |
Gatling Resilience, Demo, Test |
|
|
| What |
Store session (by token key) in server without share scales instances |
| How |
|
|
Run a secondary server (replace -p 8050:8050 by -p 8060:8050) |
|
Call first server with token "test", return timestamp of created session: curl -X GET "http://localhost:8050/mock-api/session/share/test" |
|
Call secondary server with token "test", return same timestamp of first server: curl -X GET "http://localhost:8060/mock-api/session/share/test" |
| Usage |
Demo serverless constraints Docker |
|
|
| What |
Share session (on multicast) between all servers |
| How |
|
|
Run a secondary server (replace -p 8050:8050 by -p 8060:8050) |
|
Call first server with token "test", return timestamp of created session: curl -X GET "http://localhost:8050/mock-api/session/notshare/test" |
|
Call fisrt server with token "test", return same timestamp |
|
Call secondary server with token "test", return timestamp of created session, but different of first server: curl -X GET "http://localhost:8060/mock-api/session/notshare/test" |
|
Call secondary server with token "test", return same timestamp |
| Usage |
Demo serverless constraints Docker |
|
|
| What |
Return Json file store in /mock-response |
| How |
|
|
Create directory /xxx/mock |
|
In this directory, create json file (see examples after) |
|
Run container with -v /xxx/mock:/mock-response |
|
Call curl -X GET "http://localhost:8050/mock-api/mock/test" -> Return 200 with test file content |
|
Call curl -X GET "http://localhost:8050/mock-api/mock/test2" -> Return 200 with test2 file content |
|
Call curl -X GET "http://localhost:8050/mock-api/mock/test3" -> Return 404, no file found |
| Usage |
Mock Json call, Gatling Resilience test |
Examples of File
- File test:
{
"username":"John",
"id":564
}
- File test2:
{
"username":"Robert",
"id":789
}
|
|
| What |
Add Json file store in /mock-response |
| How |
|
|
curl -X POST "http://localhost:8050/mock-api/mock/testrep" -H "accept: application/json" -H "Content-Type: application/json" -d "{"key":"haha"}" -> créer un fichier testrep |
| Usage |
Mock Json call, Gatling Resilience test |