Dieser Artikel ist der zweite Tag von Brainpad Advent Calender 2019
Hallo @ ist nissy0409240 Ich bin Ingenieur bei BrainPad Es ist weniger als ein Monat im Jahr 2019 gewesen Wie geht es allen
Ich konnte dieses Jahr privat zum Tokyo Dome gehen Es war ein bewegendes Jahr Apropos Tokyo Dome, Baseball Apropos Baseball, Krüge und Batters In diesem Eintrag unabhängig von einem solchen Vorwort Ich werde die Grundfunktionen von Locust vorstellen, einem Lasttest-Tool, mit dem Sie Szenarien in Python schreiben können.
Locust ist ein Python-Lasttest-Tool mit einer GUI-Oberfläche. Das größte Merkmal im Vergleich zu anderen Lasttest-Tools ist, dass Sie Szenarien in Python schreiben können. Es klingt wie ein Wortspiel, aber Sie können auch sagen, dass Sie ein Szenario in Python schreiben müssen.
Klicken Sie hier für verschiedene Links wie offizielle Dokumente
Locust ist übrigens ein englisches Wort für Batta oder Locust.
Die Abbildung ist Tonosamabatta
Ich werde es sofort installieren Führen Sie zum Installieren einfach den folgenden Befehl aus
$ brew install libev
$ python3 -m pip install locustio
Führen Sie nach der Ausführung den Befehl $ locust --help
aus. Wenn Hilfe angezeigt wird, ist die Installation erfolgreich.
Die Abbildung ist Heuschrecke
Das Szenario ist in einem Python-Skript geschrieben. Der Dateiname selbst unterliegt keinen Einschränkungen. Wenn Sie jedoch beim Start den Dateinamen nicht angeben, wird der mit dem Dateinamen "locustfile.py" ausgeführt. Wenn es keine Einschränkungen für den Dateinamen gibt, wird empfohlen, den Dateinamen "locustfile.py" zu verwenden.
Unten ist ein Beispiel
from locust import HttpLocust, TaskSet, task, between
class WebsiteTasks(TaskSet):
@task
def index(self):
self.client.get('/')
class WebsiteUser(HttpLocust):
task_set = WebsiteTasks
wait_time = between(5, 15)
Der API-Server, den Sie erhalten, ist übrigens so
from wsgiref.simple_server import make_server
import json
def api(environ, start_response):
status = '200 OK'
headers = [
('Content-type', 'application/json; charset=utf-8'),
('Access-Control-Allow-Origin', '*'),
]
start_response(status, headers)
return [json.dumps({'message':'hoge'}).encode("utf-8")]
with make_server('', 3000, api) as httpd:
print("Serving on port 3000...")
httpd.serve_forever()
Die Abbildung ist Shoryo Bata
Beginnen Sie mit dem folgenden Befehl
$ locust
[2019-12-01 00:56:13,884] locust.main: Starting web monitor at *:8089
[2019-12-01 00:56:13,885] locust.main: Starting Locust 0.9.0
Im obigen Beispiel werden keine Optionen ausgeführt
Datei mit dem Szenario, das Sie mit der Option -f ausführen möchten Sie können den Endpunkt, den Sie treffen möchten, mit der Option -H angeben
Standardmäßig startet der Locust-Prozess an Port 8089 Es ist möglich, den Startport mit der Option -P zu ändern.
Wenn Sie es richtig angeben Beginne so
$ locust -f locustfile.py -H http://localhost:3000 -P 8089
[2019-12-02 03:38:42,717] locust.main: Starting web monitor at *:8089
[2019-12-02 03:38:42,718] locust.main: Starting Locust 0.13.2
Die Abbildung zeigt eine gekochte Heuschrecke
Wenn Sie nach dem Start über Ihren Browser auf http: // localhost: 8089
zugreifen
Sie können auf die folgende GUI zugreifen
Es gibt Einstellungselemente, die leer sind. Geben Sie daher die folgenden Werte ein 100 bis "Anzahl der zu simulierenden Benutzer" 1 für "Schraffur"
Die Bedeutung von jedem ist wie folgt
Number of users to simulate:Wie viele Clients müssen erstellt werden?(Synonym dafür, wie viele Anfragen maximal pro Sekunde gesendet werden)
Hatch rate:Geschwindigkeit bei der Clienterstellung(Jede Sekunde)
Host:Zielendpunkt
Senden Sie diesmal eine Anfrage an "http: // localhost: 3000", die sich pro Sekunde um 1 Client erhöht. Zu diesem Zeitpunkt wird die maximale Anzahl von Clients auf 100 erhöht. Unter der Bedingung ausführen
Drücken Sie nach der Eingabe die Schaltfläche "Schwarm starten", um die Anforderung auszuführen
Wenn Sie die Ausführung stoppen möchten, drücken Sie die STOP-Taste oben rechts im Browser Nach dem Drücken von STATUS wird STATUS angehalten und Sie können bestätigen, dass der Vorgang abgeschlossen ist.
Die Abbildung zeigt eine Horde von Batta und Heuschrecken
Sie können die Metriken auch auf der Registerkarte Diagramme anzeigen Dies ist eine Metrik, wenn Sie jede Sekunde um 1 Client erhöhen. Wenn Sie bis zu 100 Clients erhöhen, fordern Sie weiterhin mit 100 Clients an
Als nächstes wollen wir sehen, was passiert, wenn die Anforderung fehlschlägt. Dieses Mal werde ich versuchen, den Prozess des API-Servers in der Mitte zu stoppen
Sie können dies auf jeder Registerkarte überprüfen So erhöhen Sie die Anzahl fehlgeschlagener Anforderungen und das Verhältnis von Fehlern zur Gesamtzahl der Anforderungen Sie können auch auf der Registerkarte Fehler überprüfen, warum dies fehlgeschlagen ist.Sie können die Ergebnisse auch von der Registerkarte Downloads Data herunterladen.
Der Inhalt der heruntergeladenen Datei ist wie folgt
Die Abbildung ist eine Figur von Bata
Wie oben erwähnt, haben wir Locust eingeführt, obwohl es nur Grundfunktionen hat. Abschied mit der Illustration des Teigs Vielen Dank, dass Sie bis zum Ende bei uns bleiben
https://qiita.com/yamionp/items/17ffcc465272ad83c490 https://inside.pixiv.blog/east/5407 https://blog.htmlhifive.com/2015/08/14/web-server-load-testing-tools-2-locust/ https://docs.locust.io/en/stable/installation.html https://docs.locust.io/en/stable/quickstart.html https://co3k.org/blog/load-test-by-locust
Recommended Posts