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

升级WebDriver 4.13.0.1后JMeter WebDriver Sampler报Invalid call sequence错误

问题分析与解决方案:JMeter WebDriver Sampler "Invalid call sequence" 错误

错误成因

WebDriver Sampler 4.13.0.1版本已**自动默认调用sampleStart()**启动采样计时,你的脚本中第2行手动执行WDS.sampleResult.sampleStart();属于重复触发该方法,违反了JMeter SampleResult的调用序列规则,因此抛出"sampleStart called twice"的错误。这是新版本采样器的行为变更,旧版本可能允许手动控制采样周期,但新版本已简化为自动管理。

最佳实践与配置建议

  • 移除手动的采样生命周期调用:删除脚本中的WDS.sampleResult.sampleStart();和WDS.sampleResult.sampleEnd();,由WebDriver Sampler自动处理采样的开始与结束。
  • 自定义采样范围的正确方式:若需统计特定操作的耗时,可先忽略默认采样,再手动创建SampleResult对象实现自定义计时,示例代码:
WDS.browser.manage().window().maximize()
// 忽略默认采样,避免冲突
WDS.sampleResult.setIgnore(true)
// 创建自定义采样结果对象
def customResult = new org.apache.jmeter.samplers.SampleResult()
customResult.sampleStart()
WDS.log.info("Login page loading is started")
WDS.browser.get("${base_url}")
WDS.log.info("Login page is loaded")
customResult.sampleEnd()
// 标记采样结果状态
customResult.setSuccessful(true)
customResult.setResponseMessage("登录页面加载完成")
// 将自定义结果添加到采样器输出中
WDS.sampleResult.addSubResult(customResult)
  • 关注版本兼容性:升级WebDriver Sampler或JMeter前,查看官方版本变更日志,明确行为变化,避免因版本差异导致的脚本兼容问题。
  • 避免直接操作核心API:优先使用WebDriver Sampler提供的内置变量(如WDS.browser、WDS.log),除非有明确的自定义需求,否则不要直接调用SampleResult的生命周期方法。
  • 保持脚本简洁:仅保留必要的业务逻辑代码,将采样管理交给WebDriver Sampler自动处理,减少不必要的手动控制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:23:22