2016-06-29 19 views
1

Ich bin sehr neu im Testen von Sachen.API-Lasttests, Leistungstests, Azure-API-App

Jetzt habe ich Spring Boot Rest API App auf Azure App Service bereitgestellt.

Was mein API tut, ist, dass immer Anfragen von 2 oder 3 festen Kunden Bedeutung, die nur für bezeichneten Kunden geöffnet wird, und meine API ruft Daten aus Azure Tabellen Speicher und ihnen Antworten geben.

Hier sind Anforderungen:

1. 1000 requests per second 
2. 200ms for average response time 

Die erste Frage ist, wie 1000 Anfragen zu machen pro Sekunde (Ich habe versucht JMeter für den Test zu verwenden, konnte aber nicht rausfinden).

Die zweite Frage zweite Frage ist, wie messen oder herauszufinden, wie viele Anfragen meine API-App in Azure pro Sekunde auch nehmen kann.

Wie kann ich getestet werden?

Und noch eine Frage, kann ich sagen, eine Anzahl der Benutzer ist behoben und sagen, "Benutzer laden" ist 2 oder 3, und diese 2 oder 3 Kunden machen 1000 Anfragen pro Sekunde zusammen.

Antwort

0

Sie können https://loader.io/ verwenden, einen kostenlosen Lasttest-Dienst, mit dem Sie Ihre Web-Anwendungen & API mit Tausenden von gleichzeitigen Verbindungen testen können.

+0

ja, scheint wie ihre kostenlose Testversion ist genug für mich –

1

Wie pro Ihre drei Fragen Ich werde versuchen, ein wenig darüber zu erklären, wie diese Ziele von Ihnen erreicht werden kann JMeter mit:

Antwort 1:

Concurrency in Transaktionsebene kann mit einem Constant Throughput Timer JMeter-Plugin erreicht werden.

Von BlazeMeter Blog on Timers

A Constant Durchsatz Timer können die Fäden, um Pause, dass ein zielorientierte Szenario umgesetzt werden könnten. Zielorientiertes Szenario ist ein Lasttest-Typ, bei dem das Ziel ist nicht X gleichzeitige Benutzer, zu simulieren, aber X Anfragen pro Sekunde. Eine Konstante Durchsatz Timer arbeitet genau auf der „Minute“ Ebene, so stellen Sie sicher, dass Ihr Test dauert lange genug (1 Minute oder mehr) und Sie verwenden, um eine angemessene Anlaufzeit Spikes zu vermeiden (es sei denn, Sie mache eine Form von Stresstests.

Mit diesem Plugin in Ihrem Skript erreichen Sie Ihr Ziel "1000 Anfragen pro Sekunde".

Obwohl

Dieser Timer ermöglicht es uns, Gesamtdurchsatz konstant zu halten. Natürlich, , wenn der Server nicht in der Lage ist, eine solche Last zu handhaben, ist der Durchsatz niedriger. Der Durchsatz kann sich verringern, wenn andere Timer dem Constant Durchsatz-Timer widersprechen. Obwohl der Timer als konstanter Durchsatz Timer bezeichnet wird, muss der Durchsatzwert nicht Konstante sein. Dieser Wert kann während eines Tests geändert werden.

Antwort 2:

Konstante Überwachung der Testausgang. Tests sollten durchgeführt werden, indem Schritt für Schritt oder schrittweise und schrittweise erhöht und die Ausgabe beobachtet werden sollte. konstanter Durchsatz Timer nicht die Lage, die gegeben „Durchsatz oder Anfragen pro Sekunde“ wenn genug Threads zu erreichen nicht in Thread Group zur Verfügung gestellt. Und Target Throughput(in Samples per minute) auch schrittweise erhöht werden. Nicht das Ziel 1000/s Eingang vom ersten Test. Es sollte allmählich erreicht werden.

Antwort 3: Es hängt von Ihnen Skriptentwurf ab.Man könnte sagen:

"User Last" 2 oder 3 ist, und die 2 oder 3 Kunden machen 1000 Anfragen pro Sekunde

Aber Gleichzeitigkeit in Thread-Ebene erreicht werden durch Bereitstellen des Test Duration größer als Ramp-up time. Also nach dem Erreichen der Hochlaufzeit werden diese Users or Threads gleichzeitig sein. Obwohl die JMeter-Komponenten ordnungsgemäß konfiguriert werden müssen, wird Nebenläufigkeit möglicherweise nicht erreicht. Sie könnten this blog nützlich finden.

+0

Vielen Dank für die tolle Antwort! auf einen Schlag nicht einfach zu verstehen:) vielen Dank! –

+0

Willkommen und Sie sollten meine Antwort upvote .. – Adnan

+0

Eigentlich .. kann ich Ihnen wieder eine Frage stellen? –