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

如何使用Java读取LoadRunner 12.0的OUTPUT.MDB测试结果并入库?

解决方案:Java读取LoadRunner 12.0的OUTPUT.MDB并导出/存储数据

一、Java直接查询Access格式的OUTPUT.MDB

LoadRunner 12.0生成的OUTPUT.MDB属于Jet Access数据库格式,Java可以通过JDBC驱动直接连接查询,具体操作如下:

1. 选择适配的JDBC驱动

  • JDK8及以下版本:可使用JDBC-ODBC桥驱动。先在系统ODBC数据源管理器中配置Access数据源(指向目标OUTPUT.MDB),驱动类为sun.jdbc.odbc.JdbcOdbcDriver,连接URL格式为jdbc:odbc:配置的数据源名称。
  • 全JDK版本兼容方案:使用第三方驱动UCanAccess,无需ODBC配置。Maven项目直接引入依赖:
    <dependency>
        <groupId>net.sf.ucanaccess</groupId>
        <artifactId>ucanaccess</artifactId>
        <version>5.0.1</version>
    </dependency>
    
    驱动类为net.ucanaccess.jdbc.UcanaccessDriver,连接URL格式为jdbc:ucanaccess:///本地OUTPUT.MDB文件路径。

2. 查询核心数据示例代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class LrMdbReader {
    public static void main(String[] args) {
        String mdbPath = "/path/to/your/OUTPUT.MDB";
        String url = "jdbc:ucanaccess://" + mdbPath;
        try (Connection conn = DriverManager.getConnection(url, "", "")) {
            Statement stmt = conn.createStatement();
            // LoadRunner常见核心表:Transaction_Summary(事务汇总)、Vuser_Summary(虚拟用户汇总)
            ResultSet rs = stmt.executeQuery("SELECT Transaction_Name, Average_Response_Time, Passed_Count FROM Transaction_Summary");
            while (rs.next()) {
                // 提取数据,可直接写入目标业务数据库
                String transName = rs.getString("Transaction_Name");
                double avgResp = rs.getDouble("Average_Response_Time");
                int passed = rs.getInt("Passed_Count");
                System.out.printf("事务:%s,平均响应:%.2fms,通过次数:%d%n", transName, avgResp, passed);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

提示:可直接用Access打开OUTPUT.MDB查看表结构和字段名,确认需要查询的目标表。

二、将MDB数据导出为CSV文件

1. Java代码直接导出

在上述查询逻辑基础上,添加CSV写入逻辑:

import java.io.FileWriter;
import java.io.PrintWriter;
// ... 省略连接和查询代码
PrintWriter csvWriter = new PrintWriter(new FileWriter("lr_perf_results.csv"));
// 写入CSV表头
csvWriter.println("事务名称,平均响应时间(ms),通过次数,失败次数");
while (rs.next()) {
    String transName = rs.getString("Transaction_Name");
    double avgResp = rs.getDouble("Average_Response_Time");
    int passed = rs.getInt("Passed_Count");
    int failed = rs.getInt("Failed_Count");
    csvWriter.printf("%s,%.2f,%d,%d%n", transName, avgResp, passed, failed);
}
csvWriter.close();

2. 手动导出(临时快速方案)

如果Java开发暂有障碍,可直接用Access打开OUTPUT.MDB:选中目标数据表,右键选择「导出」,选择CSV格式,完成导出后再用Java读取CSV文件。

三、常见问题处理

  • 驱动兼容问题:确保驱动版本与JDK位数、Access数据库格式匹配,UCanAccess对.mdb格式兼容性最优。
  • 数据乱码:在连接URL后追加编码参数,如jdbc:ucanaccess:///path/OUTPUT.MDB;charSet=UTF-8。
  • 字段查询报错:务必通过Access查看表的字段名,LoadRunner的MDB表字段多为英文驼峰或下划线命名,注意拼写准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:44:55