MeterSphere V2.x 添加数据库驱动
背景
在使用 MeterSphere 进行接口测试时,会遇到一些接口场景,需要先查询数据库获取特定数据,再将查询结果作为请求参数传递给后续接口。然而,MeterSphere 默认仅支持 MySQL、Oracle、SQL Server 和 PostgreSQL 等常见数据库的查询操作。如果需要查询其他类型的数据库(例如 ClickHouse),则需通过编写脚本代码的方式来实现数据库连接与数据查询。以下将以 ClickHouse 数据库为例,详细介绍如何通过代码实现与其他类型数据库的连接与交互。
演示环境
| 对象 | 版本 |
|---|---|
| MeterSphere | v2.10.24-lts |
| clickhouse驱动 | clickhouse-jdbc-0.4.6.jar |
操作流程
-
下载驱动包我就不赘述了,直接将 clickhouse 驱动包上传到 metersphere的服务器中(建议上传至
./metersphere/data)

-
将 clickhouse 驱动包分别复制到
api-testproject-managementms-node-controller容器中
sudo docker cp clickhouse-jdbc-0.4.6.jar api-test:/app/lib sudo docker cp clickhouse-jdbc-0.4.6.jar project-management:/app/lib sudo docker cp clickhouse-jdbc-0.4.6.jar ms-node-controller:/app/lib
- 重启容器
api-testproject-managementms-node-controller
docker restart api-test project-management ms-node-controller
- 使用自定义脚本,编写代码,这里使用的是 groovy
import groovy.sql.Sql import java.sql.DriverManager def connectToClickHouse() { // ClickHouse 连接参数 def url = "jdbc:clickhouse://localhost:8123/default" def user = "root" def password = "clickhouse" try { // 注册 JDBC 驱动(通常在现代 JDBC 驱动中不需要显式注册) Class.forName("com.clickhouse.jdbc.ClickHouseDriver") // 创建数据库连接 def connection = DriverManager.getConnection(url, user, password) log.info("成功连接到ClickHouse数据库") // 使用 Groovy 的 Sql 类进行数据库操作 def sql = new Sql(connection) // 执行查询 sql.eachRow("SELECT * FROM system.tables LIMIT 5") { row -> log.info(row.toRowResult().collect { it }.join("t")) } // 执行插入操作 sql.execute("CREATE TABLE IF NOT EXISTS test_table (id Int32, name String) ENGINE = Memory") def rowsInserted = sql.executeInsert(""" INSERT INTO test_table VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie') """) log.info("插入了 ${rowsInserted.size()} 行数据") // 查询插入的数据 sql.eachRow("SELECT * FROM test_table") { row -> log.info("ID: ${row.id}, Name: ${row.name}") } // 关闭连接 sql.close() } catch (Exception e) { log.info("操作出错: ${e.message}") e.printStackTrace() } } connectToClickHouse()

- 执行脚本,结果如下
