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

如何在JMeter中计算API部署请求到完成校验的耗时?

用JMeter计算POST响应到GET返回部署完成的耗时

完全可以用JMeter实现这个需求,具体步骤如下:

  • 记录POST请求的响应时间戳
    在提交部署的POST请求后,添加一个JSR223后置处理器,写入代码把POST响应完成的时间戳存入线程变量:

    vars.put("post_response_timestamp", String.valueOf(System.currentTimeMillis()));
    
  • 轮询GET请求直到部署完成
    添加一个While控制器,设置循环条件为${__jexl3("${Completed}" != "true",)}(确保判断的是字符串值,避免类型匹配问题)。控制器内放置:

    • 校验部署状态的GET请求
    • 固定定时器,设置1秒延迟(避免高频请求对API造成不必要的压力)
  • 提取GET响应的完成状态
    在GET请求下添加JSON提取器,配置:

    • 引用名称:Completed
    • JSON Path表达式:$.Completed
    • 匹配数字:1(取第一个匹配值)
  • 计算并存储耗时
    在GET请求的JSR223后置处理器中,写入代码计算从POST响应到当前GET返回true的耗时:

    if ("true".equals(vars.get("Completed"))) {
        long postTime = Long.parseLong(vars.get("post_response_timestamp"));
        long currentTime = System.currentTimeMillis();
        long elapsedMs = currentTime - postTime;
        vars.put("deployment_completion_time", String.valueOf(elapsedMs));
    }
    
  • 查看结果
    可以通过Debug Sampler输出deployment_completion_time变量,或者在查看结果树中查看该变量的值,也可以将该变量关联到聚合报告等组件进行统计分析。

注意:如果是多线程压测场景,务必使用线程变量vars而非全局属性props,避免不同线程的时间戳互相干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:15:34