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

如何通过JMeter 5.0连接SSAS服务器执行MDX查询并开展性能与负载测试

如何通过JMeter 5.0连接SSAS服务器执行MDX查询并开展性能与负载测试

当然可以用JMeter 5.0连接SSAS Cube并执行MDX查询做性能/负载测试!下面我给你一步步拆解两种可行的方案,你可以根据自己的环境选合适的来操作:

方案一:通过JDBC连接SSAS(推荐,配置更直观)

步骤1:准备SSAS JDBC驱动

  • JMeter 5.0默认不包含SSAS专属的JDBC驱动,你需要下载Microsoft Analysis Services JDBC Driver(注意要匹配你的SSAS版本和JMeter使用的Java版本,比如Java 8就选兼容Java 8的驱动版本)
  • 把下载到的驱动jar包(比如analysis-services-jdbc.jar)复制到JMeter安装目录下的lib文件夹里
  • 重启JMeter,确保驱动能被正常加载

步骤2:配置JDBC连接池

  • 先在测试计划里加一个线程组:右键测试计划 → 添加 → 线程(用户) → 线程组
  • 右键线程组 → 添加 → 配置元件 → JDBC Connection Configuration,然后填写关键参数:
    • Variable Name: 给这个连接池起个好记的名字,比如SSAS_Cube_Conn(后面的取样器要用到这个名字)
    • Database URL: 格式为 jdbc:xmla://<SSAS服务器IP/主机名>:<端口>/<实例名>;Catalog=<Cube所在的数据库名>
      举个例子:jdbc:xmla://localhost:2383/;Catalog=AdventureWorksDW(SSAS默认实例端口是2383,AdventureWorksDW是微软官方的示例数据库)
      如果用Windows身份验证,要在URL末尾加;Integrated Security=true;如果是SQL Server身份验证,就加;User=<你的用户名>;Password=<你的密码>
    • JDBC Driver Class: 填写com.microsoft.analysisservices.jdbc.AnalysisServicesDriver
    • 其他参数保持默认就行,要是需要调整连接池大小也可以按需修改

步骤3:添加JDBC Request取样器执行MDX

  • 右键线程组 → 添加 → 取样器 → JDBC Request,然后填这些内容:
    • Variable Name of Pool declared in JDBC Connection Configuration: 选择刚才配置的SSAS_Cube_Conn
    • Query Type: 选Select Statement(MDX查询本质就是查询语句,选这个就行)
    • Query: 输入你的MDX查询语句,比如:
      SELECT 
        [Measures].[Internet Sales Amount] ON COLUMNS,
        [Date].[Calendar Year].[Calendar Year] ON ROWS
      FROM [AdventureWorks]
      
  • 可以勾选「Query timeout」设置超时时间,避免测试时出现长时间无响应的情况

步骤4:添加监听器查看测试结果

  • 给线程组添加「查看结果树」「聚合报告」「图形结果」这些监听器,运行测试后就能看到MDX查询的响应时间、吞吐量等关键性能指标了

方案二:通过XMLA over HTTP连接(适合SSAS配置了HTTP端点的场景)

如果你的SSAS服务器已经通过IIS配置了HTTP访问端点,那可以直接用JMeter的HTTP请求发送XMLA请求来执行MDX:

步骤1:确认SSAS的HTTP端点地址

  • 比如你的SSAS HTTP端点是http://<服务器IP>/olap/msmdpump.dll(这个地址要根据你的实际配置来)

步骤2:添加HTTP Request取样器

  • 右键线程组 → 添加 → 取样器 → HTTP Request,填写参数:
    • Server Name or IP: 你的SSAS服务器IP或者主机名
    • Port Number: HTTP端口(默认是80,用HTTPS的话就是443)
    • Path: /olap/msmdpump.dll(和你的实际端点路径保持一致)
    • Method: 选择POST
    • Body Data: 输入XMLA格式的MDX执行请求,示例如下:
      <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
        <Body>
          <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
            <Command>
              <Statement>
                SELECT 
                  [Measures].[Internet Sales Amount] ON COLUMNS,
                  [Date].[Calendar Year].[Calendar Year] ON ROWS
                FROM [AdventureWorks]
              </Statement>
            </Command>
            <Properties>
              <PropertyList>
                <Catalog>AdventureWorksDW</Catalog>
                <Format>Multidimensional</Format>
              </PropertyList>
            </Properties>
          </Execute>
        </Body>
      </Envelope>
      
  • 如果需要身份验证,记得添加「HTTP Authorization Manager」元件,配置好Windows或者SQL认证的信息

步骤3:添加监听器分析结果

  • 和方案一一样,添加「查看结果树」等监听器,运行测试后就能查看MDX查询的性能数据了

额外注意事项

  • 要确保JMeter所在的机器能访问SSAS服务器的对应端口(比如2383或者HTTP端口),防火墙要开放这些端口
  • 做负载测试时,调整线程组的线程数、Ramp-Up时间、循环次数,尽量模拟真实的用户并发场景
  • 可以用JMeter的参数化功能(比如CSV Data Set Config)批量执行不同的MDX查询,覆盖更多的测试场景

备注:内容来源于stack exchange,提问作者Pragya Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 09:12:58