Я разрабатываю REST API (HTTPS) с помощью Spring, и теперь мне нужно загрузить тест для 1000 одновременных пользователей. Проблема в том, что я использовал осаду для загрузки теста, но он не может протестировать заголовок токена jwt. Это лучший способ выполнить нагрузочный тест в моем сценарии?
Как выполнить нагрузочное тестирование для JWT Secured Rest API
Ответы (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
Я бы предложил следующую конфигурацию:
- Поместите jjwt jar вместе с зависимостями (jackson-databind) в разделе Путь к классам JMeter (просто поместите jar-файлы в папку "lib" вашей установки JMeter и перезапустите JMeter, чтобы забрать их)
- Добавьте сэмплер HTTP Request и настройте его для отправки вашего запроса API.
- Добавьте Диспетчер заголовков HTTP в качестве дочернего элемента пробоотборника HTTP-запросов.
- Добавьте препроцессор JSR223 в качестве дочернего элемента пробоотборника HTTP-запросов.
Поместите следующий код в область «Сценарий» препроцессора 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