2

我正在使用 Spring 开发 REST API (HTTPS),现在需要对 1000 个并发用户进行负载测试。问题是我使用 siege 进行负载测试,但它无法测试 jwt 令牌标头。这是执行负载测试的最佳方法在我的情况下?

4

2 回答 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

我建议以下配置:

  1. jjwt jar和依赖项(jackson-databind)放在JMeter 类路径下(只需将 jar 放在 JMeter 安装的“lib”文件夹中,然后重新启动 JMeter 以获取它们)

  2. 添加HTTP 请求采样器并将其配置为发送您的 API 请求。

  3. 添加HTTP 标头管理器作为 HTTP 请求采样器的子项。

  4. 添加JSR223 PreProcessor作为 HTTP 请求采样器的子级。

  5. 将以下代码放入 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 回答