【问题标题】:How to do load testing for JWT Secured Rest API如何对 JWT Secured Rest API 进行负载测试
【发布时间】:2017-10-15 01:27:40
【问题描述】:

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

【问题讨论】:

    标签: java rest performance-testing load-testing siege


    【解决方案1】:

    我会建议以下配置:

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

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

    3. HTTP Header Manager 添加为 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 Token,它将registered claim子(主题)设置为Joe,并将Authorization标头与Bearer %generated token string%的值添加到HTTP请求中。

    您需要根据需要修改代码,但概念应该相同。如果需要,请联系您的应用程序开发人员寻求帮助。

    参考资料:

    【讨论】:

      【解决方案2】:

      您可以使用 Jmeter 来测试 JWT Secured Rest API。

      您可以将 jwt 令牌与请求一起包含在“HTTP 标头管理器”中。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-18
        • 2018-06-10
        • 2014-04-13
        • 1970-01-01
        • 1970-01-01
        • 2022-11-30
        相关资源
        最近更新 更多