Ich denke, bei der Entwicklung eines Web-Systems muss im Voraus nicht nur bekannt sein, ob es sich wie erwartet verhält, sondern auch, wie viel Last es aushalten kann.
Dieses Mal möchte ich Locust, ein Lasttest-Tool, auf Docker erstellen und es zuerst ausprobieren.
Der Client-PC ist Windows 10 Pro.
Die offiziellen Dokumente lauten wie folgt.
Locust Official Document Locust github
Holen Sie sich die Datei docker-compose.yml Erstellen Sie einen Ordner an einem beliebigen Ort und laden Sie die Datei docker-compose.yml von den folgenden herunter. https://github.com/locustio/locust/tree/master/examples/docker-compose
Ändern Sie den Teil -H des Master-Befehls in die Seite, die Sie testen möchten.
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
Dieses Mal erstellen wir ein Skript, um eine einfache HTTP-Anfrage zu stellen.
from locust import HttpUser, task, between
class MyUser(HttpUser):
wait_time = between(5, 10) #Geben Sie den Zeitpunkt an, zu dem der Benutzer gestartet werden soll
@task(1)
def index(self):
url = '/api/test.php' #Geben Sie den Ort an, an dem die Last aufgebracht werden soll
params = {'id':'0001'} #Geben Sie die gewünschten Parameter an
headers = {'x-api-key':'***********'} #Fügen Sie nach Bedarf ein Header-Element hinzu
self.client.get(url=url,params=params,headers=headers) #GET-Anfrage senden
Öffnen Sie eine Eingabeaufforderung, wechseln Sie in den Ordner, in dem Sie docker-compose.yml abgelegt haben, und führen Sie den folgenden Befehl aus.
docker-compose up -d
Wenn Sie die Anzahl der Worker erhöhen und parallel laden möchten, geben Sie sie beim Start an. Ich denke, es ist okay, es in eine yml-Datei zu schreiben.
docker-compose up -d --scale worker=3
Geben Sie die Anzahl der Benutzer und die Geschwindigkeit ein, mit der die Benutzer gestartet werden, und drücken Sie Start, um auszuführen. (Der Host wird derjenige sein, der in yml eingestellt ist)
Recommended Posts