【问题标题】: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
        相关资源
        最近更新 更多