You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter如何并发运行两个线程组?认证与REST API协同测试方案

JMeter多线程组并行认证与API调用实现方案

一、实现认证线程组与API线程组并行执行的方法

  • 调整线程组运行模式:
    1. 打开测试计划设置,勾选「Run Thread Groups Concurrently」,让两个线程组能同时启动运行。
    2. 认证线程组配置:
      • 线程数设为1,循环次数选「永远」(或者根据token过期周期设置足够多的循环数)。
      • 在Flow Control Action里设置延迟时间,比如token有效期1小时,就设3500秒(提前100秒刷新),确保token过期前能拿到新的。
    3. REST API线程组配置:
      • 按测试需求设置线程数和循环次数就行,不用加额外延迟,它会自动用Inter Thread Communicator传递的最新token。
  • 优化token传递逻辑:
    • 把Inter Thread Communicator的「Share Mode」设为「All Thread Groups」,用唯一变量名(比如current_access_token)存token。
    • 在API线程组的HTTP请求头管理器里,直接写Authorization: Bearer ${current_access_token},每次请求都会自动取最新的token值。

二、REST API认证的替代解决方案

  • Cookie会话保持:如果API支持cookie认证,用HTTP Cookie Manager自动保存认证后的会话凭证,后续API请求直接复用,不用手动传token。
  • 预生成批量token:要是token有效期长,提前生成一批有效token,用CSV Data Set Config加载到API线程组,每个线程用独立token,省掉频繁刷新的麻烦。
  • JSR223元件自动刷新token:不用单独的认证线程组,在API请求前加JSR223 PreProcessor,检查token是否快过期,过期就自动刷新。示例代码:
    def tokenExpiry = vars.get("token_expiry") as long
    def currentTime = System.currentTimeMillis() / 1000
    // 提前5分钟刷新token
    if (!tokenExpiry || currentTime > tokenExpiry - 300) {
        // 构造刷新token的请求
        def refreshSampler = new org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy()
        refreshSampler.setDomain("你的认证域名")
        refreshSampler.setPath("/refresh-token")
        refreshSampler.setMethod("POST")
        refreshSampler.addArgument("refresh_token", vars.get("refresh_token"))
        // 执行请求并获取响应
        def response = ctx.getSamplerContext().getSampler().sample(refreshSampler)
        def json = new groovy.json.JsonSlurper().parseText(response.getResponseDataAsString())
        // 更新token和过期时间变量
        vars.put("current_access_token", json.access_token)
        vars.put("token_expiry", (currentTime + json.expires_in).toString())
    }
    
  • Token Storage插件管理:用第三方插件统一管理token生命周期,自动处理刷新和分发,减少手动配置的工作量。

内容的提问来源于stack exchange,提问作者Akhil Vasudevan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:20:53