[PYTHON] Outil de test de charge Build Locust 1.1 sur Docker

introduction

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.

Caractéristiques du criquet

environnement

Le PC client sera Windows 10 Professionnel.

Documents officiels, etc.

Les documents officiels sont les suivants.

Document officiel antiacridien Locust github

Procédure de construction

    1. Installez Docker Desktop Installez Docker DeskTop à partir de ce qui suit. https://www.docker.com/products/docker-desktop
  1. 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
    1. Création de locustfile.py locustfile.py est un fichier qui décrit le scénario et doit être placé au même emplacement que docker-compose.yml.

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

Méthode d'exécution

    1. Démarrer Docker

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
  1. réglages des paramètres Après avoir démarré Docker, affichez Locust dans le navigateur. http://localhost:8089/

コメント 2020-08-31 115336.png

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

Outil de test de charge Build Locust 1.1 sur Docker
Test de charge Websocket avec Locust
docker build python basé sur alpin
Préparez un environnement de test de charge distribué avec l'outil de test de charge Python Locust
Créer un serveur CGI fonctionnant sur Python 3 sur Docker
Créez un environnement LAMP sur votre Docker local
pykintone sur Docker
Comment créer un environnement Django (python) sur Docker
Construction facile de code C ++ avec CMake sur Docker
Installer docker sur Fedora31
Divers outils de test de charge
Construire TensorFlow sous Windows
Construisez XGBoost sur Windows
Installez Docker sur AWS
construire Python sur Ubuntu
OpneJDK8 construit sur CentOS7_x86_64
Installez Python 3.6 sur Docker
Présentation de l'image Docker de Kaggle sur Windows pour créer un environnement