Golang Learning Web Application Performance Testing Practice
Mit der Entwicklung des Internetzeitalters ist die Bedeutung von Webanwendungen in Produktionsumgebungen immer wichtiger geworden. Webanwendungen müssen über eine hohe Leistung und hohe Parallelität verfügen, um die Anforderungen der Benutzer zu erfüllen. Wenn Sie die hohe Leistung und hohe Parallelität von Webanwendungen sicherstellen möchten, müssen Sie Leistungstests durchführen.
In diesem Artikel wird erläutert, wie Sie mithilfe der Go-Sprache Leistungstests für Webanwendungen durchführen und den Lesern praktische Erfahrungen vermitteln.
1. Vorbereitung
Zuerst müssen wir die Go-Sprachentwicklungsumgebung und einige häufig verwendete Frameworks für diese Art der Anwendungsentwicklung installieren. Es wird empfohlen, das Gin-Framework für die Entwicklung von Webanwendungen zu verwenden.
Nach der Installation der Go-Sprachumgebung und des Gin-Frameworks müssen wir einige Leistungstesttools installieren. Zu den häufig verwendeten gehören ApacheBench (ab), wrk usw.
2. Leistungstest
Bevor wir das Leistungstesttool verwenden, müssen wir zuerst unsere Webanwendung starten. Das Folgende ist ein Beispielcode für eine Webanwendung, die mit dem Gin-Framework erstellt wurde:
package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/hello", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "Hello world!", }) }) r.Run() // listen and serve on 0.0.0.0:8080 }
Diese einfache Webanwendung bietet nur eine GET-Methode, um „Hallo Welt!“-Informationen im JSON-Format zurückzugeben.
Als nächstes können wir das ApacheBench-Tool verwenden, um Leistungstests durchzuführen. ApacheBench ist ein von der Apache Software Foundation entwickeltes Tool zum schnellen und einfachen Stresstesten von Webservern. Unter der Befehlszeile können wir den folgenden Befehl zum Testen verwenden:
ab -n 1000 -c 100 http://localhost:8080/hello
Unter diesen steht -n für die Anzahl der Anfragen, -c für die Anzahl der Parallelität und http://localhost:8080/hello für die Adresse von unsere Webanwendung.
Nachdem dieser Befehl ausgeführt wurde, können wir sehen, dass ApacheBench die folgenden Ergebnisse ausgibt:
Server Software: Server Hostname: localhost Server Port: 8080 Document Path: /hello Document Length: 26 bytes Concurrency Level: 100 Time taken for tests: 0.431 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 190000 bytes HTML transferred: 26000 bytes Requests per second: 2321.25 [#/sec] (mean) Time per request: 43.128 [ms] (mean) Time per request: 0.431 [ms] (mean, across all concurrent requests) Transfer rate: 431.51 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.2 0 2 Processing: 8 42 11.1 40 71 Waiting: 8 42 10.8 40 71 Total: 8 42 11.1 40 72 Percentage of the requests served within a certain time (ms) 50% 40 66% 49 75% 53 80% 55 90% 60 95% 68 98% 71 99% 72 100% 72 (longest request)
Unter diesen haben die einzelnen Indikatoren folgende Bedeutung:
Der wichtigste Indikator sind die Anfragen pro Sekunde. Sie stellt die Rechenleistung des Servers dar. Je höher sie ist, desto besser ist die Leistung des Servers. Gleichzeitig sind die Zeit pro Anfrage (die für jede Anfrage benötigte Zeit) und die Zeit pro Anfrage (die durchschnittliche für jede Anfrage benötigte Zeit) ebenfalls sehr wichtige Indikatoren. Sie stellen die Verarbeitungsleistung einer einzelnen Anfrage dar, also die Antwortgeschwindigkeit Je niedriger der Wert, desto langsamer ist die Leistung des Servers.
Zusätzlich zu ApacheBench können wir auch das Tool wrk verwenden, um Leistungstests von Webanwendungen durchzuführen. wrk ist ein modernes HTTP-Benchmark-Testtool mit den Vorteilen hoher Parallelität und hoher Leistung.
Auch hier müssen wir zuerst unsere Webanwendung starten. In der Befehlszeile können wir zum Testen den folgenden Befehl verwenden:
wrk -t 4 -c 1000 -d 10s http://localhost:8080/hello
Darunter steht -t für die Anzahl der Threads, -c für die Anzahl der Parallelität, -d für die Testdauer und http://localhost:8080 /hello ist unsere Webanwendung. Die Adresse des Programms.
Nachdem dieser Befehl ausgeführt wurde, können wir sehen, dass wrk die folgenden Ergebnisse ausgibt:
Running 10s test @ http://localhost:8080/hello 4 threads and 1000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 4.97ms 51.05us 5.57ms 78.15% Req/Sec 50.73k 2.10k 54.41k 79.00% 2034638 requests in 10.00s, 381.47MB read Socket errors: connect 748, read 1969, write 0, timeout 0 Requests/sec: 203513.06 Transfer/sec: 38.14MB
Unter diesen haben die einzelnen Indikatoren folgende Bedeutung:
Ebenso sind Requests/sec (Anzahl der Requests pro Sekunde) und Latency (Verarbeitungsverzögerung) die wichtigsten Indikatoren. Unter diesen ist Requests/sec (Anzahl der Anfragen pro Sekunde) auch ein wichtiger Indikator zur Messung der Serverleistung.
3. Zusammenfassung
In diesem Artikel wird die Verwendung der Go-Sprache für Leistungstests von Webanwendungen vorgestellt, einschließlich Methoden und Vorsichtsmaßnahmen für Leistungstests mit ApacheBench und wrk. Bei der Durchführung von Leistungstests müssen wir auf die Hardware- und Softwarekonfiguration der Testumgebung sowie auf Parametereinstellungen und Ergebnisinterpretation während des Testprozesses achten. Gleichzeitig müssen wir in der Praxis auch Leistungstests basierend auf unterschiedlichen Geschäftsanforderungen und -szenarien durchführen, um die Leistung und Zuverlässigkeit von Webanwendungen zu verbessern.
Das obige ist der detaillierte Inhalt vonGolang Learning-Praxis zum Testen der Webanwendungsleistung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!