🚀 Deploy stuff

master
Antoine PEREDERII 1 year ago
parent fcb008a7e6
commit 24d5070595

@ -1,3 +1,96 @@
# K6_Project <div align = center>
This repository test HeartDev API <h1>HeartTrack Load Testing with K6</h1>
</div>
## Introduction
This repository contains load testing scripts written in K6 for HeartTrack application APIs. The purpose of these scripts is to simulate user traffic and analyze the performance of the APIs under different load conditions.
## Prerequisites
Before running the load tests, ensure you have the following installed:
- [K6](https://k6.io/docs/getting-started/installation/)
## Getting Started
To run the load tests locally, follow these steps:
1. Clone this repository:
```bash
git clone https://codefirst.iut.uca.fr/git/HeartDev/K6_Project.git
```
2. Navigate to the project directory:
```bash
cd src
```
3. Install dependencies:
```bash
apt install k6
```
4. Run the load tests:
```bash
k6 run script.js
```
## Features
- **Scripting**: Load testing scripts written in JavaScript using K6.
- **Simulation**: Simulate user traffic to API endpoints.
- **Analysis**: Analyze response times, throughput, and errors.
- **Scalability**: Scale up or down the number of virtual users to simulate real-world scenarios.
## Test Scenarios
### Scenario 1: Get User Details
- Description: Retrieve user details by ID.
- Endpoint: `/api/v1/Users/{id}`
- Method: GET
- Parameters: `id`
- Headers: `Authorization`
- Expected Response: User details JSON object.
### Scenario 2: Delete User
- Description: Delete a user by ID.
- Endpoint: `/api/v1/Users/{id}`
- Method: DELETE
- Parameters: `id`
- Headers: `Authorization`
- Expected Response: Success message or error.
### Scenario 3: Update User
- Description: Update user details.
- Endpoint: `/api/v1/Users/{id}`
- Method: PUT
- Parameters: `id`, JSON payload with updated user details
- Headers: `Authorization`, `Content-Type`
- Expected Response: Updated user details or error.
## Running Tests
To run the load tests, you can use K6's built-in CLI or integrate with your CI/CD pipeline for automated testing.
```bash
k6 run script.js
```
## Contributing
Contributions are welcome! If you have any suggestions, improvements, or new test scenarios, feel free to open an issue or create a pull request.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgements
Special thanks to the team members of HeartTrack project for their contributions and support during load testing.

@ -0,0 +1,40 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 10 }, // 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 20 }, // 20 utilisateurs pendant 3 minutes
{ duration: '1m', target: 30 }, // augmentation jusqu'à 30 utilisateurs pendant 1 minute
{ duration: '3m', target: 30 }, // maintenir 30 utilisateurs pendant 3 minutes
{ duration: '1m', target: 40 }, // augmentation jusqu'à 40 utilisateurs pendant 1 minute
{ duration: '3m', target: 40 }, // maintenir 40 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 60 }, // augmentation jusqu'à 60 utilisateurs pendant 1 minute
{ duration: '3m', target: 60 }, // maintenir 60 utilisateurs pendant 3 minutes
{ duration: '1m', target: 70 }, // augmentation jusqu'à 70 utilisateurs pendant 1 minute
{ duration: '3m', target: 70 }, // maintenir 70 utilisateurs pendant 3 minutes
{ duration: '1m', target: 80 }, // augmentation jusqu'à 80 utilisateurs pendant 1 minute
{ duration: '3m', target: 80 }, // maintenir 80 utilisateurs pendant 3 minutes
{ duration: '1m', target: 90 }, // augmentation jusqu'à 90 utilisateurs pendant 1 minute
{ duration: '3m', target: 90 }, // maintenir 90 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
],
};
export default function() {
let res = http.get('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/count', {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,40 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 10 }, // 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 20 }, // 20 utilisateurs pendant 3 minutes
{ duration: '1m', target: 30 }, // augmentation jusqu'à 30 utilisateurs pendant 1 minute
{ duration: '3m', target: 30 }, // maintenir 30 utilisateurs pendant 3 minutes
{ duration: '1m', target: 40 }, // augmentation jusqu'à 40 utilisateurs pendant 1 minute
{ duration: '3m', target: 40 }, // maintenir 40 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 60 }, // augmentation jusqu'à 60 utilisateurs pendant 1 minute
{ duration: '3m', target: 60 }, // maintenir 60 utilisateurs pendant 3 minutes
{ duration: '1m', target: 70 }, // augmentation jusqu'à 70 utilisateurs pendant 1 minute
{ duration: '3m', target: 70 }, // maintenir 70 utilisateurs pendant 3 minutes
{ duration: '1m', target: 80 }, // augmentation jusqu'à 80 utilisateurs pendant 1 minute
{ duration: '3m', target: 80 }, // maintenir 80 utilisateurs pendant 3 minutes
{ duration: '1m', target: 90 }, // augmentation jusqu'à 90 utilisateurs pendant 1 minute
{ duration: '3m', target: 90 }, // maintenir 90 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
],
};
export default function() {
let res = http.del('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/1/friend/2', null, {
headers: {
'accept': '*/*',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,40 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 10 }, // 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 20 }, // 20 utilisateurs pendant 3 minutes
{ duration: '1m', target: 30 }, // augmentation jusqu'à 30 utilisateurs pendant 1 minute
{ duration: '3m', target: 30 }, // maintenir 30 utilisateurs pendant 3 minutes
{ duration: '1m', target: 40 }, // augmentation jusqu'à 40 utilisateurs pendant 1 minute
{ duration: '3m', target: 40 }, // maintenir 40 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 60 }, // augmentation jusqu'à 60 utilisateurs pendant 1 minute
{ duration: '3m', target: 60 }, // maintenir 60 utilisateurs pendant 3 minutes
{ duration: '1m', target: 70 }, // augmentation jusqu'à 70 utilisateurs pendant 1 minute
{ duration: '3m', target: 70 }, // maintenir 70 utilisateurs pendant 3 minutes
{ duration: '1m', target: 80 }, // augmentation jusqu'à 80 utilisateurs pendant 1 minute
{ duration: '3m', target: 80 }, // maintenir 80 utilisateurs pendant 3 minutes
{ duration: '1m', target: 90 }, // augmentation jusqu'à 90 utilisateurs pendant 1 minute
{ duration: '3m', target: 90 }, // maintenir 90 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
],
};
export default function() {
let res = http.del('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/9', null, {
headers: {
'accept': '*/*',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,31 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export let options = {
stages: [
{ duration: '1m', target: 10 }, // 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 10 }, // maintenir 10 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
{ duration: '1m', target: 0 }, // diminution progressive jusqu'à 0 utilisateurs
],
};
export default function () {
// Exemple de requête pour récupérer des activités
let res = http.get('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Activity?OrderingPropertyName=ByType&Descending=true&Index=0&Count=10', {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
'response time is less than 500ms': (r) => r.timings.duration < 500,
});
sleep(1);
}

@ -0,0 +1,40 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 10 }, // 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 20 }, // 20 utilisateurs pendant 3 minutes
{ duration: '1m', target: 30 }, // augmentation jusqu'à 30 utilisateurs pendant 1 minute
{ duration: '3m', target: 30 }, // maintenir 30 utilisateurs pendant 3 minutes
{ duration: '1m', target: 40 }, // augmentation jusqu'à 40 utilisateurs pendant 1 minute
{ duration: '3m', target: 40 }, // maintenir 40 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 60 }, // augmentation jusqu'à 60 utilisateurs pendant 1 minute
{ duration: '3m', target: 60 }, // maintenir 60 utilisateurs pendant 3 minutes
{ duration: '1m', target: 70 }, // augmentation jusqu'à 70 utilisateurs pendant 1 minute
{ duration: '3m', target: 70 }, // maintenir 70 utilisateurs pendant 3 minutes
{ duration: '1m', target: 80 }, // augmentation jusqu'à 80 utilisateurs pendant 1 minute
{ duration: '3m', target: 80 }, // maintenir 80 utilisateurs pendant 3 minutes
{ duration: '1m', target: 90 }, // augmentation jusqu'à 90 utilisateurs pendant 1 minute
{ duration: '3m', target: 90 }, // maintenir 90 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
],
};
export default function() {
let res = http.get('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/1/friends?OrderingPropertyName=ByName&Descending=false&Index=0&Count=10', {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,40 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 10 }, // 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 20 }, // 20 utilisateurs pendant 3 minutes
{ duration: '1m', target: 30 }, // augmentation jusqu'à 30 utilisateurs pendant 1 minute
{ duration: '3m', target: 30 }, // maintenir 30 utilisateurs pendant 3 minutes
{ duration: '1m', target: 40 }, // augmentation jusqu'à 40 utilisateurs pendant 1 minute
{ duration: '3m', target: 40 }, // maintenir 40 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 60 }, // augmentation jusqu'à 60 utilisateurs pendant 1 minute
{ duration: '3m', target: 60 }, // maintenir 60 utilisateurs pendant 3 minutes
{ duration: '1m', target: 70 }, // augmentation jusqu'à 70 utilisateurs pendant 1 minute
{ duration: '3m', target: 70 }, // maintenir 70 utilisateurs pendant 3 minutes
{ duration: '1m', target: 80 }, // augmentation jusqu'à 80 utilisateurs pendant 1 minute
{ duration: '3m', target: 80 }, // maintenir 80 utilisateurs pendant 3 minutes
{ duration: '1m', target: 90 }, // augmentation jusqu'à 90 utilisateurs pendant 1 minute
{ duration: '3m', target: 90 }, // maintenir 90 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
],
};
export default function() {
let res = http.get('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/1', {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,40 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 10 }, // 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 20 }, // 20 utilisateurs pendant 3 minutes
{ duration: '1m', target: 30 }, // augmentation jusqu'à 30 utilisateurs pendant 1 minute
{ duration: '3m', target: 30 }, // maintenir 30 utilisateurs pendant 3 minutes
{ duration: '1m', target: 40 }, // augmentation jusqu'à 40 utilisateurs pendant 1 minute
{ duration: '3m', target: 40 }, // maintenir 40 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 60 }, // augmentation jusqu'à 60 utilisateurs pendant 1 minute
{ duration: '3m', target: 60 }, // maintenir 60 utilisateurs pendant 3 minutes
{ duration: '1m', target: 70 }, // augmentation jusqu'à 70 utilisateurs pendant 1 minute
{ duration: '3m', target: 70 }, // maintenir 70 utilisateurs pendant 3 minutes
{ duration: '1m', target: 80 }, // augmentation jusqu'à 80 utilisateurs pendant 1 minute
{ duration: '3m', target: 80 }, // maintenir 80 utilisateurs pendant 3 minutes
{ duration: '1m', target: 90 }, // augmentation jusqu'à 90 utilisateurs pendant 1 minute
{ duration: '3m', target: 90 }, // maintenir 90 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
],
};
export default function() {
let res = http.get('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users?OrderingPropertyName=ByName&Descending=false&Index=0&Count=10', {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,80 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 1 }, // 1 utilisateurs pendant 1 minute
{ duration: '3m', target: 5 }, // 5 utilisateurs pendant 3 minutes
{ duration: '1m', target: 10 }, // augmentation jusqu'à 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 10 }, // maintenir 10 utilisateurs pendant 3 minutes
{ duration: '1m', target: 20 }, // augmentation jusqu'à 20 utilisateurs pendant 1 minute
{ duration: '3m', target: 20 }, // maintenir 20 utilisateurs pendant 3 minutes
{ duration: '1m', target: 30 }, // augmentation jusqu'à 30 utilisateurs pendant 1 minute
{ duration: '3m', target: 30 }, // maintenir 30 utilisateurs pendant 3 minutes
{ duration: '1m', target: 40 }, // augmentation jusqu'à 40 utilisateurs pendant 1 minute
{ duration: '3m', target: 40 }, // maintenir 40 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 60 }, // augmentation jusqu'à 60 utilisateurs pendant 1 minute
{ duration: '3m', target: 60 }, // maintenir 60 utilisateurs pendant 3 minutes
{ duration: '1m', target: 70 }, // augmentation jusqu'à 70 utilisateurs pendant 1 minute
{ duration: '3m', target: 70 }, // maintenir 70 utilisateurs pendant 3 minutes
{ duration: '1m', target: 80 }, // augmentation jusqu'à 80 utilisateurs pendant 1 minute
{ duration: '3m', target: 80 }, // maintenir 80 utilisateurs pendant 3 minutes
{ duration: '1m', target: 90 }, // augmentation jusqu'à 90 utilisateurs pendant 1 minute
{ duration: '3m', target: 90 }, // maintenir 90 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
],
};
export default function() {
let payload = {
activity: {
"id": 10,
"type": "string",
"date": "2024-04-07T16:12:59.389Z",
"startTime": "2024-04-07T16:12:59.389Z",
"endTime": "2024-04-07T16:12:59.389Z",
"effortFelt": 0,
"variability": 0,
"variance": 0,
"standardDeviation": 0,
"average": 0,
"maximum": 0,
"minimum": 0,
"averageTemperature": 0,
"hasAutoPause": true
},
heartRates: [
{
"id": 0,
"timestamp": "2024-04-07T16:12:59.389Z",
"latitude": 0,
"longitude": 0,
"altitude": 0,
"heartRate": 0,
"cadence": 0,
"distance": 0,
"speed": 0,
"power": 0,
"temperature": 0
}
],
athleteId: 1
};
let res = http.post('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Activity', JSON.stringify(payload), {
headers: {
'accept': '*/*',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
'Content-Type': 'application/json; x-api-version=1.0',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,40 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 10 }, // 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 20 }, // 20 utilisateurs pendant 3 minutes
{ duration: '1m', target: 30 }, // augmentation jusqu'à 30 utilisateurs pendant 1 minute
{ duration: '3m', target: 30 }, // maintenir 30 utilisateurs pendant 3 minutes
{ duration: '1m', target: 40 }, // augmentation jusqu'à 40 utilisateurs pendant 1 minute
{ duration: '3m', target: 40 }, // maintenir 40 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 60 }, // augmentation jusqu'à 60 utilisateurs pendant 1 minute
{ duration: '3m', target: 60 }, // maintenir 60 utilisateurs pendant 3 minutes
{ duration: '1m', target: 70 }, // augmentation jusqu'à 70 utilisateurs pendant 1 minute
{ duration: '3m', target: 70 }, // maintenir 70 utilisateurs pendant 3 minutes
{ duration: '1m', target: 80 }, // augmentation jusqu'à 80 utilisateurs pendant 1 minute
{ duration: '3m', target: 80 }, // maintenir 80 utilisateurs pendant 3 minutes
{ duration: '1m', target: 90 }, // augmentation jusqu'à 90 utilisateurs pendant 1 minute
{ duration: '3m', target: 90 }, // maintenir 90 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
],
};
export default function() {
let res = http.post('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/1/friend/2', null, {
headers: {
'accept': '*/*',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,56 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 10 }, // 10 utilisateurs pendant 1 minute
{ duration: '3m', target: 20 }, // 20 utilisateurs pendant 3 minutes
{ duration: '1m', target: 30 }, // augmentation jusqu'à 30 utilisateurs pendant 1 minute
{ duration: '3m', target: 30 }, // maintenir 30 utilisateurs pendant 3 minutes
{ duration: '1m', target: 40 }, // augmentation jusqu'à 40 utilisateurs pendant 1 minute
{ duration: '3m', target: 40 }, // maintenir 40 utilisateurs pendant 3 minutes
{ duration: '1m', target: 50 }, // augmentation jusqu'à 50 utilisateurs pendant 1 minute
{ duration: '3m', target: 50 }, // maintenir 50 utilisateurs pendant 3 minutes
{ duration: '1m', target: 60 }, // augmentation jusqu'à 60 utilisateurs pendant 1 minute
{ duration: '3m', target: 60 }, // maintenir 60 utilisateurs pendant 3 minutes
{ duration: '1m', target: 70 }, // augmentation jusqu'à 70 utilisateurs pendant 1 minute
{ duration: '3m', target: 70 }, // maintenir 70 utilisateurs pendant 3 minutes
{ duration: '1m', target: 80 }, // augmentation jusqu'à 80 utilisateurs pendant 1 minute
{ duration: '3m', target: 80 }, // maintenir 80 utilisateurs pendant 3 minutes
{ duration: '1m', target: 90 }, // augmentation jusqu'à 90 utilisateurs pendant 1 minute
{ duration: '3m', target: 90 }, // maintenir 90 utilisateurs pendant 3 minutes
{ duration: '1m', target: 100 }, // augmentation jusqu'à 100 utilisateurs pendant 1 minute
{ duration: '3m', target: 100 }, // maintenir 100 utilisateurs pendant 3 minutes
],
};
export default function() {
const payload = {
id: 0,
username: "String",
lastName: "string",
firstName: "string",
email: "string",
sexe: "M",
length: 0,
weight: 0,
password: "string",
dateOfBirth: "2024-04-07T16:49:08.188Z",
profilePicture: "string",
isCoach: true
};
let res = http.put('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/10', JSON.stringify(payload), {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
'Content-Type': 'application/json; x-api-version=1.0'
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,24 @@
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
// Définir l'URL de l'API pour la requête GET
let urlGetCount = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/count';
let paramsGetCount = {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
};
// Envoyer la requête GET
let resGetCount = http.get(urlGetCount, paramsGetCount);
// Attendre 1 seconde entre chaque requête
sleep(1);
}

@ -0,0 +1,24 @@
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
// Définir l'URL de l'API pour la requête DELETE
let urlDelete = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/1/friend/2';
let paramsDelete = {
headers: {
'accept': '*/*',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
};
// Envoyer la requête DELETE
let resDelete = http.del(urlDelete, null, paramsDelete);
// Attendre 1 seconde entre chaque requête
sleep(1);
}

@ -0,0 +1,24 @@
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
// Définir l'URL de l'API pour la requête DELETE
let urlDelete = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/9';
let paramsDelete = {
headers: {
'accept': '*/*',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
};
// Envoyer la requête DELETE
let resDelete = http.del(urlDelete, null, paramsDelete);
// Attendre 1 seconde entre chaque requête
sleep(1);
}

@ -0,0 +1,24 @@
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
// Définir l'URL de l'API et les paramètres de la requête
let url = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Activity?OrderingPropertyName=ByType&Descending=true&Index=0&Count=10';
let params = {
headers: {
'accept': 'application/json',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg'
},
};
// Envoyer la requête GET
let res = http.get(url, params);
// Attendre 1 seconde entre chaque requête
sleep(1);
}

@ -0,0 +1,24 @@
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
// Définir l'URL de l'API pour la requête GET
let urlGet = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/1/friends?OrderingPropertyName=ByName&Descending=false&Index=0&Count=10';
let paramsGet = {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
};
// Envoyer la requête GET
let resGet = http.get(urlGet, paramsGet);
// Attendre 1 seconde entre chaque requête
sleep(1);
}

@ -0,0 +1,24 @@
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
// Définir l'URL de l'API pour la requête GET
let urlGetUser = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/1';
let paramsGetUser = {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
};
// Envoyer la requête GET
let resGetUser = http.get(urlGetUser, paramsGetUser);
// Attendre 1 seconde entre chaque requête
sleep(1);
}

@ -0,0 +1,24 @@
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
// Définir l'URL de l'API pour la requête GET
let urlGetUsers = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users?OrderingPropertyName=ByName&Descending=false&Index=0&Count=10';
let paramsGetUsers = {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
};
// Envoyer la requête GET
let resGetUsers = http.get(urlGetUsers, paramsGetUsers);
// Attendre 1 seconde entre chaque requête
sleep(1);
}

@ -0,0 +1,58 @@
import http from 'k6/http';
import { sleep, check } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
let payload = {
activity: {
"id": 10,
"type": "string",
"date": "2024-04-07T16:12:59.389Z",
"startTime": "2024-04-07T16:12:59.389Z",
"endTime": "2024-04-07T16:12:59.389Z",
"effortFelt": 0,
"variability": 0,
"variance": 0,
"standardDeviation": 0,
"average": 0,
"maximum": 0,
"minimum": 0,
"averageTemperature": 0,
"hasAutoPause": true
},
heartRates: [
{
"id": 0,
"timestamp": "2024-04-07T16:12:59.389Z",
"latitude": 0,
"longitude": 0,
"altitude": 0,
"heartRate": 0,
"cadence": 0,
"distance": 0,
"speed": 0,
"power": 0,
"temperature": 0
}
],
athleteId: 1
};
let res = http.post('https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Activity', JSON.stringify(payload), {
headers: {
'accept': '*/*',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
'Content-Type': 'application/json; x-api-version=1.0',
},
});
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

@ -0,0 +1,24 @@
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
// Définir l'URL de l'API pour la requête POST
let urlPost = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/1/friend/2';
let paramsPost = {
headers: {
'accept': '*/*',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
},
};
// Envoyer la requête POST
let resPost = http.post(urlPost, null, paramsPost);
// Attendre 1 seconde entre chaque requête
sleep(1);
}

@ -0,0 +1,51 @@
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function() {
// Définir l'URL de l'API et les paramètres de la requête GET
let urlGet = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Activity?OrderingPropertyName=ByType&Descending=true&Index=0&Count=10';
let paramsGet = {
headers: {
'accept': 'application/json',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg'
},
};
// Envoyer la requête GET
let resGet = http.get(urlGet, paramsGet);
// Attendre 1 seconde entre chaque requête
sleep(1);
// Définir l'URL de l'API pour la requête PUT
let urlPut = 'https://codefirst.iut.uca.fr/containers/HeartDev-api/api/v1/Users/10';
let payload = {
id: 0,
username: "String",
lastName: "string",
firstName: "string",
email: "string",
sexe: "M",
length: 0,
weight: 0,
password: "string",
dateOfBirth: "2024-04-07T16:49:08.188Z",
profilePicture: "string",
isCoach: true
};
let paramsPut = {
headers: {
'accept': 'text/plain; x-api-version=1.0',
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJuYW1laWQiOiI1IiwiZ2l2ZW5fbmFtZSI6InN0cmluZyIsIm5iZiI6MTcxMjUwNTM4MSwiZXhwIjoxNzEzMTEwMTgxLCJpYXQiOjE3MTI1MDUzODEsImlzcyI6IkhlYXJ0VHJhY2siLCJhdWQiOiJIZWFydFRyYWNrIn0.MOCk1K5BzO6BEd1RNUNr_z-ChO1D7e9yZA0kH3d5HgXw881jxBjW5hGw6XW-rqp0phuTjUTR87nFOjI8Pq9wsg',
'Content-Type': 'application/json; x-api-version=1.0'
},
};
// Envoyer la requête PUT
let resPut = http.put(urlPut, JSON.stringify(payload), paramsPut);
}
Loading…
Cancel
Save