我正在使用 Spring 开发 REST API (HTTPS),现在需要对 1000 个并发用户进行负载测试。问题是我使用 siege 进行负载测试,但它无法测试 jwt 令牌标头。这是执行负载测试的最佳方法在我的情况下?
问问题
3461 次
2 回答
3
您可以使用Jmeter测试 JWT Secured Rest API。
您可以将 jwt 令牌与请求一起包含在“HTTP 标头管理器”中。
参考:http: //jmeter.apache.org/usermanual/build-adv-web-test-plan.html#header_manager
于 2017-05-16T06:15:36.670 回答
3
我建议以下配置:
将jjwt jar和依赖项(jackson-databind)放在JMeter 类路径下(只需将 jar 放在 JMeter 安装的“lib”文件夹中,然后重新启动 JMeter 以获取它们)
添加HTTP 请求采样器并将其配置为发送您的 API 请求。
添加HTTP 标头管理器作为 HTTP 请求采样器的子项。
添加JSR223 PreProcessor作为 HTTP 请求采样器的子级。
将以下代码放入 JSR223 PreProcessor“脚本”区域:
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 Web 令牌,它将注册的声明子(主题)设置为Joe
并将Authorization
带有值的标头添加Bearer %generated token string%
到 HTTP 请求。
您将需要根据需要修改代码,但概念应该相同。如果需要,请联系您的应用程序开发人员寻求帮助。
参考:
于 2017-05-16T08:50:38.907 回答