2017-05-16 2 views
1

Ich entwickle eine REST API (HTTPS) mit Spring und muss nun Test auf 1000 gleichzeitige Benutzer laden. Das Problem ist, dass ich belege, um Test zu laden, aber es kann nicht über den testen jwt token header.Was ist der beste Weg, Lasttest in meinem Szenario durchzuführen?Load-Tests für JWT Secured Rest API durchführen

Antwort

2

Ich würde die folgende Konfiguration vorschlagen:

  1. jjwt jar Put zusammen mit Abhängigkeiten (jackson-databind) unter JMeter Classpath (fallen nur die Gläser in "lib" Ordner Ihrer JMeter Installation und Neustart JMeter, um sie abzuholen)
  2. Fügen Sie HTTP Request Sampler hinzu und konfigurieren Sie es, um Ihre API-Anfrage zu senden.
  3. Fügen Sie HTTP Header Manager als untergeordnetes Element des HTTP Request-Samplers hinzu.
  4. Fügen Sie JSR223 PreProcessor als untergeordnetes Element des HTTP Request-Samplers hinzu.
  5. Setzen Sie den folgenden Code in JSR223 PreProcessor "Script" Bereich:

    import io.jsonwebtoken.Jwts 
    import io.jsonwebtoken.SignatureAlgorithm 
    import io.jsonwebtoken.impl.crypto.MacProvider 
    import org.apache.jmeter.protocol.http.control.Header 
    import java.security.Key 
    
    
    def key = MacProvider.generateKey(); 
    
    def compactJws = Jwts.builder() 
        .setSubject('Joe') 
        .signWith(SignatureAlgorithm.HS512, key) 
        .compact() 
    
    sampler.getHeaderManager().add(new Header('Authorization', 'Bearer ' + compactJws)) 
    

Der obige Code wird eine JSON Web Token erzeugen, das die registered claim Unter (subject) auf Joe und Hinzufügen der Authorization Header haben mit dem Wert Bearer %generated token string% an die HTTP-Anfrage.

Sie müssen den Code nach Ihren Bedürfnissen ändern, aber das Konzept sollte das gleiche sein. Wenden Sie sich bei Bedarf an Ihre Anwendungsentwickler, um Unterstützung zu erhalten.

Referenzen: