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

使用AD认证的JMeter与Azure负载测试:无法读取Key Vault密钥

问题排查:Azure Load Test中JMeter无法读取Key Vault密钥

一、JMeter测试代码问题检查

  1. 凭据变量末尾存在多余空格
    你的用户定义变量中,__GetSecret函数调用后带有空格:

    <stringProp name="Argument.value">${__GetSecret(LoadTestUsername)} </stringProp>
    <stringProp name="Argument.value">${__GetSecret(LoadTestPassword)} </stringProp>
    

    这会导致读取的用户名/密码末尾包含空格,直接引发Azure AD认证失败。需要删除变量值末尾的空格,修正为:

    <stringProp name="Argument.value">${__GetSecret(LoadTestUsername)}</stringProp>
    <stringProp name="Argument.value">${__GetSecret(LoadTestPassword)}</stringProp>
    
  2. 函数调用格式验证
    __GetSecret函数在Azure Load Test环境中无需额外指定Vault名称(只要Load Test已关联目标Key Vault),当前调用格式${__GetSecret(密钥名称)}是正确的,无需添加其他参数。

二、Azure配置问题排查

如果修正代码后仍无法读取密钥,检查以下Azure配置项:

  • Load Test与Key Vault的关联
    登录Azure门户,进入你的Load Test资源,在左侧菜单的机密选项中,确认已添加目标Key Vault,并勾选了LoadTestUsername和LoadTestPassword两个密钥。

  • Key Vault访问策略配置
    确保Load Test的托管身份(系统分配或用户分配)被授予Key Vault的密钥/获取权限:

    1. 进入Key Vault资源,打开访问策略页面;
    2. 添加或编辑现有策略,选择Load Test的托管身份;
    3. 在“密钥权限”中勾选获取权限,保存配置。
  • 密钥状态与名称匹配
    确认Key Vault中的密钥:

    • 名称完全匹配LoadTestUsername和LoadTestPassword(注意大小写敏感);
    • 密钥状态为已启用,未过期或被禁用。
  • Key Vault网络访问控制
    如果Key Vault启用了防火墙,需确保允许Load Test访问:

    • 在Key Vault的网络设置中,选择“允许受信任的Microsoft服务访问此密钥保管库”;
    • 或者添加Load Test资源所在的虚拟网络/IP范围到允许列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:45:56