Lors du développement d'un système Web, je pense qu'il est nécessaire de savoir à l'avance non seulement s'il se comporte comme prévu, mais également à quelle charge il peut supporter.
Cette fois, je voudrais construire Locust, un outil de test de charge, sur Docker et l'essayer en premier.
Le PC client sera Windows 10 Professionnel.
Les documents officiels sont les suivants.
Document officiel antiacridien Locust github
Récupérez le fichier docker-compose.yml Créez un dossier à n'importe quel emplacement et téléchargez le fichier docker-compose.yml à partir de ce qui suit. https://github.com/locustio/locust/tree/master/examples/docker-compose
Remplacez la partie -H de la commande principale par la page que vous souhaitez tester.
version: "3"
services:
web:
build:
context: ./apache-php
ports:
- 80:80
privileged: true
links:
- db
volumes:
- "./lara-d/:/var/www/html"
- "./apache-php/apache.conf:/etc/httpd/conf/httpd.conf"
container_name: "apache-php"
version: '3'
services:
master:
image: locustio/locust
ports:
- "8089:8089"
volumes:
- ./:/mnt/locust
command: -f /mnt/locust/locustfile.py --master -H http://master:8089
worker:
image: locustio/locust
volumes:
- ./:/mnt/locust
command: -f /mnt/locust/locustfile.py --worker --master-host master
Cette fois, nous allons créer un script pour faire une simple requête HTTP.
from locust import HttpUser, task, between
class MyUser(HttpUser):
wait_time = between(5, 10) #Spécifiez le moment de lancement de l'utilisateur
@task(1)
def index(self):
url = '/api/test.php' #Spécifiez où appliquer la charge
params = {'id':'0001'} #Spécifiez les paramètres selon vos besoins
headers = {'x-api-key':'***********'} #Ajouter un élément d'en-tête au besoin
self.client.get(url=url,params=params,headers=headers) #Envoyer une demande GET
Ouvrez une invite de commande, accédez au dossier dans lequel vous avez placé docker-compose.yml et exécutez la commande suivante.
docker-compose up -d
Si vous souhaitez augmenter le nombre de nœuds de calcul et les charger en parallèle, spécifiez-les au démarrage. Je pense que c'est correct de l'écrire dans un fichier yml.
docker-compose up -d --scale worker=3
Entrez le nombre d'utilisateurs et la vitesse à laquelle les utilisateurs vont démarrer, puis appuyez sur Démarrer pour exécuter. (L'hôte sera celui défini dans yml)
Recommended Posts