Как выполнить нагрузочное тестирование для JWT Secured Rest API

Я разрабатываю REST API (HTTPS) с помощью Spring, и теперь мне нужно загрузить тест для 1000 одновременных пользователей. Проблема в том, что я использовал осаду для загрузки теста, но он не может протестировать заголовок токена jwt. Это лучший способ выполнить нагрузочный тест в моем сценарии?


person Ricky    schedule 16.05.2017    source источник


Ответы (2)


Вы можете использовать Jmeter для тестирования JWT Secured Rest API.

Вы можете включить токен jwt в «Диспетчер заголовков HTTP» вместе с запросом.

См.: http://jmeter.apache.org/usermanual/build-adv-web-test-plan.html#header_manager

person Yugal    schedule 16.05.2017

Я бы предложил следующую конфигурацию:

  1. Поместите jjwt jar вместе с зависимостями (jackson-databind) в разделе Путь к классам JMeter (просто поместите jar-файлы в папку "lib" вашей установки JMeter и перезапустите JMeter, чтобы забрать их)
  2. Добавьте сэмплер HTTP Request и настройте его для отправки вашего запроса API.
  3. Добавьте Диспетчер заголовков HTTP в качестве дочернего элемента пробоотборника HTTP-запросов.
  4. Добавьте препроцессор JSR223 в качестве дочернего элемента пробоотборника HTTP-запросов.
  5. Поместите следующий код в область «Сценарий» препроцессора JSR223:

    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)) 
    

Приведенный выше код сгенерирует веб-токен JSON, который будет иметь зарегистрированная претензия, установленная в Joe и добавленная в HTTP-запрос заголовок Authorization со значением Bearer %generated token string%.

Вам нужно будет изменить код в соответствии с вашими потребностями, но концепция должна быть той же. При необходимости обратитесь за помощью к разработчикам приложений.

Рекомендации:

person Dmitri T    schedule 16.05.2017