JMeter运行WebDriver Sampler时抛出unknown protocol: data错误
解决JMeter WebDriver Sampler抛出
unknown protocol: data错误 问题本质
你从之前请求提取的"URL"根本不是标准的http/https网址,而是data协议内容(比如内嵌图片的base64编码、内嵌脚本的data格式内容),导致WebDriver无法识别协议。
解决步骤
- 先确认提取的变量值:添加Debug Sampler,把你提取URL的变量(比如
paymentUrl)加入,运行后查看结果树里的变量内容,大概率会看到类似data:image/png;base64,...的内容。 - 修正URL提取逻辑:
- 如果用JSON提取器,检查JSON路径是否精准指向支付页面URL字段,别误取了返回data内容的字段。
- 如果用正则表达式提取器,用精准的正则匹配http/https开头的链接,比如
http(s)?://[^"]+,避免把响应里的data协议内容捞出来。
- 在WebDriver Sampler里加校验:先用代码判断变量是否为合法网址,再执行打开操作,示例Groovy脚本:
def paymentUrl = vars.get("paymentUrl") if (paymentUrl?.startsWith("http")) { WDS.browser.get(paymentUrl) } else { log.error("无效支付URL:" + paymentUrl) WDS.sampleResult.setSuccessful(false) WDS.sampleResult.setResponseMessage("提取的URL非标准http/https协议") } - 检查前一个请求的响应:如果接口返回的是相对路径,记得拼接完整域名(比如
https://your-pay-domain.com+ 相对路径),避免拿到不完整的URL。
内容的提问来源于stack exchange,提问作者user22636003
相关产品推荐
相关产品推荐

